objdump
Aspeto
objdump é um programa para exibir várias informações sobre arquivos objeto em sistemas do tipo Unix. Por exemplo, ele pode ser usado como um desmontador para exibir um executável no formato de montagem. Faz parte do GNU Binutils para controle refinado sobre executáveis e outros dados binários.
Por exemplo,
$ objdump -D -M intel arquivo.bin | grep main.: -A20
Isso realiza a desmontagem no arquivo «arquivo.bin», com o código de montagem mostrado na sintaxe da Intel. Em seguida, o redirecionamos para o grep, que pesquisa a função principal e exibe 20 linhas de seu código.
Exemplo de saída:
4004ed: 55 push rbp
4004ee: 48 89 e5 mov rbp,rsp
4004f1: c7 45 ec 00 00 00 00 mov DWORD PTR [rbp-0x14],0x0
4004f8: c7 45 f0 01 00 00 00 mov DWORD PTR [rbp-0x10],0x1
4004ff: c7 45 f4 02 00 00 00 mov DWORD PTR [rbp-0xc],0x2
400506: c7 45 f8 03 00 00 00 mov DWORD PTR [rbp-0x8],0x3
40050d: c7 45 fc 04 00 00 00 mov DWORD PTR [rbp-0x4],0x4
400514: c7 45 ec 00 00 00 00 mov DWORD PTR [rbp-0x14],0x0
40051b: eb 13 jmp 400530 <main+0x43>
40051d: 8b 05 15 0b 20 00 mov eax,DWORD PTR [rip+0x200b15] # 601038 <globalA>
400523: 83 e8 01 sub eax,0x1
400526: 89 05 0c 0b 20 00 mov DWORD PTR [rip+0x200b0c],eax # 601038 <globalA>
40052c: 83 45 ec 01 add DWORD PTR [rbp-0x14],0x1
400530: 8b 05 02 0b 20 00 mov eax,DWORD PTR [rip+0x200b02] # 601038 <globalA>
400536: 39 45 ec cmp DWORD PTR [rbp-0x14],eax
400539: 7c e2 jl 40051d <main+0x30>
40053b: 5d pop rbp
40053c: c3 ret
40053d: 0f 1f 00 nop DWORD PTR [rax]
O objdump usa a biblioteca BFD para ler o conteúdo dos arquivos objeto.
Utilitários semelhantes são o Borland TDUMP, o Microsoft DUMPBIN e o readelf.
Ver também
[editar | editar código-fonte]Ligações externas
[editar | editar código-fonte]- « (em inglês). . Seção User commands. »Manual do Linux. templatestyles stripmarker character in
|título=
at position 37 (ajuda) - « (em inglês). . Seção User commands. »Manual do Linux. templatestyles stripmarker character in
|título=
at position 37 (ajuda) - Binutils::Objdump - Interface Perl para o objdump