개요
readelf는 ELF 파일을 구성하는 다양한 요소들을 사람이 읽을 수 있는 형태로 보여줍니다. 개발자나 시스템 관리자가 바이너리 파일의 구조를 이해하고 디버깅하는 데 필수적인 도구입니다.
주요 기능
readelf가 제공하는 핵심 정보 유형입니다.
- ELF 헤더 정보 확인
- 섹션 헤더 정보 확인
- 심볼 테이블 분석
- 동적 링크 정보 표시
- 릴로케이션 정보 확인
- 프로그램 헤더 (세그먼트) 정보 확인
주요 옵션
readelf는 ELF 파일의 특정 부분을 검사하기 위한 다양한 옵션을 제공합니다.
정보 유형 선택
생성된 명령어:
명령어를 조합해 보세요.
설명:
`readelf` 명령어를 실행합니다.
위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.
사용 예시
readelf를 사용하여 ELF 파일의 다양한 정보를 추출하는 방법을 보여줍니다.
ELF 헤더 정보 보기
readelf -h /bin/ls
/bin/ls 실행 파일의 ELF 헤더 정보를 표시합니다.
섹션 헤더 정보 보기
readelf -S /bin/bash
/bin/bash 실행 파일의 모든 섹션 헤더 정보를 표시합니다.
심볼 테이블 정보 보기
readelf -s /lib/x86_64-linux-gnu/libc.so.6
공유 라이브러리인 libc.so.6의 심볼 테이블 정보를 표시합니다. (경로는 시스템마다 다를 수 있습니다.)
모든 정보 보기
readelf -a /usr/bin/vim
/usr/bin/vim 실행 파일에 대한 모든 ELF 관련 정보를 표시합니다.
팁 & 주의사항
readelf 사용 시 유용한 팁과 주의할 점입니다.
적용 가능한 파일
readelf는 실행 파일뿐만 아니라 `.o` (오브젝트 파일), `.so` (공유 라이브러리), `.a` (아카이브) 등 모든 ELF 형식 파일에 적용할 수 있습니다.
- 실행 파일 (예: /bin/ls)
- 공유 라이브러리 (예: /lib/x86_64-linux-gnu/libc.so.6)
- 오브젝트 파일 (예: 컴파일 후 생성되는 .o 파일)
다른 도구와의 비교
ELF 파일 분석을 위한 다른 유틸리티들과의 차이점입니다.
- objdump: 어셈블리 코드를 포함한 더 로우레벨의 정보를 제공하며, 바이너리 파일을 역어셈블링하는 데 유용합니다.
- nm: 주로 심볼(함수, 변수) 정보에 특화되어 있으며, 심볼의 타입과 주소를 간결하게 보여줍니다.
- ldd: 실행 파일이나 공유 라이브러리가 의존하는 동적 라이브러리 목록을 보여줍니다.