> 패키지 및 시스템 관리 > objdump

objdump: 오브젝트 파일 정보 표시

실행 파일, 오브젝트 파일, 라이브러리 등 바이너리 파일의 다양한 정보를 분석하고 표시하는 명령어입니다. 어셈블리 코드, 헤더, 섹션, 심볼 테이블 등을 확인할 수 있어 디버깅 및 리버스 엔지니어링에 유용하게 사용됩니다.

개요

objdump는 ELF, COFF, a.out 등 다양한 형식의 오브젝트 파일에서 정보를 추출하여 사람이 읽을 수 있는 형태로 보여줍니다. 주로 디버깅, 리버스 엔지니어링, 바이너리 분석에 활용되며, GNU Binutils 패키지의 일부입니다.

주요 기능

  • 어셈블리 코드 역어셈블 (Disassembly)
  • 파일 헤더 정보 표시
  • 섹션 헤더 정보 표시
  • 심볼 테이블 확인
  • 동적 재배치 정보 확인

주요 옵션

objdump는 바이너리 파일의 특정 부분을 분석하거나 출력 형식을 제어하는 다양한 옵션을 제공합니다.

정보 표시

출력 형식

생성된 명령어:

명령어를 조합해 보세요.

설명:

`objdump` 명령어를 실행합니다.

위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.

사용 예시

objdump를 사용하여 바이너리 파일의 다양한 정보를 추출하는 방법을 보여줍니다.

실행 파일 역어셈블

objdump -d /bin/ls

/bin/ls 실행 파일의 어셈블리 코드를 표시합니다.

모든 헤더 정보 보기

objdump -x /bin/ls

/bin/ls 파일의 모든 헤더 정보를 상세하게 표시합니다.

심볼 테이블 보기

objdump -t /bin/ls

/bin/ls 파일에 정의된 심볼(함수, 변수 등) 목록을 표시합니다.

인텔 문법으로 역어셈블

objdump -M intel -d /bin/ls

/bin/ls 파일의 어셈블리 코드를 인텔 문법으로 표시합니다.

라이브러리 파일 섹션 헤더 보기

objdump -h /lib/x86_64-linux-gnu/libc.so.6

공유 라이브러리 파일의 섹션 헤더 정보를 표시합니다.

팁 & 주의사항

objdump는 강력한 바이너리 분석 도구이지만, 그 결과는 어셈블리 언어 및 바이너리 파일 구조에 대한 기본적인 이해를 요구합니다.

활용 팁

  • 특정 함수 분석 시 `objdump -d <file> | grep -A 20 <function_name>`과 같이 `grep`과 조합하여 사용하면 유용합니다.
  • 공유 라이브러리 파일(.so)이나 정적 라이브러리 파일(.a) 내부의 오브젝트 파일 분석에도 활용할 수 있습니다.
  • 보안 취약점 분석, 악성코드 분석, 시스템 프로그래밍 디버깅 등 다양한 분야에서 핵심적인 도구로 사용됩니다.

주의사항

objdump는 바이너리 파일을 수정하지 않고 정보를 읽기만 하는 안전한 도구입니다. 하지만 출력되는 정보의 양이 많을 수 있으므로, 필요한 옵션을 정확히 사용하여 원하는 정보만 추출하는 것이 중요합니다.


동일 카테고리 명령어