找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

  • QQ空间
  • 回复
  • 收藏

适用于黑客的可扩展调试器UI:Voltron

Voltron是一个用Python编写的可扩展调试器UI工具包。它旨在通过启用可以从调试器主机检索和显示数据的实用程序视图的附件来改善各种调试器(LLDB,GDB,VDB和WinDbg)的用户体验。通过在其他TTY中运行这些视图,您可以构建自定义调试器用户界面以满足您的需求。

Voltron的目标不是成为每个人的一切。它不是您的调试器CLI的批发替代品。相反,它旨在补充您现有的设置,并允许您根据需要尽可能多地扩展CLI调试器。如果您只想在调试器旁边的窗口中查看寄存器内容,则可以执行此操作。如果你想要全力以赴并拥有看起来更像OllyDbg的东西,你也可以这样做。

内置Built-in views包括:

  • Registers
  • Disassembly
  • Stack
  • Memory
  • Breakpoints
  • Backtrace

支持

voltron支持LLDB,GDB,VDB和WinDbg / CDB(通过PyKD),可在OS X,Linux和Windows上运行。

安装

注意:安装脚本完全支持macOS和Debian衍生产品。它应该不会在其他Linux发行版上失败,但它不会尝试安装包依赖项。如果您正在使用其他发行版,install.sh请在运行之前查看可能需要安装的依赖项。

下载源并运行安装脚本:

git clone https://github.com/snare/voltron
$ cd voltron
$ ./install.sh

默认情况下,安装脚本将安装到用户的site-packages目录中。如果要安装到系统中site-packages,请使用-s标志:

./install.sh -s

您也可以安装到虚拟环境中(仅适用于LLDB),如下所示:

./install.sh -v /path/to/venv -b lldb

如果您在没有外壳的Windows上,安装有问题或者希望手动安装,请参阅手册安装文档。

快速开始

如果您的调试器具有init脚本(.lldbinit对于LLDB或.gdbinitGDB),则将其配置为在启动时通过获取entry.py入口点脚本来加载Voltron 。完整路径将在voltron包内。例如,在macOS上,它可能是/Library/Python/2.7/site-packages/voltron/entry.py。该install.sh脚本将添加到您.gdbinit或者.lldbinit如果它检测到GDB或LLDB在您的路径自动文件。

LLDB:

 command script import /path/to/voltron/entry.py
GDB:

 source /path/to/voltron/entry.py

如有必要,启动调试器并手动初始化Voltron。

在LLDB的最新版本中,您无需手动初始化Voltron:

 lldb target_binary

在旧版本的LLDB上,您需要voltron init在加载劣质后调用:

lldb target_binary
 (lldb) voltron init
GDB:

gdb target_binary
VDB:

 ./vdbbin target_binary
 > script /path/to/voltron/entry.py
WinDbg / CDB仅支持使用Linux用户空间通过Bash运行。作者用Git Bash和ConEmu进行测试。启动调试器时,可以在一个命令中加载PyKD和Voltron:

 cdb -c '.load C:\path\to\pykd.pyd ; !py --global C:\path\to\voltron\entry.py' target_binary

在另一个终端(我使用iTerm窗格)启动其中一个UI视图。在LLDB,WinDbg和GDB上,视图将立即更新。在VDB上,他们不会更新,直到下级停止(在断点,步骤后等):

 voltron view register
 voltron view stack
 voltron view disasm
 voltron view backtrace

设置一个断点并运行你的下级。

 (*db) b main
 (*db) run

当调试器到达断点时,视图将被更新以反映寄存器,堆栈,内存等的当前状态。在调试器CLI中使用调试器的“stop hook”机制在每个命令执行后更新视图。因此,每次您执行步骤,或继续并按下断点时,视图都会更新。

任何调试器命令都可以拆分为视图并使用指定的Pygments lexer突出显示:



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表评论
您需要登录后才可以回帖 登录 | 注册