我正在尝试将 CMU 的二进制炸弹作为一个独立项目来学习一些 x86 汇编和逆向工程。(它不是与课程相关的自动评分版本。)
我从http://csapp.cs.cmu.edu/public/labs.html下载了 bomb.tar 。
来自 CMU 的实验室描述:
“二进制炸弹”是作为目标代码文件提供给学生的程序。运行时,它会提示用户输入 6 个不同的字符串。如果其中任何一个不正确,炸弹就会“爆炸”,打印错误消息并将事件记录在评分服务器上。学生必须通过对程序进行反汇编和逆向工程来确定 6 个字符串应该是什么,从而“化解”他们自己独特的炸弹。实验室教学生理解汇编语言,并迫使他们学习如何使用调试器。这也很有趣。CMU 本科生中的传奇实验室。
这是一个Linux/IA32 二进制炸弹,您可以自己尝试一下。通知评分服务器的功能已被禁用,因此请随意引爆这个炸弹而不受惩罚。
将其保存到适当的文件夹后,我在终端中运行了以下命令:
tar xvf bomb.tar
它确实提取了一个名为
bomb
(无文件扩展名)的文件,但我认为它也会给我bomb.c
,这也有助于参考。我无法让“炸弹”运行。这是我尝试过的:
bomb bomb: command not found ./bomb bash: ./bomb: No such file or directory
虽然我意识到解决它需要在 gdb 中逐步完成它,但我什至无法在 BASH 中运行它并用错误的答案让自己大吃一惊!一点帮助会很棒。