objdump

Origem: Wikipédia, a enciclopédia livre.
Saltar para a navegação Saltar para a pesquisa

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]

Ícone de esboço Este artigo sobre Unix é um esboço. Você pode ajudar a Wikipédia expandindo-o.