gdb插件gef的安装方法

2025-04-05 15:17:34

1、GDB是Linux下程序调试的利器,但是界面过于魑徒扮阙简单,调试效率较为低下,网上给出了两个插件,分别是peda和gef插件,peda插件安装较为简单,这里就不介绍了,洹彭岣啬而gef插件安装较为复杂,部分命令需要依赖库的支持,所以这里重点介绍如何安装gef插件及其依赖库。这里选用的是Debian 8.4 x86的环境,默认Python版本是2.7.9,且默认未安装GDB,下面是安装的过程。

2、Debian8.4默认未安装GDB,所以首咸犴孜稍先安装GDB,命令如下所示:root@localhost:~# dpkg -i gdb_7.7.1+dfsg-5_i386.deb然后顺便安装一下gdbserver,命令如下所示:root@localhost:~# dpkg -i gdbserver_7.7.1+dfsg-5_i386.debDebian8.4默认python版本是2.7.9,gef插件需要unicorn模块,下载unicorn-1.0.1.tar.gz源码包开始安装,命令如下所示:root@localhost:~# python setup.py installgef插件还需要filebytes模块,下载filebytes-0.9.15.tar.gz源码包开始安装,命令如下所示:root@localhost:~# python setup.py installgef插件还需要ropper模块,下载ropper-1.11.6.tar.gz源码包开始安装,命令如下所示:root@localhost:~# python setup.py installgef插件还需要keystone模块,该模块编译需要安装cmake,所以先安装cmake,命令如下所示:root@localhost:~# dpkg -i cmake-data_3.0.2-1_all.debroot@localhost:~# dpkg -i cmake_3.0.2-1_i386.deb这里以动态安装keystone为例进行安装命令说明,解压keystone.zip,进入keystone目录下,执行下面命令:root@localhost:~/keystone# mkdir buildroot@localhost:~/keystone# cd build/root@localhost:~/keystone/build# ../make-share.sh执行完成之后,进行cmake编译,默认会编译所有的架构,但如果只编译x64和x86架构,可以在DLLVM_TARGETS_TO_BUILD选项里进行设置,命令如下所示:root@localhost:~/keystone/build# cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DLLVM_TARGETS_TO_BUILD="AArch64;X86" -G "Unix Makefiles" ..root@localhost:~/keystone/build# make -j8编译完成之后下面开始安装keystone,命令如下所示:root@localhost:~/keystone/build# make install安装完成之后,keystone被安装在/usr/local/目录下,下面再更新一下动态链接库信息,命令如下所示:root@localhost:~/keystone/build# ldconfigkeystone安装完之后,/include/keystone包含一些库和C头文件,此外还安装了一个kstool的工具,安装在kstool/kstool下,用来测试反汇编代码的,比如测试如下代码:root@localhost:~# kstool x32 "add eax, ebx"add eax, ebx = [ 01 d8 ]最后安装keystone-engine模块,下载keystone-engine-0.9.1-3.tar.gz源码包开始安装,命令如下所示:root@localhost:~# python setup.py install这样一来gef插件的依赖库环境就配置完成了,下面安装gef插件即可,将gef文件夹拷贝到/root目录下,然后执行下面的命令进行安装:root@localhost:~# echo "source ~/gef/gef.py" > ~/.gdbinitgef插件安装完成之后,打开gdb即可,如下所示:

gdb插件gef的安装方法

3、可以看到能够加载其中的65条命令,而唯一一条不能加载的命令是因为retdec-python模块不支持python2,所以这里就可以忽略该条命令。这里找一个x86的ELF程序,使用gdb打开并在main函数下断点,可以看到插件清楚的展示了寄存器、栈以及汇编代码等内容,如下所示:

gdb插件gef的安装方法
gdb插件gef的安装方法
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢