Как разобрать в Eclipse .exe файл, созданный программой на C? - PullRequest
1 голос
/ 02 января 2012

Мне нужно разобрать исполняемый файл из C. Мой лектор сказал использовать GDB (мне нужно использовать платформу Linux, поэтому я использую Eclipse Indigo под виртуальной машиной VMWARE) но я не люблю GDB.

На данный момент у меня есть только файл .exe. Могу ли я использовать Eclipse, чтобы разобрать этот файл?

У меня есть 6 фаз, которые мне нужно расшифровать, программа известна как "Defusing a Binary Bomb" , Итак, для этого мне нужно разобрать этот файл, но я не могу найти способ сделать это в Eclipse ...

Не могли бы вы объяснить, как мне выполнить разборку в Eclipse?

1 Ответ

3 голосов
/ 02 января 2012

Почему бы не использовать objdump?

 $ objdump -d print_jmp_buf

print_jmp_buf:     file format elf64-x86-64


Disassembly of section .init:

00000000004003f8 <_init>:
  4003f8:   48 83 ec 08             sub    $0x8,%rsp
  4003fc:   e8 7b 00 00 00          callq  40047c <call_gmon_start>

<... snip ... >

0000000000400534 <main>:
  400534:   55                      push   %rbp
  400535:   53                      push   %rbx
  400536:   48 81 ec d8 00 00 00    sub    $0xd8,%rsp
  40053d:   48 89 e7                mov    %rsp,%rdi
  400540:   e8 fb fe ff ff          callq  400440 <_setjmp@plt>
  400545:   ba 08 00 00 00          mov    $0x8,%edx
  40054a:   be 40 00 00 00          mov    $0x40,%esi
  40054f:   bf 7c 06 40 00          mov    $0x40067c,%edi
  400554:   b8 00 00 00 00          mov    $0x0,%eax
  400559:   e8 c2 fe ff ff          callq  400420 <printf@plt>
  40055e:   48 89 e3                mov    %rsp,%rbx
  400561:   48 8d 6c 24 40          lea    0x40(%rsp),%rbp
  400566:   48 8b 33                mov    (%rbx),%rsi
  400569:   bf 83 06 40 00          mov    $0x400683,%edi
  40056e:   b8 00 00 00 00          mov    $0x0,%eax
  400573:   e8 a8 fe ff ff          callq  400420 <printf@plt>
  400578:   48 83 c3 08             add    $0x8,%rbx
  40057c:   48 39 eb                cmp    %rbp,%rbx
  40057f:   75 e5                   jne    400566 <main+0x32>
  400581:   b8 00 00 00 00          mov    $0x0,%eax
  400586:   48 81 c4 d8 00 00 00    add    $0xd8,%rsp
  40058d:   5b                      pop    %rbx
  40058e:   5d                      pop    %rbp
  40058f:   c3                      retq   

<...snip...>
...