酷徒LOGO
0 0 评论
  • 显示原文与译文双语对照的内容
文章标签:debugger  debug  DEB  
A hacky UI for GDB

  • 源代码名称:voltron
  • 源代码网址:http://www.github.com/snare/voltron
  • voltron源代码文档
  • voltron源代码下载
  • Git URL:
    git://www.github.com/snare/voltron.git
  • Git Clone代码到本地:
    git clone http://www.github.com/snare/voltron
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/snare/voltron
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
  • Voltron

    build

    Voltron是一个用 python 编写的可以扩展调试器用户界面工具包。 它旨在通过支持从调试器主机检索和显示数据的工具视图,从而提高各种调试器(。LLDB,GDB,VDB和 WinDbg )的用户体验。 你可以在其他TTYs中运行这些视图,从而构建定制的调试器用户界面,以满足你的需求。

    Voltron并不打算成为所有人的一切。 它不是你的调试器的一个批发替换。 相反,它的目的是补充现有的设置,并允许你尽可以能多地扩展CLI调试器。 如果只希望在调试器旁边的窗口中查看 register 内容的视图,可以执行以下操作。 如果你想要出去,并且有一些看起来更像OllyDbg的东西,你也可以这样做。

    提供的视图用于:

    • 寄存器
    • 汇编
    • 堆栈
    • 内存
    • 断点
    • 回溯

    作者的设置类似于以下内容:

    voltron example LLDB

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

    command views

    更多的屏幕截图在这里是。

    支持

    Voltron支持 LLDB,GDB,VDB和 windbg/cdb ( 通过 PyKD ),并运行在 macOS,Linux和 Windows 上。

    如果你有问题的话,WinDbg支持还是很新的,请打开一个问题。

    支持以下架构:

    lldb gdb windbg
    x86
    x86_64
    手臂
    arm64
    powerpc

    安装

    注意:install只有 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
    
    
    
    

    如果你在没有 shell的Windows 上,或者安装时遇到问题,或者希望手动安装,请参阅手动安装文档

    快速启动

    如果调试器有初始化脚本( 用于LLDB的.lldbinit 或者 .gdbinit的),则在启动 entry.py 入口点脚本时,将它的配置为加载 Voltron。 完整路径将在 voltron 包内。 例如在 macOS 上,它可能是 /Library/Python/2.7/site-packages/voltron/entry.py。 如果 install.sh 脚本在你的路径中检测到GDB或者 LLDB,它会自动将它添加到你的.gdbinit 或者 .lldbinit 文件中。

    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仅支持通过Bash与Linux用户一起运行。 作者使用 GitConEmu测试。 启动调试器时,可以在一个命令中加载PyKD和 Voltron:

    
     $ cdb -c '.load C:pathtopykd.pyd ;!py --global C:pathtovoltronentry.py' target_binary
    
    
    
    

    在另一个终端( 我使用iTerm窗格) 中,启动一个用户界面视图。 在 LLDB。WinDbg和GDB上,视图将立即更新。 在VDB上,在下拉( 在断点处,在一步之后) 停止之前,它们不会更新:

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

    设置断点并运行下一个断点。

    
     (*db) b main
    
    
     (*db) run
    
    
    
    

    调试器按下断点时,视图将会更新,反映寄存器。堆栈。内存,在调试器CLI中执行每个命令后,使用"调试器钩子停止"机制更新每个命令的等等 视图。 因此,每次执行或者继续并按下断点时,视图都将更新。

    文档

    在github上查看 wiki插件。

    常见问题解答

    Q Q 为什么我得到了一个加载 Voltron

    你可能安装了多个版本的python,并且使用了错误的版本安装了 Voltron。 请参阅更详细的安装指导程序。

    GEF GEFPEDAPwnDbg

    GDB的所有扩展扩展。 这些工具主要为开发任务提供一些附加命令,但每个工具都提供一个带有寄存器。栈。代码等的"上下文"显示,如 Voltron。 这些工具在调试器每次停止时都将它的上下文显示在调试器控制台中。 Voltron通过在调试器中嵌入一个RPC服务器插入,使它的与它的他终端( 或者甚至是网络浏览器,或者现在与二进制忍者机同步。)的视图联系起来。 所有这些工具一起工作,Voltron。 你可以在GDB扩展中禁用上下文显示,并挂钩一些Voltron视图,而这些工具的所有优点。

    Bug 和勘误表

    有关更多信息或者提交问题,请参阅github上的跟踪器

    如果你遇到了 ImportError 加载 Voltron,请确保你已经遵循了你的平台的安装指导。

    LLDB

    在旧版本的LLDB上,必须在加载调试目标之后手动运行 voltron init 命令,必须在安装voltron之前装载目标。 如果需要 voltron init,Voltron将尝试自动 register 事件处理程序,并将通知用户。

    WinDbg

    更多关于 windbg/cdb支持的信息在这里。

    作者主要使用Voltron和 macOS 上的LLDB的最新版本。 我们将在发布之前尽可能多地测试所有平台和架构,但是 LLDB/macOS/x64 将是目前使用最频繁的组合。 希望Voltron不会让你的宠物着火,但 YMMV。

    许可证

    查看许可协议文件。

    如果你用这个,不要讨厌它,请在会议时给我一个啤酒。 这个许可也延伸到其他贡献者- - richo 绝对应该为他的贡献beers几品脱。

    Credits

    感谢我以前雇主的保证和方位安全,给我花在这方面的时间。

    richo的道具,他对Voltron的贡献。

    fG gdbinit是这个项目的最初灵感。

    感谢 Willi 实现VDB支持。

    Voltron现在使用 Capstone,以及调试器主机'内部反汇编机制。 是一个强大。开源。多架构反汇编,下一代逆向工程和调试工具正被构建在这个平台上。 看看吧。

    感谢 grazfather公司的持续捐赠。



    文章标签:DEB  debug  debugger  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备17041772号-2  |  如果智培  |  酷兔英语  |  帮酷