大家好,
今天开源一个比较硬核的工具:**dexfinder**。
它是一个**跨平台的高性能 APK/DEX 引用查找器与调用链追踪工具**。
**开源地址**:[
https://github.com/JuneLeGency/dexfinder](
https://github.com/JuneLeGency/dexfinder)
**痛点与背景:**
做 Android 开发或者安全合规的同学一定经历过这种痛苦:
App 因为“违规收集 MAC 地址 / IMEI”被各大应用市场甚至工信部通报下架。
为了甩锅(或者修 Bug ),我们常常要把几百兆的 APK 拖进 JADX 里,卡上大半天,再去全局搜索 `getDeviceId`。
而很多时候搜索出来的结果是 A 调用了 B ,B 调用了 C... 或者全是一堆被混淆的代码(`a.b.c()`),甚至还有流氓 SDK 用“反射+字符串”来隐藏调用。
**dexfinder 是如何解决这个问题的?**
受 Google 官方 `veridex` 工具的启发,我用 Go 语言彻底重写了底层 DEX 解析引擎,抛弃了笨重的 JVM ,**纯静态扫描,速度极快(毫秒级)**。
核心杀手级功能:
1. **多层调用链追踪 (N-level Tracing)**:
只需一行命令:`dexfinder --dex-file app.apk --query "getDeviceId" --trace --depth 8`
它会瞬间画出一棵树(或扁平列表),清晰地告诉你:是哪个类的哪个方法,在第几层触发了这次敏感调用。
2. **自带反混淆支持**:
传入 `mapping.txt`,自动把调用树里的 `a.b.c()` 还原成真实的 `com.example.Utils.getIMEI()`。
3. **反射与隐藏 API 检测**:
自动交叉匹配“类名”和“字符串”,精准揪出通过反射暗中调用系统 Hidden API 的流氓行为。
4. **零依赖,跨平台**:
纯 Go 编译成的单一二进制文件,不需要装 Java ,Mac / Linux / Win 直接跑。
如果你经常分析巨型 APK 、做隐私合规排查、或者进行逆向安全分析,这个工具绝对能帮你省下几个小时的生命。
欢迎大家下载体验并点个 Star ⭐️ 支持一下!如果有 Bug 或者功能建议,也欢迎提 Issue 。
(安装方法:Mac/Linux 用户直接 `brew tap JuneLeGency/tap && brew install dexfinder`)