APK 静态/深挖分析能力 Playbook
本报告总结当前 APK 分析流水线能真实推进到什么深度、不同技术栈的适配方式、边界和下一步补证路径。它面向后续 App 深挖,目标是让每次分析更快、更准、更少走错工具路线。
一、总判断
当前已经可以真实推进竞品学习。 对多数工具类、订阅类、AI 图片类、PDF 类 App,静态分析已经能稳定回答:包身份、技术栈、权限面、Activity/SDK 结构、广告/订阅/归因 SDK、endpoint 候选、资源和文案、版本差异、部分客户端核心逻辑。
真正的边界不是“能不能分析”,而是“哪个 lane 能还原核心逻辑”。React Native/Hermes 比 Flutter release AOT 更适合快速还原产品逻辑;Activity-heavy Java/Kotlin App 适合走 JADX/smali 和 Activity triage;Flutter 必须拿到 arm64 后用 blutter/Ghidra/动态证据组合;重 native、AI、PDF、媒体处理类适合 Ghidra 补 JNI/native 证据。
不能只靠静态结论定稿。 paywall 触发、远端配置、真实 SKU、实验开关、服务端算法和接口语义仍需要真机运行、抓包、Frida hook 或受控样本验证。
本轮更新:AI Art Magic 与 AI Photo Lab 已补到 arm64-v8a split 并跑通 blutter;Refoto 已对 AI bridge、MNN、OpenCL、AutoCrop、FaceLandmark、FastCV、RxFFmpeg wrapper 做 Ghidra/native/smali/model assets 交叉验证。当前结论不再是“Flutter 被 ABI 阻塞”,而是“Flutter 可恢复产品结构和常量,但接口真实语义仍需动态补证”。
二、按 App 类型的可分析深度
| 类型 | 当前能做到 | 难点/边界 | 适合学习什么 | 推荐优先级 |
|---|---|---|---|---|
| React Native / Expo / Hermes 工具订阅类 Cleaner Guru |
可还原路由、状态名、文案、paywall 线索、接口路径、媒体库调用、扫描流程、删除动作、订阅/恢复/校验链路。 | 变量名和 TS 源结构会丢失;远端配置、实验、真实价格和服务端校验需动态确认。 | onboarding、扫描体验、paywall 时机、订阅包装、权限解释、低成本功能实现。 | 最高:适合复刻性学习和快速产品拆解。 |
| Activity-heavy Java/Kotlin 工具 App PDF Reader |
可从 Manifest、Activity 命名、layout/resource id、smali/JADX 追页面和功能模块,PDF/OCR native lib 可用 Ghidra 补证。 | 混淆后业务类名质量不稳定;大量 SDK Activity 会干扰,需要先分 first-party/third-party。 | 功能包装、文件导入/扫描/转换链路、广告插屏点、订阅入口、权限和文件安全边界。 | 高:工具型 MVP 设计参考价值大。 |
| Flutter release App AI Art MagicAI Photo Lab |
已可用 arm64 split + blutter 恢复 Dart package 路径、模块名、路由、assets、广告位、Remote Config/IAP/paywall 线索和 endpoint 候选。 | 不能恢复完整 Dart 源码;生产 AI host 可能来自远端配置或运行时拼装,静态只能确认候选与 fallback。 | 产品结构、SDK 组合、资源承诺、接口候选、广告/订阅配置、Flutter 插件能力边界。 | 中高:适合产品/商业化拆解;接口语义需动态补证。 |
| Native AI/图片/媒体处理 App Refoto |
Activity/SDK/endpoint 可静态归纳;native AI、OpenCL、FFmpeg 等库可用 Ghidra 看函数、JNI、符号、调用方向。 | 很多 AI 能力在服务端;native 反编译成本高,只适合定点问题,不适合全量还原。 | 本地预处理、图片管线、模型/滤镜/压缩/上传前处理、付费能力边界。 | 中:适合验证“本地做了什么”,不是最快产品拆解对象。 |
| 浏览器/VPN/头部复杂 App OperaNordVPN |
可看权限、组件规模、SDK、endpoint、信任背书、套餐和素材话术;可拆广告/订阅/安全文案。 | 组件量巨大、native/安全/网络栈复杂,直接复刻不现实;动态分析也会更重。 | 信任表达、套餐结构、隐私/安全文案、广告承诺、onboarding 参考。 | 低到中:learning only,不建议作为直接实现目标。 |
三、Cleaner Guru 目前的明确结论
- 它不是普通薄 native 工具包,当前修正为 React Native / Expo / Hermes:核心逻辑在 Hermes bytecode,Activity 层只是 RN/Expo 容器和第三方 SDK 面。
- 照片扫描逻辑已从 Hermes 反编译输出中推到中高置信:先用
getAssetsAsync获取媒体库总量和分页资产,再进入loadAndAnalyzeInRealTime/scanForDuplicates一类流程。 - 当前可见的重复/相似判断更像低成本启发式:按时间排序,使用 visited set 分组,重点看时间窗口,报告里可见 5000ms/60000ms 级别的阈值线索。
- 产品含义:它可能不是重型视觉 pHash/ML 去重,而是用“快速扫描 + 智能更新状态 + 可删除分组”的体验包装,成本低、可复制性强,但误分组风险要用交互和确认文案兜底。
- 订阅/归因链路清楚:Google Play Billing/RN IAP、RevenueCat、AppsFlyer、Amplitude、Firebase/Facebook 等信号都存在,适合拆 paywall、restore、校验、trial 和素材承诺。
- 还没最终确认的点:真实 paywall 出现时机、远端配置、SKU、trial、权限运行时差异、服务端是否参与扫描或阈值下发。
四、工具 lane 的正确使用方式
| Lane | 适合对象 | 产出 | 不要误用 |
|---|---|---|---|
| Activity triage | Manifest 组件、Java/Kotlin 多 Activity App、SDK 面拆分。 | first-party/third-party Activity、模块边界、入口图谱、需要追的页面。 | 不要期待它还原 RN/Flutter 的核心业务逻辑。 |
| Hermes lane | React Native/Hermes App。 | 字符串表、模块边界、路由、接口、状态名、部分控制流和核心产品逻辑。 | 不要把反编译代码当完整源码;变量名和结构可能被破坏。 |
| Flutter AOT / blutter | Flutter release 且有 arm64-v8a/libapp.so。 |
Dart snapshot 的对象、符号、伪代码线索、Frida 辅助脚本。 | 当前不要对 armeabi-v7a 样本强跑 blutter;先补 arm64 split。 |
| Ghidra native | .so、JNI、Flutter AOT、IL2CPP、PDF/OCR/AI/媒体 native 库。 |
函数列表、符号、伪 C preview、native 调用方向。 | 不要作为 Activity、Hermes、普通 Java/Kotlin 页面的主路径。 |
| 动态 lane | paywall、接口、远端配置、权限弹窗、真实算法行为。 | 抓包、Frida/ADB 证据、受控输入输出、真实 SKU 和实验状态。 | 不要在没有静态定位前盲跑;先确定 hook 点和测试场景。 |
五、后续每个 App 的快速分析流程
- 先跑基础静态:包名、版本、签名、权限、组件、SDK、endpoint、assets、native libs。
- 立即分类技术栈:RN/Hermes、Flutter、Java/Kotlin、native-heavy、Unity/IL2CPP、hybrid WebView。
- 按分类选择唯一主 lane:Hermes 看 JS 逻辑,Flutter 找 arm64 + blutter,Java/Kotlin 走 Activity/JADX,native-heavy 走 Ghidra 定点。
- 输出产品级问题清单:首次价值、权限解释、扫描/生成/转换主流程、paywall 触发点、退款/误删/隐私风险。
- 只对高价值疑点做动态补证:接口 host、SKU、远端配置、关键函数入参出参、受控样本行为。
- 版本对比放在第二轮:latest 先看当前商业化,earliest 用来还原初始 MVP 和功能膨胀路径。
六、下轮优先事项
- Cleaner Guru:用真机/模拟器跑受控相册,验证 timestamp 分组假设,抓 paywall/SKU/restore/subscription 校验接口。
- Flutter AI 图片 App:arm64 + blutter 已跑通;下一步只对生产 AI host、远端配置、reward/paywall 触发和输入输出样本做动态补证。
- PDF Reader:优先 Activity/JADX 拆文档导入、PDF 渲染、OCR、广告插屏、订阅入口;Ghidra 只看 PDF/OCR native 库。
- Refoto:Ghidra/native 定点分析已确认本地 smart crop、face landmark、MNN/OpenCL 和 FFmpeg wrapper;下一步追服务端生成任务、模板缓存和上传前后链路。
- Opera/NordVPN:只作为头部话术和信任背书参考,不投入重逆向。
七、证据入口
- Cleaner Guru 逻辑深挖报告
- 批次深挖总览
- AI Art Magic Flutter AOT arm64 深挖
- AI Photo Lab Flutter AOT arm64 深挖
- Refoto native/Ghidra 深挖
- Flutter AOT + Refoto native 查无可查总结
- Package forensics 工作流文档
清理规则:本报告只保留摘要和证据入口;APK、解包目录、Ghidra/blutter 原始输出继续放在 ignored 的本地目录,不提交。