夜雨聆风学习资料网

ARTICLE · 1175819

安卓 App 调了哪些接口?这个 Skill 帮你从 APK 里找出来

安卓 App 调了哪些接口?这个 Skill 帮你从 APK 里找出来

AI技能图鉴 / AI SKILL ATLAS

ARCHIVE 070 · ANDROID REVERSE ENGINEERING

FIELD GUIDE/OPEN SOURCE/AI SKILL

安卓 App 调了哪些接口?这个 Skill 帮你从 APK 里找出来

分类:安卓逆向 / 接口分析

来源:https://github.com/SimoneAvogadro/android-reverse-engineering-skill

CATALOG / 目录

PHASE01

判断与打开

·识别应用

·反编译

PHASE02

阅读与追踪

·梳理结构

·找回类名

·追踪调用

PHASE03

输出资料

·整理接口

在安卓 App 里点下登录按钮后,会把什么信息发给服务器?请求发到哪里,登录凭证又是怎样带上的?想弄清这些问题,可以顺着安装包里的代码往下找。

android-reverse-engineering就是做这件事的 Skill。它在 Claude Code 中使用,能分析安卓安装包、追踪功能调用,并把找到的接口整理成文档。


关注AI技能图鉴,持续介绍AI技能

ARCHIVE 01 / PROBLEM MAP

它解决什么问题

假如要给自家旧版 App 补接口文档,手头只有一个 APK,需要先找到相关代码,再弄清参数和登录方式。这里说的逆向,就是从已经打包好的程序往回看,了解它怎样工作。

这个 Skill 把反编译、阅读代码和整理资料接了起来。它能找到应用入口和主要页面,查看代码中配置的服务地址,再追到实际发起请求的位置。

最后的接口资料会带上对应的代码位置。需要继续确认一个参数或某段登录逻辑时,就能沿着文件回去查。

ARCHIVE 02 / CAPABILITY RECORDS

把安装包交给它之后,会发生什么

安装好 Skill 后,给它本地安装包的路径,就可以提出具体需求。

帮我看看./my-app.apk的登录功能是怎么实现的。

以 Java 或 Kotlin 编写的安卓应用为例,分析会沿着下面的过程展开。

从安装包中读取代码,再整理应用结构和接口资料。

PHASE 01判断与打开
01

识别应用

先看看它是用什么做的

它会先检查安装包里的文件和字符串,寻找应用框架、网络库和第三方组件的线索,也会估计代码的混淆程度。

比如,它能根据包内标记识别 Flutter、React Native 或原生 Kotlin 应用,并给出对应的分析建议。先知道代码大致在哪里,后面就有了查找方向。

02

反编译

把安装包变成可阅读的代码

它支持 APK、XAPK,也能处理 JAR、AAR 这类开发库文件。碰到包含多个 APK 的 XAPK,会自动拆包,把里面的 APK 分别处理。

反编译主要由 jadx 和 Fernflower/Vineflower 完成。Skill 可以按文件和代码情况选择工具,也支持生成两份结果,放在不同目录里对照阅读。同一个类有了两份结果,阅读时可以交叉参考。

PHASE 02阅读与追踪
03

梳理结构

找到应用入口和业务代码

有了代码,它会读取 AndroidManifest.xml。这个文件记录着应用的页面、服务、权限等信息,可以帮助确定从哪里开始看。

接着,它会查看包目录,把应用自身的代码和第三方库分开,寻找负责网络请求、数据读取的部分,也会在 BuildConfig 中查找服务地址等配置线索。

04

找回类名

让 Kotlin 代码更好认

代码经过混淆,原本有含义的类名可能变成a.b.c。这个 Skill 会从 Kotlin 编译后保留的名称信息中查找原始类名,做出一份名称对照表。

比如,名字里带有Repository、ViewModel的类,能为理解数据处理和页面逻辑提供线索。找到相关名称后,还可以按名称查询,或在搜索代码时附上恢复出的名字。

05

追踪调用

把页面操作和网络请求连起来

回到登录这个问题,它会顺着页面入口、点击处理、业务代码,一直找到发起请求的地方。

常见的查找顺序可以理解为“登录页面 → 处理登录的代码 → 读取或提交数据的代码 → 网络接口”。这样就能把某个接口和页面上的操作联系起来。

遇到通过 Koin、Hilt 等工具组织的代码,它还会顺着配置,找出实际负责处理任务的类。

沿着代码中的调用关系,把页面操作追到对应的网络请求。

PHASE 03输出资料
06

整理接口

先列总表,再展开重点

它内置了针对 Retrofit、OkHttp、Volley、Ktor 和 Apollo GraphQL 的查找方法,能沿着不同写法寻找请求地址、参数、请求头和响应类型。

遇到混淆代码,还可以从保留的接口路径字符串继续找。搜索结果会把已知第三方服务和疑似应用自有的服务地址分开,也会查找请求签名的相关代码,例如 HMAC 的用法。

文档的组织方式也很实用。先把发现的接口列成总表,写清服务地址、请求方法、路径、身份验证方式和来源文件;再对登录等重要流程、你关心的接口补充详细说明。

整个分析任务会留下这些资料。

产物
可以拿来做什么
反编译文件
继续阅读具体代码和资源
应用结构说明
了解入口、主要模块和代码组织方式
接口文档
查阅请求地址、参数和登录凭证的使用方式
关键调用链
看一个页面操作怎样走到网络请求
ARCHIVE 03

常见的使用场景

给旧应用补资料。 手头有自家应用的历史安装包,可以先整理接口总表,再围绕登录或其他关心的功能追踪调用,把找到的内容补进维护文档。

阅读一个开发库。 拿到 AAR 或 JAR 文件,想了解它的代码结构和联网方式,也可以从反编译结果继续查找。这适合需要了解组件内部行为的开发者。

ARCHIVE 04

它为什么能接着往下查

仓库把工作分配得很清楚。SKILL.md 告诉 Claude 分析顺序和需要交付的资料;脚本负责调用反编译工具、搜索代码和建立名称对照表;参考文档补充不同网络库和调用方式的查找方法。

Claude 根据这些步骤读取结果,再把代码中的关系整理成说明。前面发现的入口、类名和接口路径,会成为后面继续阅读的线索。

ARCHIVE 05

安装与前置条件

官方提供了 Claude Code 插件安装方式。在 Claude Code 中依次输入下面两条命令。

/plugin marketplace add SimoneAvogadro/android-reverse-engineering-skill/plugin install android-reverse-engineering@android-reverse-engineering-skill

项目要求准备 Java JDK 17 或更高版本,以及 jadx。仓库带有依赖检查和安装脚本,开始分析时会检查这些工具。

Fernflower/Vineflower 是可选的反编译工具;用它处理 APK 时,还需要 dex2jar 完成中间转换。Kotlin 名称恢复和查询脚本则通过 Bash 调用 Python 3,使用这部分能力时也要准备好相应环境。

ARCHIVE 06

适合谁

它适合需要阅读安卓应用代码、补齐接口资料的开发者,也适合拿着具体功能问题学习安卓应用的人。

比如想知道某个页面的数据从哪里来,就可以结合它给出的调用链和文件位置,接着阅读相关代码。


关注AI技能图鉴,持续介绍AI技能

AI SKILL ATLAS / ARCHIVE 070 / ANDROID REVERSE ENGINEERING

相关学习资料