资讯动态

Application类里藏着什么?android-reverse-engineering-skill 启动流程追踪完整指南

发布时间:2026/9/16 16:36:34 来源:尧图企业网站定制
Application类里藏着什么android-reverse-engineering-skill 启动流程追踪完整指南【免费下载链接】android-reverse-engineering-skillClaude Code skill to support Android apps reverse engineering项目地址: https://gitcode.com/GitHub_Trending/an/android-reverse-engineering-skillandroid-reverse-engineering-skill 是一个为 Claude Code 打造的 Android 逆向工程技能反编译 APK / XAPK / JAR / AAR提取 Retrofit、OkHttp、Ktor 等 HTTP API 接口并完整追踪从 UI 到网络层的调用链。今天我们从最容易被忽略、却信号最强的入口——Application 类——出发看看这个技能如何帮你在没有源码的情况下读懂一个 App 的启动流程 一、Application 类App 启动的总闸门在 Android 中application android:name指定的 Application 子类是进程启动时最先执行的代码。逆向时它几乎是藏宝图因为开发者通常在这里初始化藏匿内容为什么重要OkHttp / Retrofit 客户端全局 HTTP 栈、拦截器、超时与签名逻辑Base URL 配置直接暴露后端域名与网关Hilt / Dagger / Koin 依赖注入谁提供了ApiService一眼可查Firebase / Sentry / 埋点 SDK第三方 SDK 与 API Key 常在此初始化BuildConfig常量基础 URL、API Key、Feature 开关几乎从不被混淆关键认知R8/ProGuard 会把类名搅成a.b.c但字符串字面量、AndroidManifest 中的组件名、Retrofit 注解都不会被混淆——这正是追踪启动流程可以走通的底层原因。二、30 秒上手安装技能与依赖检查在 Claude Code 中安装市场方式一次安装永久可用/plugin marketplace add SimoneAvogadro/android-reverse-engineering-skill /plugin install android-reverse-engineeringandroid-reverse-engineering-skill也可以本地克隆后安装git clone https://gitcode.com/GitHub_Trending/an/android-reverse-engineering-skill依赖方面只需Java JDK 17和jadx必需Vineflower 与 dex2jar 可选但推荐。技能内置一键检查脚本 check-deps.sh缺失时可用 install-dep.sh 自动安装自动识别操作系统与包管理器。完整安装教程见 setup-guide.md。三、/decompile 一键启动反编译全流程拿到目标文件后只需一行斜杠命令/decompile path/to/app.apk该命令定义在 decompile.md内部自动串起 5 个步骤获取目标文件APK、XAPK、JAR、AAR 均可检查并安装依赖解析INSTALL_REQUIRED:/INSTALL_OPTIONAL:标记自动补装反编译APK 默认走 jadx最快、支持资源JAR/AAR 推荐 Fernflower混淆包自动追加--deobfXAPK 会自动解压出 base 各 split APK 分别反编译结构分析读取AndroidManifest.xml定位主 Activity、Application 类与架构模式MVP / MVVM / Clean给出下一步建议追踪调用流、提取 API、或双引擎对比重编译。也完全可以用自然语言触发比如直接说反编译这个 APK提取这个应用的 API 接口追踪 LoginActivity 的调用链——触发词与中英文关键词定义在 SKILL.md 头部。 反编译引擎的完整 CLI 选项可查 jadx-usage.md 与 fernflower-usage.md。四、定位 Application 类读懂反编译输出反编译完成后输出目录里藏着三类高价值线索resources/AndroidManifest.xmlapplication android:name...就是 Application 类的全限定名同时能列出全部 Activity / Service / Receiver每个模块的BuildConfig.java几乎从不变名常泄漏 Base URL、flavor、第三方 API Key是最高信号密度的文件sources/包结构重点盯api、network、data、repository、http这类包名——API 调用基本都住在这里。这一步对应 SKILL.md 中的 Phase 3Analyze Structure。如果 Phase 0 指纹脚本 fingerprint.sh 判定目标是 Flutter / React Native / Cordova / Xamarin则先停手——这类 App 反编译 Java 基本无意义应换用对应框架的工具。五、从 Application.onCreate() 追到 HTTP 调用定位到 Application 类后沿初始化链向下追踪即可。典型调用流如下Application.onCreate() → OkHttp / Retrofit 客户端初始化Base URL、拦截器 → Hilt / Koin / Dagger 依赖绑定 LoginActivity.onCreate() → setOnClickListener() → ViewModel 方法 → Repository.fetchData() → ApiService GET/POST 接口 → 实际 HTTP 请求几个实用的锚点技巧完整版见 call-flow-analysis.md从字符串出发搜login、/api/这类字面量混淆包里它们永远可读从框架类出发Manifest 里的 Activity 名一定是真名跟库调用Retrofit 的GET/POST注解即使接口类被混淆也依然清晰查 DI 绑定Hilt 搜Provides/BindsKoin 搜single { ... }/factory { ... }找到接口对应的真正实现再顺着实现走到 HTTP 调用。一个典型的登录流程追踪结果会是LoginActivity → LoginViewModel → UserRepository → Retrofit POST(auth/login)。六、被 R8 搅成 a.b.c恢复 Kotlin 原始类名现代 Kotlin App 几乎都经 R8 处理反编译出来一堆a.b.c。但 R8改得了 JVM 符号剥不掉 Kotlin 元数据——DebugMetadata和Metadata.d2注解里还留着原始全限定类名协程与反射运行时依赖它们。技能内置两个脚本专治此症# 1. 从反编译源码构建 混淆名 → 真实名 映射 bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/recover-kotlin-names.sh output/sources/ output/names/ # 2. 查询映射每个搜索结果都自动标注真实类名 bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/lookup-name.sh output/names/ --grep /api/ output/sources/实际效果*Repository/*ViewModel/*UseCase/*Impl的恢复率接近 100%DTO 约 80%。这正是 recover-kotlin-names.sh 与 lookup-name.sh 两个脚本的价值所在原理细节见 kotlin-name-recovery.md。七、收尾API 清单 调用流图最后一步用 find-api-calls.sh 做全网扫描# 全量扫描默认覆盖所有受支持的网络栈 bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/find-api-calls.sh output/sources/ # 定向扫描 bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/find-api-calls.sh output/sources/ --urls # 硬编码 URL bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/find-api-calls.sh output/sources/ --auth # 认证模式文档产出分两层Tier 1是全端点一览表Host / Method / Path / Auth / 来源文件5 分钟搞定Tier 2只针对登录、支付等高价值接口写详细参数。各框架的搜索模式与文档模板见 api-extraction-patterns.md。八、小结你的目标入口先判断 App 类型、值不值得反编译fingerprint.sh一键反编译 结构分析/decompiledecompile.md读懂 Application 启动初始化call-flow-analysis.md 第 4 节混淆 Kotlin 包恢复类名kotlin-name-recovery.md提取并文档化 APIapi-extraction-patterns.mdApplication 类只是起点但它是整条调用链上免费的起点——顺着它Base URL、DI 图、第三方 SDK 与认证逻辑都会逐渐显形。⚖️使用提示本项目仅供安全研究、授权渗透测试、恶意软件分析、互操作分析与教育等合法用途。逆向分析你未获授权的软件可能违反当地法律与服务条款请自行确保合规。更多说明见 README.md 的 Disclaimer 章节。【免费下载链接】android-reverse-engineering-skillClaude Code skill to support Android apps reverse engineering项目地址: https://gitcode.com/GitHub_Trending/an/android-reverse-engineering-skill创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价