我正在跟随OpenSecurityTraining的课程。
我已经到达实验室部分,需要在CMU Bomb上进行自我训练。他们提供了一个x86_64编译的CMU Bomb,您可以在此处找到:CMU Bomb x86-64,最初是来自CMU计算机系统实验室:程序员的视角(CS:APP)第1版32位炸弹。
我有一个虚拟化的64位Elementary 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炸弹的其他函数上创建断点,并且它按预期工作。
例如:
(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,所以它并没有起到更多作用,我错了吗?
bomb.c: No such file or directory
提示外,它正常运行。在使用b main
和run
之后,我得到了Starting program: /var/tmp/bomb-x64
、Breakpoint 1,main (argc=1, argv=0x7fffffffe088) at bomb.c:37
、37 bomb.c: No such file or directory.
和(gdb)
等信息。键入c
允许它正常进行欢迎消息。你发现有什么不同吗? - Mark Plotnick