工具

ProbeDroid Android 动态插桩工具包

面向 Android 5.0 的 Java 方法动态插桩工具包,让分析人员在没有应用源码的情况下自行编写跟踪和性能分析工具。启动器通过 ptrace 把原生引擎库和用户构建的插桩 APK 注入新启动的目标应用;插桩工具继承 Instrument API,钩挂系统框架或应用自定义的 Java 方法,查看或修改其参数与返回值。README 的演示使用示例工具,记录经 StringBuilder 和 StringBuffer 构造的字符串,以及应用启动的 Activity 和 Service。

目标
应用
类别
调试与动态分析
关联
基础工具
来源复核于

使用条件与局限

  • 没有发布版或标签;所审阅的 master 分支 2018-12-16 提交只更新了项目简介,最后一次代码改动在 2017 年 1 月。README 称该工具包仍在开发中,只支持 x86 和 ARM armeabi-v7a 设备上的 Android 5.0,且暂不能对原生方法插桩。
  • 2016 年 7 月的 wiki 页面列出的依赖为 JDK 与 JRE 7+、用于运行 auto.py 构建和部署脚本的 Python 2.6+、Android SDK、用于构建启动器和 libProbeDroid.so 的 NDK,以及用于构建 ProbeDroid.jar API 的 Apache Ant;插桩工具以最低 API 21 的 Android Studio 项目编写并导入该 jar,无需 Android 源码树。示例工具位于 tools/ 目录及独立的 ProbeDroidTool 仓库。
  • 运行需要已 root 的 Android 5.0 设备或 API 21 模拟器镜像;wiki 要求分析者先在该测试设备上把 SELinux 设为宽容模式,再用目标包名、引擎库、插桩 APK 和主类启动启动器,结果输出到 logcat。待分析的应用由使用者自备。
  • 采用 MIT 许可证(版权 2016 ZongXian Shen),但源自 AOSP 的 ART 运行时及 common 目录部分源码采用 Apache-2.0,附带的 libffi 采用其自身的 MIT 许可证。本次审阅未构建或运行任何内容;所审来源未确立与 REA 的关联。

关于此条目

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

报告条目过时 建议修正翻译

一手来源

  1. README.md GitHub · ZSShen/ProbeDroid · 修订 a6dc602
  2. https://github.com/ZSShen/ProbeDroid/wiki/Prerequisite/470d91e6ec6e201143c73e6f33c83851c46705c9
  3. https://github.com/ZSShen/ProbeDroid/wiki/Compile-Engine/755f938494534f068f64d504d5418be8c4babac8
  4. https://github.com/ZSShen/ProbeDroid/wiki/Prepare-Device/8ecdb80097af7a52bf6e9adb106b90b0ba046047
  5. https://github.com/ZSShen/ProbeDroid/wiki/Start-Instrument/0d2f309e320f8b92660c084e6502671940b50133
  6. engine/src/org/probedroid/Instrument.java GitHub · ZSShen/ProbeDroid · 修订 a6dc602
  7. launcher/jni/arch/proc_arm.cc GitHub · ZSShen/ProbeDroid · 修订 a6dc602
  8. COPYING GitHub · ZSShen/ProbeDroid · 修订 a6dc602

同分区更多条目:原生二进制

原生二进制分区全部 158 项资源