DIPD 文档

4xpl0r3r/DIPD: Debug with IDA and Pwntools in Docker (DIPD) (github.com)

本文同时提供以下语言的翻译: English.

关于

通过这个工具,可以同时使用pwntools和IDA在docker中调试程序

安全 快速 强大(IDA)

快速开始

1
git clone https://github.com/4xpl0r3r/DIPD.git
  1. 安装Docker、docker-compose和IDA(你可以将他们安装在不同的主机上,只需要保证网络畅通即可)
  2. 将程序文件移动到debug/ 目录并改名为todebug
  3. 在此项目根目录运行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

image-20210826061414997

运行并连接到你所调试程序的STDIO

1
nc docker.ip 23458

现在,你的二进制文件应该已经在运行了

接下来打开IDA并启动IDA调试器

image-20210826061500161

输入信息并点击OK

image-20210826061510709

现在你可以看到你的docker中的进程,选择./todebug调试并点击”OK”

image-20210826061558556

现在你应该已经进入调试视图,没有任何错误和异常

文件 - docker-compose.yml

image

你可以在这里选择你想要的基本映像,这里有一些常用的选项

1
2
3
4
i386/ubuntu:16.04
i386/ubuntu:18.04
amd64/ubuntu:16.04
amd64/ubuntu:18.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

此脚本文件用于初始化调试环境,你可以对其修改以进行任何调整

作者

4xpl0r3r

发布于

2021-08-26

更新于

2022-02-11

许可协议

评论