• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

利用QEMU+GDB在ubuntu系统中配置MIPS调试运行环境

互联网 diligentman 2周前 (11-21) 4次浏览

在ubuntu系统中配置MIPS调试运行环境

注:系统环境为ubuntu 18.04.

安装QEMU和GDB

QEMU是用于各种体系结构的仿真器。通常,它用于模拟整个PC(即运行虚拟机)。对于调试单个程序,这不是必需的。在Linux上,可以使用QEMU用户空间仿真。

安装qemu

$ sudo apt-get install qemu qemu-user qemu-user-static

此外,默认情况下为Ubuntu和类似操作系统安装的GDB对其他体系结构一无所知。可以利用gdb-multiarch包

$ sudo apt-get install gdb-multiarch

binfmt可以使用该包查看文件的类型,并自动调用正确的解释器。在我们的例子中,它将看到您正在尝试运行一个低端的MIPS(mipsel)二进制文件并调用qemu-mipsel。

$ sudo apt-get install 'binfmt*'

安装libraries

包含mipsel运行所选二进制文件所需的所有库的软件包:

$ sudo apt-get install libc6-mipsel-cross      # For MIPS-EL

构建程序,则需要交叉编译器。

$ sudo apt-get install gcc-mipsel-linux-gnu

最后,我们需要binfmt确定mipsel二进制文件在哪里。

$ sudo mkdir /etc/qemu-binfmt
$ sudo ln -s /usr/mipsel-linux-gnu /etc/qemu-binfmt/mipsel # MIPSEL

现在可以在系统上运行二进制文件
效果:
利用QEMU+GDB在ubuntu系统中配置MIPS调试运行环境

使用GDB调试

需要启动qemu-mips以便公开GDB存根,然后从GDB连接

1.首先打开一个终端启动qemu-mips
(12345是一个连接端口,可以使用任意)

qemu-mipsel -g 12345 ./bomb

利用QEMU+GDB在ubuntu系统中配置MIPS调试运行环境
2.打开另一个终端利用gdb-multiarch进行调试

gdb-multiarch ./bomb

利用QEMU+GDB在ubuntu系统中配置MIPS调试运行环境
并依次输入

(gdb) set arch mips
(gdb) set endian little
(gdb) target remote localhost:12345

这样就可以继续利用gdb调试
一些关于phase_1调试过程的demo:
利用QEMU+GDB在ubuntu系统中配置MIPS调试运行环境
设置断点之后执行r命令后输入continue,在另一个终端运行,此终端用来调试。
利用QEMU+GDB在ubuntu系统中配置MIPS调试运行环境
继续调试:
利用QEMU+GDB在ubuntu系统中配置MIPS调试运行环境


喜欢 (0)