objdump 사용법
objdump의 파일명은 architecture 별로 상이할 수 있으며, 주로 이용되는 사용법은 다음과 같다.
objdump [-d] [-S] [-l] [obj 파일명] > [output 파일명]
-d 옵션은 disassemble, 즉 어셈블리어 코드 목록을 생성한다.
-S 옵션은 소스코드를 최대한 보여주는 옵션이다. optimization 된 object file의 경우 소스코드가 모두 보이지 않을 수 있다.
-l 옵션은 소스코드에서의 line을 보여주는 옵션이다.
'> [output 파일명]' 을 하게 되면 파일명으로 export 하게된다. 이를 생략하면 화면에 즉시 출력된다.
objdump는 GNU 바이너리 유틸리티의 일부로서, 라이브러리, 컴파일된 오브젝트 모듈, 공유 오브젝트 파일, 독립 실행파일등의 바이너리 파일들의 정보를 보여주는 프로그램이다. objdump는 ELF 파일을 어셈블리어로 보여주는 역어셈블러로 사용될 수 있다.
이외에도 아래와 같이 잡다한 기능이 많다.
objdump [-a|--archive-headers]
[-b bfdname|--target=bfdname]
[-C|--demangle[=style] ]
[-d|--disassemble]
[-D|--disassemble-all]
[-z|--disassemble-zeroes]
[-EB|-EL|--endian={big | little }]
[-f|--file-headers]
[--file-start-context]
[-g|--debugging]
[-h|--section-headers|--headers]
[-i|--info]
[-j section|--section=section]
[-l|--line-numbers]
[-S|--source]
[-m machine|--architecture=machine]
[-M options|--disassembler-options=options]
[-p|--private-headers]
[-r|--reloc]
[-R|--dynamic-reloc]
[-s|--full-contents]
[-G|--stabs]
[-t|--syms]
[-T|--dynamic-syms]
[-x|--all-headers]
[-w|--wide]
[--start-address=address]
[--stop-address=address]
[--prefix-addresses]
[--[no-]show-raw-insn]
[--adjust-vma=offset]
[-V|--version]
[-H|--help]
objfile...