如何在Ubuntu Linux中执行CMU二进制炸弹?

Sea*_*ver 6 linux assembly lsb

我正在尝试将CMU的二元炸弹作为一个独立项目来学习一些x86组装和逆向工程.(这不是与班级相关的自动评分版本.)

我从http://csapp.cs.cmu.edu/public/labs.html下载了bomb.tar .

来自CMU的实验室描述:

"二元炸弹"是作为目标代码文件提供给学生的程序.运行时,它会提示用户键入6个不同的字符串.如果其中任何一个不正确,炸弹"爆炸",打印错误消息并在评分服务器上记录事件.学生必须通过拆卸和反向设计程序来"消除"他们自己独特的炸弹,以确定6个弦应该是什么.该实验室教学生理解汇编语言,并强迫他们学习如何使用调试器.这也很有趣.CMU本科生中的传奇实验室.

这是一个Linux/IA32二进制炸弹,你可以自己试试.通知评分服务器的功能已被禁用,因此请随意爆炸此炸弹而不受惩罚.

将其保存到适当的文件夹后,我在终端中运行了此命令:

tar xvf bomb.tar
Run Code Online (Sandbox Code Playgroud)
  1. 它确实提取了一个名为bomb(没有文件扩展名)的文件,但我认为它也会给我bomb.c,这也有助于参考.

  2. 我不能让"炸弹"跑.这是我尝试过的:

    bomb
    bomb: command not found
    
    ./bomb
    bash: ./bomb: No such file or directory
    
    Run Code Online (Sandbox Code Playgroud)
  3. 虽然我意识到解决它需要在gdb中单步执行它,但我甚至无法在BASH中运行它并将自己弄错了答案!一点点帮助太棒了.

Fab*_*rea 0

file bomb通知:

ELF 32-bit LSB  executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.0.0, not stripped
Run Code Online (Sandbox Code Playgroud)

您应该能够通过键入以下内容在 bash 上运行它:

tar xvf bomb.tar
chmod +x bomb
./bomb
Run Code Online (Sandbox Code Playgroud)

它在我的 64 位 Kubuntu 14.04 上运行。