mips程序调试环境折腾
0x00 : 起因
比赛遇到了,帮学弟折腾调试环境,中间踩坑无数,但是最后还是解决了,就记录下。
0x01 : 最初尝试
最初尝试在Linux虚拟机里,qemu + gdbserver的搞事情,但是,依赖问题太闹心了,各种交叉编译的蛋疼事情。
所以就放弃了。
0x02 : docker专治环境搭建
后来想了想,我为啥不用docker神器,肯定有人和我一样不想弄交叉编译环境,所以肯定搞了这样的镜像~
Google搜索一大堆之后:
这两个还不错,我选择了第一个来使用。
0x03 : 使用过程
1. 获取所需镜像
1 | docker pull skysider/multiarch-docker |
2. 启动
1 | $ docker run -it \ |
3. 复制文件
1 | $ docker cp ~/Downloads/baby_mips.dms 207187a8a24d:/tmp/ |
4. 调试
这里需要开两个bash,在启动容器的时候已经有一个bahs了,
1 | docker ps -a |
看看当前这个容器的id,然后:
1 | docker exec -it id /bin/bash |
得到两个bash,一个运行程序,一个gdb窗口。
运行程序:
1 | qemu-mipsel -g 2333 ./demo |
gdb调试端口是2333
gdb窗口:
1 | gdb-multiarch ./demo |
然后gdb里
1 | target remote localhost:2333 |
gdb里好像不用set arch了,pwngdb插件自动识别了好像 囧
5. have fun
Enjoy your debug journey~