MIPS-I 固件 Qemu 仿真

MIPS-I Firmware Qemu Emulate

我正在尝试使用 qemu 进行固件模拟。但是有一些错误。

先介绍我的busybox固件

busybox: ELF 32-bit LSB executable, MIPS, MIPS-I version 1 (SYSV), dynamically linked, interpreter /lib/ld-uClibc.so.0, BuildID[sha1]=35ad4cc498db7d5439552d8c3ed0d36a47cbc661, stripped

所以我认为这是 mips 32 位固件,我通过 qemu-system-mipsel

进行仿真

像这样

qemu-system-mipsel -M malta -kernel vmlinux-3.2.0-4-4kc-malta -hda debian_wheezy_mipsel_standard.qcow2 -append "root=/dev/sda1" -nographic -redir tcp:2222::22

我在 qemu 仿真系统上命令这个

chroot ./ ./bin/sh

但是qemu对我说Illegal Instruction...

我该如何解决这个问题!

您没有说明您的二进制文件是如何构建的,即您使用哪个工具链编译它以及使用了哪些选项。 “文件”输出不足以确定 CPU 它的构建目的。

马耳他主板默认使用 24Kf CPU,因此如果此二进制文件是为更新的 CPU 构建的,而不是具有更多功能的二进制文件,它将在尝试执行指令时失败24Kf 上没有。

由于您使用的是标准的 Debian 来宾映像,您可以将 'gdb' 安装到来宾 OS 中,然后 运行 您的二进制文件在 gdb 下,它会告诉您它在什么指令上崩溃了。