objdump

위키백과, 우리 모두의 백과사전.
둘러보기로 가기 검색하러 가기

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

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

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]

외부 링크[편집]