如何从 MIPS 固件调试二进制文件

How to debug binaries from a MIPS firmware

我正在尝试利用该死的易受攻击的路由器固件中的二进制文件,但我在使用 gdb 进行调试时遇到了问题。 运行 我使用这个命令的程序: sudo chroot . ./qemu-mipsel-static ./pwnable/Intro/stack_bof_01 它有效但是当我尝试 运行 gdb with :

sudo chroot . ./qemu-mipsel-static gdb ./pwnable/Intro/stack_bof_01 

我有 :

(gdb) r

Starting program: /pwnable/Intro/stack_bof_01

qemu: Unsupported syscall: 4026

Cannot exec /bin/bash: No such file or directory.

qemu: Unsupported syscall: 4026 Could not open /proc/12532/status

我试图在 qemu VM 中复制二进制文件,但我没有整个系统,所以它不起作用。

那么,从不同于 x86 的架构上的固件调试程序的最佳方法是什么?

在qemu用户模式下,运行程序使用带选项-g的命令:

sudo chroot . ./qemu-mipsel-static -g 1234 ./pwnable/Intro/stack_bof_01

然后启动 gdb-multiarch(或对应于该体系结构的 gdb),并像这样附加到它:

target remote 127.0.0.1:1234

那你就可以愉快的调试了