3步跑通 REA APK 静态分析:headless JADX 反编译、权限查询与 AI Agent 逆向工程指南 3步跑通 REA APK 静态分析headless JADX 反编译、权限查询与 AI Agent 逆向工程指南【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/reaREAReverse Engineer Anything是一套面向 AI Agent 的逆向工程工具集。其中内置的 headless JADX 引擎让 APK 静态分析不再依赖模拟器与 Android SDK查清单权限、搜类、反编译方法、追引用一条 CLI 命令或一次 MCP 工具调用就能完成且全程不执行目标代码。REA 替你接过去哪些活本节回答手写反编译流程要干多少杂活哪些能直接甩给 REA。传统做法装 jadx-gui 或 Android SDK图形界面里点选目标把结果复制出来。流程零散结果很难被脚本或 AI 工具稳定消费。REA 把这些活收进了统一入口分析全程本地完成不执行 APK、不写回原始文件、不联网零副作用CLI 与 MCP 共用同一组工作流Claude Code、Cursor 这类 Agent 可以直接调用每个请求都返回 Evidence原始请求、APK 的 SHA-256、引擎 JAR 的 SHA-256、原始响应四样齐全任何一条结论都能回溯到哪个文件、哪版引擎、原始返回是什么。3步拿到第一次反编译结果本节回答最短上手路径跑起来最少需要配置什么。REA 不替你安装任何 Java 或 Android 工具。你只需要准备两样东西JDK 17必须是含编译器的完整 JDK单独的 JRE 编译不了 REA 打包的元数据桥接以及未修改的 jadx-headless-mcp 0.7.1 fat JAR。第一步配置环境变量export REA_JADX_MCP_JAR/absolute/path/jadx-headless-mcp-0.7.1-all.jar export JAVA_HOME/absolute/path/existing-jdk # 可选 export REA_JADX_HEAP_MIB8192 # 可选堆内存上限MiB大 APK 建议调大 export REA_JADX_ACTIVE_PROCESSOR_COUNT4 # 可选可见处理器数第二步验证环境。执行rea inspect-android-package时会先做就绪检查读取所选 JAR 的 ZIP 目录并确认 Java 编译器模块这一步不加载 APK、也不执行引擎代码。命令正常返回后你能拿到解码后的 manifest XML、声明摘要、权限列表和类/资源数量——签名验证会明确标记为not_performed。第三步把分析跑起来。下面三条命令分别是按名搜类、读类成员清单、读指定重载的方法体rea search-android-classes /path/Example.apk MainActivity rea inspect-android-class /path/Example.apk example.MainActivity rea inspect-android-method /path/Example.apk example.MainActivity select --overload-index 1类名搜索是大小写敏感的子串匹配会消费所有分页并校验计数传空查询则盘点 APK 中的全部类名。inspect-android-class直接读解析后的元数据返回类型、字段和内部类名不生成源码trace-android-references追引用关系加--method-name参数可以把引用收敛到唯一方法。AI Agent 如何调用 REA本节回答让 Agent 自己提问、自己分析时工具面长什么样。执行npx rea-agents setup完成注册后五个 MCP 工具与 CLI 命令一一对应参数命名同源MCP 工具干的事inspect_android_package清单、权限、类/资源计数search_android_classes按名搜类空查询 全量盘点inspect_android_class类型、字段、内部类名inspect_android_method方法体overload_index从 0 开始trace_android_references静态引用关系Agent 侧就是一次普通工具调用{ name: inspect_android_method, arguments: { path: /path/Example.apk, class_name: example.MainActivity, method_name: select, overload_index: 1 } }一个细节直接决定了结果是否可用类里存在同名重载时REA 直接拒绝模糊请求而不是悄悄取第一个匹配。原因是引擎的方法引用操作本身无法区分重载默认选一个就会把函数体归因到错误实现显式用--overload-indexMCP 侧为overload_index指定序号后你反编译到的才是指定方法的实现错误归因被挡在门口。建议先用inspect-android-class确认重载数量再填序号。结果凭什么可信本节回答结论从何而来引擎是不是被改过。REA 没有魔改 JADX而是用 Provider 适配层包装一个未修改、commit 锁定的 jadx-headless-mcp 0.7.1 引擎适配代码集中在 src/android/。分析时 REA 不自动下载任何引擎——JAR 由你提供并用 SHA-256 校验审计版本。可信链条就是前面说的 Evidence 四要素原始请求、APK SHA-256、引擎 JAR SHA-256、原始响应。任何一条反编译结论都能回答是哪个文件、哪版引擎、原始返回是什么。限制数值与三条边界本节回答资源上限是多少哪些事 REA 明确不干。资源上限阈值到限之后的行为manifest/方法文本1 MiB超预算报告截断协议帧上限8 MiB超限直接失败不返回残缺数据操作执行时限120 秒到达队列头部后计时上游反编译时限90 秒JADX 引擎侧限制会话闲置清理60 秒超时、失败、断连均触发8 MiB 那行值得展开帧超限时 REA 宁可报一个失败诊断也不把截断的清单当完整结果返回——残缺的盘点比明确的失败更容易误导后续分析。会话复用同理先校验 APK 与引擎 JAR 的摘要及 JVM 配置匹配才复用已加载引擎输入变化即淘汰旧会话一次性 CLI 命令返回前总会等待清理完成。边界直接列清反编译出的源码是派生表示完整文本不等于完整语义更不等于可字节级重构引用结果是节点间的静态关系不是运行时观测到的调用无函数体的 native/abstract 方法报告body_status: not_available不做猜测不处理 split APK/AAB、签名校验与 native 库分析该提供方目前不支持 Windowsowned stdio 进程边界限制Linux 与 macOS 均可。常见问题本节回答三个最高频的疑问。如何确认本机真实引擎可用跑官方验证 lane它用公开的 Appium ApiDemos APK 做样本下载脚本校验固定 SHA-256 并拒绝覆盖已有文件全程无需 Gradle、模拟器或 Android SDKnpm run fixtures:android export REA_JADX_MCP_JAR$PWD/_reference/apk-integration/jadx-headless-mcp-0.7.1-all.jar export REA_ANDROID_TEST_APK$PWD/_reference/apk-integration/ApiDemos-debug.apk npm run verify:android分析需要联网吗不需要。引擎 JAR 需自行提供分析全程本地完成不上传任何文件。和 jadx-gui 手动反编译差在哪两者使用同一引擎内核差别在 REA 的会话复用、摘要校验与 Evidence 保留使其更适合被脚本和 AI Agent 稳定消费。完整契约见 docs/android-analysis.md上游溯源记录见 third_party/README.md。【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考