我正在从OpenSecurityTraining学习这些类(class)。

我已经到达实验室部分,要在CMU炸弹上训练自己。它们提供了x86_64编译的CMU炸弹,您可以在此处进行培训:CMU Bomb x86-64最初是来自CMU Labs forComputer Systems: A Programmer's Perspective (CS:APP) 1st edition的32位炸弹。

我有一个虚拟的64位基本OS发行版,在其中使用GDB毫无问题地反汇编了CMU Bomb。现在,我有一个64位的Ubuntu 14.04 LTS(未虚拟化),当我尝试重现为什么在Elementary OS上执行的原因时,出现了著名的错误。

我运行以下命令:

gdb ./bomb-x64
(gdb) b main
Breakpoint 1 at 0x400dbd: file bomb.c, line 37. -- why bomb.c ?
(gdb) r
...
bomb.c: no such file or directory

编辑:我可以在CMU Bomb的其他功能上创建断点,并且可以正常工作。
范例:
(gdb) b phase_1
Breakpoint 3 at 0x400f00
(gdb) r

Breakpoint 1, 0x0000000000400f00 in phase_1 ()
(gdb) disas
Dump of assembler code for function phase_1:
=> 0x0000000000400f00 <+0>: sub    $0x8,%rsp
   0x0000000000400f04 <+4>: mov    $0x4023b0,%esi
   0x0000000000400f09 <+9>: callq  0x401308 <strings_not_equal>
   0x0000000000400f0e <+14>:    test   %eax,%eax
   0x0000000000400f10 <+16>:    je     0x400f17 <phase_1+23>
   0x0000000000400f12 <+18>:    callq  0x40140a <explode_bomb>
   0x0000000000400f17 <+23>:    add    $0x8,%rsp
   0x0000000000400f1b <+27>:    retq
End of assembler dump.

我听说过ia32-libs,但是自从我使用64位Ubuntu并运行64位编译的CMU Bomb以来,此操作无济于事,对吗?

最佳答案

使用dir命令设置源路径

dir /usr/src/debug

在上述路径中。您的代码应显示。

08-17 19:17