V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
weiweilin
V2EX  ›  分享创造

[开源] 纯 Go 写的 Android 极速溯源神器: 1 秒揪出流氓 SDK 的隐私违规调用

  •  
  •   weiweilin · 5 天前 · 757 次点击
    大家好,

    今天开源一个比较硬核的工具:**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`)
    3 条回复    2026-04-03 15:24:40 +08:00
    xiaoke
        1
    xiaoke  
       5 天前
    企业加固的能看吗?
    wangqi060934
        2
    wangqi060934  
       5 天前
    支持
    weiweilin
        3
    weiweilin  
    OP
       2 天前
    @xiaoke 不支持
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2801 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 03:17 · PVG 11:17 · LAX 20:17 · JFK 23:17
    ♥ Do have faith in what you're doing.