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输入不可显示字符了。