使用gdb像pwndbg一样调试exe

使用gdb像pwndbg一样调试exe

RocketDev

Pwndbg很好用,可以检查地址,可以看代码等,那么如果能够在MSYS里装上的话,调试exe的体验不是飞起? 首先我就试了试MSYS上的gdb,但是不能用,一直在编译什么guile,不过其他衍生可以用,比如ucrt64

于是我就把Pwndbg的源码拉下来,尝试运行setup.sh,又出错了:它给python.exe加上了3.11, 那自然运行不了,于是我就把版本号去掉,就开始安装了。然后因为无法编译cffi模块又卡住了, 可是它用的是venv,外部依赖对它不起效,怎么办呢?我尝试下载模块源码,根据MSYS的patch编译, 还是不行。最后我把venv去掉了,让它找全局环境,仍然不行,考虑到估计下成功,pie之类的命令估计也用不了, 我就放弃了

类似Pwndbg,gdb-dashboard 也是个显示很多信息的项目,于是我就按项目所说, 下载了gdbinit文件:

1
2
wget -P ~ https://github.com/cyrus-and/gdb-dashboard/raw/master/.gdbinit
pacman -S mingw-w64-ucrt-x86_64-python-pygments

然后又出bug了:

锟斤拷烫烫烫

怎么锟斤拷都出来了??于是我就设置了gdb的选项host-charset, target-charset, target-wide-charset, charset都为UTF-8,还是不行,看到有人说,gdb应该读取外部的LANG环境变量来决定编码,但在Windows平台, 还是要过一遍Windows-console,编码又变回了GBK,必须在运行gdb的时候手动把代码页设置为65001,于是我也跟着做了, gdb显示no context,没办法,我只能将Windows全局设为了UTF-8,终于解决了问题

configuration

sucess

  • 标题: 使用gdb像pwndbg一样调试exe
  • 作者: RocketDev
  • 创建于 : 2024-05-01 22:59:00
  • 更新于 : 2024-07-25 12:34:56
  • 链接: https://rocketmadev.github.io/2024/05/01/gdbInMsys/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
目录
使用gdb像pwndbg一样调试exe