ida动态调试+pwntools输入
因为网上没有太多关于这方面的博客并且也都有些简单了(对于我这种人来说并不算太友好),所以本篇记录了我一些踩坑的地方,同时也会写的尽量详细一点。
ida远程调试
首先在找到dbgsrv文件夹,将其中的linux_server/64放入到linux中。在linux中查看linux_serve/64有无执行权限,如果没有使用如下命令
1 | sudo chmod 777 ./linux_serve/64 |
在linux上执行./linux_serve/64,如下图
接着我们打开ida,在菜单栏找到debugger
我们选择Remote linux debugger
紧接着我们在程序中下上断点。
然后点击debugger中的Start process,会跳出来如下弹窗
然后就会运行到断点处:
如果断点下在输入函数后,需要我们先进行输入,才能到达断点处。
但我们有时候需要输入不可显示字符才能使程序继续下去,所以我们需要使用pwntools来输入不可显示字符。
pwntools输入
我们需要首先在linux中安装socat、expect、pwntools,使用apt-get即可安装。
接着创建一个idaIOtool.sh,将如下代码复制到文件中
1 | #!/usr/bin/expect -f |
代码中 ./CrazyVM
需要替换成自己的程序名。
运行linux_server64
运行idaIOtool.sh
打开ida在debugger中找到Attach to process,找到运行的程序。点击ok即可调试。
这样我们就可以使用pwntools输入不可显示字符了。