很遗憾WSL默认使用64bit的程序,不支持32位的程序,我们在不使用QEMU的情况下只能调试64位的程序。但也可以使用一些手段来达到调试32位程序的目的:
0.安装QEMU,修改pwnlib
安装QEMU
|
|
这个时候在命令行里面输入
|
|
查看是否安装成功 之后修改文件
/usr/local/lib/python3.6/dist-packages/pwnlib/context/__init__.py
在里面的native()函数中加入以下行:
|
|
之后调试32位程序的时候记得在脚本里面加上这句话就可以了:
|
|
同时要注意连接函数的写法不能是
|
|
而要是:
|
|
1.设置ubuntu默认root启动
进入目录
|
|
2.修改ptrace设置
需要把下列文件里面的变量改成0(原来是1)
|
|
或者
|
|
3.下载WSL-terminal
WSL-terminal 向环境变量PATH里面加入WSL-terminal所在目录。
4.按照pwntools和pwndbg
pwntools
|
|
pwndbg
|
|
5.编写pwn脚本
之后的pwn脚本都要添加下面这些话:
|
|
或者
|
|
如果open-wsl.exe不太好装可以使用以下脚本:
|
|
6.动态调试
之后就可以愉快的动态调试了
64位
32位

说些什么吧!