ida动态调试+pwntools输入
发表于:2021-11-01 |
字数统计: 408 | 阅读时长: 1分钟 | 阅读量:

ida动态调试+pwntools输入

因为网上没有太多关于这方面的博客并且也都有些简单了(对于我这种人来说并不算太友好),所以本篇记录了我一些踩坑的地方,同时也会写的尽量详细一点。

ida远程调试

首先在找到dbgsrv文件夹,将其中的linux_server/64放入到linux中。在linux中查看linux_serve/64有无执行权限,如果没有使用如下命令

1
sudo chmod 777 ./linux_serve/64

在linux上执行./linux_serve/64,如下图

image-20211101170431707

接着我们打开ida,在菜单栏找到debugger

image-20211101165937408

我们选择Remote linux debugger

image-20211101170102888

紧接着我们在程序中下上断点

image-20211101170351244

然后点击debugger中的Start process,会跳出来如下弹窗

image-20211101170929794

然后就会运行到断点处:

image-20211101171050294

如果断点下在输入函数后,需要我们先进行输入,才能到达断点处。

image-20211101171241305

但我们有时候需要输入不可显示字符才能使程序继续下去,所以我们需要使用pwntools来输入不可显示字符。

pwntools输入

我们需要首先在linux中安装socat、expect、pwntools,使用apt-get即可安装。

接着创建一个idaIOtool.sh,将如下代码复制到文件中

1
2
3
4
5
6
#!/usr/bin/expect -f
spawn socat tcp-listen:10001,reuseaddr,fork EXEC:./CrazyVM,pty,raw,echo=0
spawn python2
send "from pwn import *\n"
send "io=remote('127.0.0.1',10001)\n"
interact

代码中 ./CrazyVM 需要替换成自己的程序名

运行linux_server64

image-20211101172157875

运行idaIOtool.sh

image-20211101172341129

打开ida在debugger中找到Attach to process,找到运行的程序。点击ok即可调试。

image-20211101172858732

这样我们就可以使用pwntools输入不可显示字符了。

上一篇:
2021湖湘杯线上
下一篇:
JIT类型初探