关于Voltron
Voltron是一款功能强大的可扩展调试器UI工具包,该工具基于Python开发,旨在通过引入程序视图来提升和改善各种调试器(LLDB、GDB、VDB和WinDbg)的用户体验。Voltron可以通过调试器来获取和显示数据,并通过在其他TTY中运行这些视图来帮助构建一个定制的调试器用户界面,以满足广大安全测试人员的需求。
Voltron并不能作为调试工具的替代品,只是现有工具的一个扩展补充组件。除此之外,Voltron还允许我们自定义扩展CLI调试器。
工具内置视图可用于:
注册表 反汇编 堆栈 内存 断点 回溯
工具支持
Voltron支持LLDB、GDB、VDB和WinDbg/CBD,可以在macOS、Linux和Windows平台上运行。并支持下列系统架构:
lldb | gdb | vdb | windbg | |
---|---|---|---|---|
x86 | ✓ | ✓ | ✓ | ✓ |
x86_64 | ✓ | ✓ | ✓ | ✓ |
arm | ✓ | ✓ | ✓ | ✗ |
arm64 | ✓ | ✗ | ✗ | ✗ |
powerpc | ✗ | ✓ | ✗ | ✗ |
工具安装
当前版本的Voltron仅支持在macOS和Debian操作系统汇总使用安装脚本进行安装,我们需要使用下列命令将该项目源码克隆至本地,并完成工具的安装:
代码语言:javascript复制$ git clone https://github.com/snare/voltron
$ cd voltron
$ ./install.sh
默认配置下,安装将本将会把Voltron安装到用户的“site-packages”目录下,如果你想要安装到系统“site-packages”目录中,可以使用-s选项:
代码语言:javascript复制$ ./install.sh -s
我们还可以将其安装到虚拟环境中(仅支持LLDB):
代码语言:javascript复制$ ./install.sh -v /path/to/venv -b lldb
工具使用
如果你的调试器提供了初始化脚本,可以直接配置其在启动时(entry.py入口点脚本)加载Voltron。比如说在macOS上,脚本路径为“/Library/Python/2.7/site-packages/voltron/entry.py”,install.sh脚本会将其添加进GDB和LLDB的相关路径中。
LLDB:
代码语言:javascript复制command script import /path/to/voltron/entry.py
GDB:
代码语言:javascript复制source /path/to/voltron/entry.py
然后启动你的调试器,并初始化Voltron:
代码语言:javascript复制$ lldb target_binary
如果是旧版本的LLDB,则需手动调用初始化命令:
代码语言:javascript复制$ lldb target_binary
(lldb) voltron init
GDB:
代码语言:javascript复制$ gdb target_binary
VDB:
代码语言:javascript复制$ ./vdbbin target_binary
> script /path/to/voltron/entry.py
在其他终端窗口中,我们就可以使用下列命令来查看UI视图了:
代码语言:javascript复制$ voltron view register
$ voltron view stack
$ voltron view disasm
$ voltron view backtrace
工具截图
LLDB
GDB
WinDbg
VDB(Vivisect)
项目地址
https://github.com/snare/voltron