AndBug 是一个针对 Android 平台 Dalvik 虚拟机的调试器,专为逆向工程师和开发者设计。它使用与 Android 的 Eclipse 调试插件相同的接口——Java 调试线协议 (JDWP) 和 Dalvik 调试监视器 (DDM)——允许用户挂钩 Dalvik 方法、检查进程状态,甚至执行更改。
与谷歌官方的 Android 软件开发套件调试工具不同,AndBug 不需要也不期望源代码。但它确实需要你对 Python 有一定程度的熟悉,因为它使用一种称为“钩子”的脚本化断点概念来处理大多数重要任务。(如果你只想转储加载的类、方法或线程,有示例脚本可用于此。)
-- Scott Dunlop [email protected]
AndBug 是一个非常动态的程序,因为我正在将从 IOActive 为各种任务编写的临时脚本从客户和 IOActive 专有环境中分离出来。目前我不建议安装,因为之后你会希望频繁更新。AndBug 从其自己的源目录运行得很好,几乎不需要设置。
从 https://developer.android.com/sdk/index.html 安装 Android 软件开发套件
确保 Android 调试桥 (adb) 在你的 $PATH 中并且可用。 ::
which adb adb devices
确保你的平台有合适的 Python 和 GNU 工具链。你需要 GCC 和 Make。如果你希望在底层进行更改,可能还需要 Pyrex。
从 https://github.com/swdunlop/AndBug.git 拉取最新的 AndBug 代码 ::
git clone https://github.com/swdunlop/AndBug.git
使用 Make 构建 ::
make
调整 $PYTHONPATH ::
export PYTHONPATH=pwd/lib
示例可以在 sample 目录中找到,但查找 AndBug 中预打包功能的最简单方法是直接使用 "andbug" 命令。 ::
./andbug
该命令目前不具备智能检测自身是否从源目录运行并动态更新 PYTHONPATH 以匹配的功能。你需要确保 PYTHONPATH 包含你的 andbug/lib 目录。
Q: 尝试使用 AndBug 时出现 "Permission Denied",但 "adb shell" 正常工作。
A: 你的 adbd 可能以其他用户身份运行,阻止了 ADB 转发的有效使用。使用 "adb kill-server" 然后以正确的有效用户身份运行 "adb start-server"。
Q: 尝试使用 AndBug 时出现 "Shell Exception"。
A: 使用 "adb devices" 验证你的 ADB 设置是否正常工作——AndBug 依赖 ADB 进行 JDWP 传输。
Q: AndBug 能在 Windows 上工作吗?
A: 我认为可以;但由于 AndBug 是不受支持的软件,你可能会体验到比 Windows 用户习惯的更少的引导。欢迎补丁。
Q: AndBug 能在 Mac OS X 上工作吗?
A: 可以,但请参考关于 Windows 用户的讽刺。你不会在应用商店中找到这个……
Q: Navi 给我一个 RequestError 13。
A: 你已经恢复了进程;Navi 只能安全地与暂停的进程交互。再次使用 "suspend"。
Q: 发送命令时出现 "EOF in read"。
A: 确保没有其他调试器连接,例如 DDMS。
版权所有 2011, IOActive 保留所有权利。
AndBug 是自由软件:你可以根据自由软件基金会发布的 GNU 较宽松通用公共许可证第 3 版的规定重新分发和/或修改它。
AndBug 分发时希望它有用,但没有任何担保;甚至没有适销性或特定用途适用性的默示担保。请参阅 GNU 较宽松通用公共许可证以获取更多详情。
你应该已经随 AndBug 收到了 GNU 较宽松通用公共许可证的副本。如果没有,请参见 http://www.gnu.org/licenses/。