Erreur GDB : no such file or directory
Bonjour,
Je rencontre un problème avec GDB lorsque que je veux créer un point d'arrêt sur la fonction main d'un programme pour pouvoir désassembler celui-ci.
Background
Ubuntu x64 LTS 14.04
GDB configuration : x86_64-linux-gnu
Je suis les cours d'OpenSecurityTraining et plus précisément l'introduction à l'architecture X86. J'en suis donc à la partie "laboratoire" du cours C où il faut "désamorcer" une bombe (la CMU Bomb compilée en 64 bits avec les symboles - la version 32 bits). Une sorte d'introduction au reverse engineering. J'ai commencé les cours sur une machine virtuelle sous Elementary OS où je n'ai eu aucun problème. J'utilise dorénavant un Ubuntu que j'ai installé depuis peu. C'est là que je rencontre mon problème. Le breakpoint sur main fait référence à une source bomb.c que je ne suis pas censé avoir pour l'exercice. J'ai donc, sans surprise, une erreur lors que je lance le bousin. Le fait étonnant c'est qu'il me fait référence à la source exclusivement quand je veux faire un breakpoint sur le main. Je peux sans aucun soucis ajouter un breakpoint sur une autre fonction comme phase_1, lancer le programme et désassembler la fonction quand j'arrive dessus.
Mon erreur (breakpoint sur main)
Code:
1 2 3 4 5 6
| gdb ./bomb-x64
(gdb) b main
Breakpoint 1 at 0x400dbd: file bomb.c, line 37.
(gdb) r
...
bomb.c: no such file or directory |
Breakpoint sur une autre fonction (phase_1)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| (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. |
Si vous avez besoin d'autres informations ou de plus de précisions, n'hésitez pas à me demander.