参考博客:gdbinit 使用(转)_如何生效gdbinit-CSDN博客

配置~/.gdbinit

介绍

  • gdbinit是一个设置后,使用gdb动态调试时,会提前进行一些操作。比如提前设置断点等。

  • 也可以配置一些gdb的图形界面,以便动态调试的时候更方便

  • gdbinit一般存在于~/.gdbinit,如果没有该文件就直接用文本编辑器创建一个即可 vim ~/.gdbinit

    • gdb在启动的时候,会查找".gdbinit"这个文件,并把它的内容作为gdb命令进行解释,所以如果我把脚本命名为".gdbinit",这样在启动的时候就会处理这些命令。
    • 可以使用 source script-file 来解释gdb命令脚本script-file
    • 下图是gdb启动时查找.gdbinit的顺序

img

配置窗口与命令分离

  • 效果如下图

image-20240426132332999

  • 配置过程如下

  • 直接在主目录下 vim ~/.gdbinit,打开该配置文件

image-20240426132454591

  • 打开后输入指令 set context-output /dev/pts/1,即可。

image-20240910083453703

配置gdb.attach()新建的终端

  • 自从重新编译内核之后使用gdb.attach就会出现如下终端

image-20241123214335096

  • 上图的终端看得非常不舒服,字也很小,所以就想办法修改了一下设置,使得gdb.attach()会新建一个下图的终端

image-20241123214558059

  • 这里有三种方法可以修改成改终端

    • 方法一:修改.bashrc文件,尝试使用该方法,但是会出现一些问题,不是很方便。

    • 方法二:每次写exp的时候都添加上这一行代码context.terminal = ['wt.exe', 'bash', '-c']

    • 方法三:修改导入pwntools库中的__init__.py文件(我使用的方法,会详细介绍)

修改init.py文件

  • 在学python导入库的时候就会知道,from pwn import *,就会默认去执行所导入库中的init.py这个文件。利用这个特性就可以修改默认配置了
  • 首先要找到该默认配置的文件,在终端中使用Python执行如下语句,就会找到init的路径
1
python3.10 -c "import pwn; print(pwn.__path__)"

image-20241123215132336

  • 找到该路径后就会看到init.py文件,这个文件就是我要添加内容的文件

image-20241123215205222

  • 添加这一行内容就可以在每次使用gdb.attach时启动Windows的cmd终端了

image-20241123215306132