gef, GEF &增强开发开发者reversers的功能

分享于 

6分钟阅读

GitHub

  繁體 雙語
Multi-Architecture GDB Enhanced Features for Exploiters & Reverse-Engineers
  • 源代码名称:gef
  • 源代码网址:http://www.github.com/hugsy/gef
  • gef源代码文档
  • gef源代码下载
  • Git URL:
    git://www.github.com/hugsy/gef.git
    Git Clone代码到本地:
    git clone http://www.github.com/hugsy/gef
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/hugsy/gef
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    GEF - GDB增强功能

    ReadTheDocsMITPython 2 & 3IRCContinuous Integration status (master)

    GEF 是用于 X86.ARM。MIPS。PowerPC和SPARC的一系列命令,让GDB再次冷却开发开发。 它主要由挖掘者和反向工程师使用,使用 python API为动态分析和开发过程提供附加特性。

    它对Python2和Python3都完全支持( 随着越来越多的发行版开始推出Python3支持的gdb )的。

    gef-context

    GEF 功能的一些包括:

    • 一单GDB单。
    • 完全收费的操作系统不可知,不需要花费:的依赖: GEF的电池包括并安装在 2秒的( 与 PwnDBG 不同) 中。
    • 快速限制依赖性和优化代码,使命令尽可能快的( 与 PwnDBG 不同。)。
    • 提供超过的命令,以极大地改变你在GDB的体验。
    • 通过提供更易于理解的布局,为 GDB API提供更易于理解的布局,可以轻松地创建 extendable。
    • 在Python2和Python3上一致工作。
    • 围绕体系结构抽象层构建,因此所有gdb支持体系结构中的命令都可以使用,如 x86-32/64,ARMv5/6/7, AARCH64,SPARC,MIPS,PowerPC,等等 ( 不同于 PEDA )
    • 实际应用程序调试,开发开发,与 CTF ( 不同于 PEDA 或者 PwnDBG ) 非常适合。

    快速启动

    安装

    只要确保有 GDB或者更高版本。

    # via the install script$ wget -q -O- https://github.com/hugsy/gef/raw/master/gef.sh | sh# manually$ wget -O ~/.gdbinit-gef.py -q https://github.com/hugsy/gef/raw/master/gef.py
    $ echosource~/.gdbinit-gef.py >>~/.gdbinit

    然后开始播放( 对于本地文件):

    $ gdb -q/path/to/my/bin
    gef➤ gef help

    或者( 用于远程调试):

    remote:~ $ gdbserver 0.0.0.0:1234/path/to/file
    Running as PID: 666

    还有:

    local:~ $ gdb -q
    gef➤ gef-remote -t your.ip.address:1234 -p 666

    更新

    如果主机/vm连接到互联网,你可以轻松地更新 GEF 到最新版本( 即使没有安装 git )。 使用 python/path/to/gef.py --update

    例如:

    $ python ~/.gdbinit-gef.py --update
    Updated

    如果没有可用的更新,GEF 将响应 No update

    屏幕截图

    这展示了在安装 GEF 时可以使用的一些新特性的示例,其中包含了。

    通过unicorn引擎( x86-64 ) 在GDB中模拟代码

    gef-x86

    使用 capstone/keystone集成显示ELF信息。内存映射和使用顶点/keystone集成( ARM版本)

    gef-arm

    自动取消注册寄存器值和标识二进制保护( PowerPC )

    gef-ppc

    显示当前上下文和堆信息( MIPS )

    gef-mips

    正在使用顶点引擎( SPARC v9 )

    gef-sparc

    依赖项

    ::GEF 在盒子里工作 ! 但是,为了享受所有最酷的功能,建议你安装:

    要快速安装,只需使用 pip 打包的版本:

    # for Python2.x$ pip2 install capstone unicorn keystone-engine ropper# for Python3.x$ pip3 install capstone unicorn keystone-engine ropper retdec-python

    确保你使用的是与你的GDB编译的python 版本相对应的pip。 如果在安装它们时遇到问题,请在相应项目的GitHub上发布问题。 如果 Bug 与 GEF 无关,你将无法得到答案。

    Bug &反馈

    要讨论 GEFgdb。开发或者其他主题,可以随意加入Freenode网络上的##gef 通道。 你也可以通过频道给我( hugsy )。 对于那些没有IRC客户端(。weechat 或者 irssi )的用户,只要点击这里即可。

    如果你需要帮助,请在这里输入 Bug 或者功能请求,并提供详细说明。

    GEF 完全依赖于 GDB API和其他特定于linux的信息资源。 因此,某些特性可能无法在定制或者硬化系统( 如 GrSec ) 上工作。

    捐赠

    虽然 GEF 是由我自己创建和维护的,但由于所有贡献者的支持,我仍然保持了新的活力。

    如果你喜欢这个工具,你可以在 IRC,Twitter 或者其他网站上随意放置一个简单的"致谢",它总是非常有用。

    开源奖励

    我喜欢开源,就像我的其他项目项目一样,我决定提供一个


    EXP  feature  翻转  漏洞  GDB