본문 바로가기
Reverse Engineering

리눅스) objdump -d 명령어

by manchesterandthecity 2020. 10. 18.

objdump -d 오브젝트 파일을 디스어셈블하여 출력해준다.

 

objdump

 

objdump GNU 바이너리 유틸리티의 일부로서, 라이브러리, 컴파일된 오브젝트 모듈, 공유 오브젝트 파일, 독립 실행파일등의 바이너리 파일들의 정보를 보여주는 프로그램이다. objdump ELF 파일을 어셈블리어로 보여주는 역어셈블러로 사용될 수 있다.

 

예를 들자면 오브젝트 파일을 역어셈블 하기 위해서 아래와 같이 쓴다:

objdump -Dslx file

 

objdump는 오브젝트 파일들의 내용을 읽을때 BFD 라이브러리를 사용한다. readelf(GNU Binutils에 역시 포함되어 있다.)는 objdump처럼 ELF 파일들을 읽을 수 있지만 BFD 라이브러리를 사용하지 않는다.

GNU 프로젝트는 높은 기능을 갖춘 objdump 프로그램을 GNU Binutils 패키지에 포함시키고 있다.

 

출력 예제

$ objdump -D -M intel file.bin | grep main.: -A20

 

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]

 

 

objdump -d

Description

objdump displays information about one or more object files. The options control what particular information to display. This information is mostly useful to programmers who are working on the compilation tools, as opposed to programmers who just want their program to compile and work.

objfile... are the object files to be examined. When you specify archives, objdump shows information on each of the member object files.

Options

The long and short forms of options, shown here as alternatives, are equivalent. At least one option from the list -a,-d,-D,-e,-f,-g,-G,-h,-H,-p,-r,-R,-s,-S,-t,-T,-V,-x must be given.

 

-d--disassembleDisplay the assembler mnemonics for the machine instructions from objfile. This option only disassembles those sections which are expected to contain instructions.

 

 

 

 

출처 :

ko.wikipedia.org/wiki/Objdump

linux.die.net/man/1/objdump

 

 

 

댓글