为虚拟机配置mips指令集环境来做拆炸弹实验

拆炸弹实验-为VMware-虚拟机配置mips指令集环境

学习计算机系统的时候,我们逃离不了实验的折磨,尤其是拆炸弹实验,做这个实验的时候,我们往往需要在学校的实验平台上做,但是实验学时有限,很多同学可能做不完,所以我们为什么不在自己的虚拟机上配置mips指令集环境?这样的话我们就可以在自己的电脑上使用
linux版本是ubuntu虚拟机:(虚拟机图标如下,如果你需要安装虚拟机,请参考下面链接)
在这里插入图片描述
安装指南
镜像文件就按安装指南中的链接下载,VMware workstation 15就直接下载下面这个
https://pan.baidu.com/s/1DmQoMzj0XWLo-6zulAy_-A
提取码:mzx9

在这里呢,我主要分享一些配环境的步骤。记得把这文件(qemu)存到虚拟机中哦,下面指令会用到这些文件。
https://pan.baidu.com/s/1Wnz8TYcg5-yx5kExLO5Pmg
提取码:23er

(1)首先,一条提条执行如下指令:
sudo cp /etc/apt/sources.list /etc/apt/sources_backup.list;
sudo rm /etc/apt/sources.list
sudo cp sources.list /etc/apt;
sudo apt-get update

当你执行到第四条指令的时候,你会遇到问题,apt-get用不了的错误,这个时候你就要进行换源。点击查看方法,换源完毕后再重新执行sudo apt-get update,但是可能又会遇见错误,常见错误是缺少公钥,报错是英文的以Err开头,具体内容我忘记了,配置的时候也没有截图,大致是缺少公钥,并且会显示缺少的公钥,解决方法很简单你可以点击查看

(2)安装库文件和qemu,将下列指令一条一条进行:
sudo apt-get install libc6
sudo apt-get install qemu-user
sudo apt-get install libc6-mipsel-cross
(3)连接库文件:
sudo mkdir /etc/qemu-binfmt
sudo ln -s /usr/mipsel-linux-gnu /etc/qemu-binfmt/mipsel
sudo cp -r mipsel-gdb /usr/local/
(4)运行如下两条qemu(我记得好像是执行任意一个都可以,你看着来吧):
qemu-mipsel PROGRAM_NAME PROGRAM_ARGU0 PROGRAM_ARGU1 ...
qemu-mipsel -L /usr/mipsel-linux-gnu PROGRAM_NAME PROGRAM_ARGS

注:- PROGRAM_NAME : 程序的路径以及名字,例如bomb。

  • PROGRAM_ARGS : 要传递给程序的参数。
(5)运行gdb:
./mipsel-linux-gdb

如果报错缺少libncurses.so.6,那么就直接执行如下语句,进行安装,但是你要进行了上面所说的换源才可以安装成功。

sudo apt-get install libncurses6

如果最后出现了segment error ,那么可以执行如下指令:

set solib-search-path /usr/mipsel-linux-gnu/lib/
(6)接下来就可以使用了,执行如下:
cd qemu/mipsel-gdb/bin  

上面这个操作表示你要进入这个文件目录里面

qemu-mipsel -g 2333 ./bmob 

这个2333是一个连接端口,你也可以换成其他比如2222,你随意,并且注意的是:这里要运行的bomb文件是没有添加路径的,这是不正确的,你实际应用的时候要添加路径,你如果不知道路径,你可以打开虚拟机文件夹找到你存放的bomb然后把这个bomb拖到终端上,终端就会显示路径,不过记得把显示出来的单引号去掉哦。
执行上述后,然后当前终端会卡住(如下,卡住并且光标闪烁),不要担心,你继续往下看博客。
界面卡住

(7)再打开另一个终端,并且在这个终端中输入
./mipsel-linux-gdb /bomb

注意!!!bomb一定要加路径,比如你放bomb这个拆炸弹实验的文件在这里home/ubuntan/demo/bomb;
然后会显示:
在这里插入图片描述
然后,你在gdb后面一条条执行:

set arch mips
set endian little
target remote localhost:2333 这个端口要和原终端端口一致。

现在这个终端用于gdb,原终端就用来运行bomb以及输入拆炸弹内容了。
比如第一道关卡部分内容,在gdb终端窗口可查看其代码:在这里插入图片描述
在另一个运行的窗口显示如下:
(马赛克部分是本人输入的学号。Let’s begin now!即是第一关的答案)
在这里插入图片描述

good luck~

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值