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)
Breakpoint sur une autre fonction (phase_1)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Si vous avez besoin d'autres informations ou de plus de précisions, n'hésitez pas à me demander.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.
Partager