DIPD 文档
4xpl0r3r/DIPD: Debug with IDA and Pwntools in Docker (DIPD) (github.com)
关于
通过这个工具,可以同时使用pwntools和IDA在docker中调试程序
安全 快速 强大(IDA)
快速开始
1 | git clone https://github.com/4xpl0r3r/DIPD.git |
- 安装Docker、docker-compose和IDA(你可以将他们安装在不同的主机上,只需要保证网络畅通即可)
- 将程序文件移动到
debug/
目录并改名为todebug
- 在此项目根目录运行
docker-compose up
命令
完成上述步骤后,通过如下命令访问程序的标准输入输出
1 | nc docker.ip 23458 |
IDA Pro调试器参数 (版本7.6)
- Type: Remote Linux Debugger (Attach)
- Hostname: docker.ip (运行docker主机的IP)
- Port: 23946
- 不需要密码
注意
- 在使用IDA Attach到调试进程之前,必须先使用netcat或pwntools运行程序,否则无法在IDA中看到想要的进程
- 你必须在64位架构中运行的Docker以同时支持32位(i386)和64位(amd64)架构程序的调试
演示
启动DIPD
1 | docker-compose up |
运行并连接到你所调试程序的STDIO
1 | nc docker.ip 23458 |
现在,你的二进制文件应该已经在运行了
接下来打开IDA并启动IDA调试器
输入信息并点击OK
现在你可以看到你的docker中的进程,选择./todebug
调试并点击”OK”
现在你应该已经进入调试视图,没有任何错误和异常
文件 - docker-compose.yml
image
你可以在这里选择你想要的基本映像,这里有一些常用的选项
1 | i386/ubuntu:16.04 |
你必须在64位架构中运行的Docker以同时支持32位(i386)和64位(amd64)架构程序的调试,否则只能调试32位(i386)程序
其他参数
查看相关注释即可
目录 - files
目录 - debs
socat的apt包,用于快速安装和离线支持
文件 - linux_server[64]
IDA Debug Server v7.6
如果不想使用 IDA v7.6 版本,可以进行替换
文件 - init.sh
此脚本文件用于初始化调试环境,你可以对其修改以进行任何调整