Embedded/Linux Kernel
[Linux Kernel] objdump 바이너리 유틸리티
다크엔지니어
2022. 1. 30. 23:14
반응형
objdump 인 바이너리 유틸리티를 다루어 볼 것이다.
바이너리 유틸리티는 오브젝트 포멧의 파일을 조작 할 수 있다.
보통 라이브러리나 elf 형식의 파일을 어셈블리어 or 섹션 정보 등 출력이 가능하다.
아래는 vmlinux 를 vi 에디터로 열었을 때의 상황이다. objdump 를 통해 아래 파일을 분석 해보자

먼저 objdump 의 옵션을 아래와 같이 볼 수 있다.

-x 옵션을 통해 섹션 정보 확인이 가능하다. start 어드레스 영역과 아키텍처 정보도 확인 가능하다.
objdump -x vmlinux | more

다음은 -d 옵션을 통해 어셈블리어로 확인 가능하다.
objdump -d vmlinux | more

하지만 위 처럼 많은부분을 어셈블리어 만으로 보기는 힘들다.
그럴땐 address 로 특정부분 어셈블리어로 확인이 가능하다.
smsc_crc 부분을 System.map 을 통해 빌드 된 Symbol Address 를 확인 할 수 있다.

System.map 에서 확인 된 smsc_crc address 를 옵션에 넣어 특정 부분 어셈블리어를 볼 수 있다.
objdump --start-address=0xc0bbeeac --stop-address=0xc0bbeee9 -d vmlinux

반응형