本地断网运行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>
退出。
修改完成后,两个函数应该分别如图:
另:
-
如果你遇到了
Premature EOF on stdin
这种错误,可以在运行的时候用./bomb a.txt
(疑似高版本gcc的问题) -
建议上面的操作在断网的情况下执行。
-
可能你在拆掉所有炸弹后会出现
free(): invalid pointer
Aborted (core dumped)
这应该没什么问题,炸弹已经成功拆除(实测Ubuntu20没有这个问题,而Ubuntu18会出现这个问题,我猜还是gcc版本的锅)