本地断网运行bomblab(2021)

安装hexedit:

终端运行命令

sudo apt install hexedit

修改initialize_bomb:

通过反汇编我们可以得到下面的代码

使用hexedit打开bomb文件:hexedit bomb

然后通过hexedit修改代码,首先按/进入搜索模式,然后输入足够长度对应的二进制代码,回车即可找到对应的位置。

将这里的二进制代码修改成c7 00 11 fa 21 20 c3,然后按<F2>保存

修改send_msg:

通过反汇编我们可以得到下面的代码

然后通过hexedit修改代码,首先按/进入搜索模式,然后输入足够长度对应的二进制代码,回车即可找到对应的位置。

将这里的二进制代码修改成c7 06 01 00 00 00 c3,然后按<F2>保存

输入<Ctrl-C>退出。

修改完成后,两个函数应该分别如图:


另:

  1. 如果你遇到了Premature EOF on stdin这种错误,可以在运行的时候用./bomb a.txt(疑似高版本gcc的问题)

  2. 建议上面的操作在断网的情况下执行。

  3. 可能你在拆掉所有炸弹后会出现

free(): invalid pointer
Aborted (core dumped)

这应该没什么问题,炸弹已经成功拆除(实测Ubuntu20没有这个问题,而Ubuntu18会出现这个问题,我猜还是gcc版本的锅)

原文地址:https://www.cnblogs.com/shanxieng/p/15345240.html