검색결과 리스트
글
ELF 는 실행 가능한 바이너리 또는 오브젝트 파일 등의 형식을 규정한 것입니다. ELF 파일은 ELF 헤더가 맨 앞에 위치하고, 프로그램 헤더 테이블과 섹션 헤더 테이블이 그 뒤에 위치한다. (사실 더 복잡한 구조지만 큰 구조가 그렇다는 이야기)
ELF 헤더는 파일이 ELF 포맷일 경우 파일 맨앞에 반드시 존재하며, readelf -h 명령어로 elf의 헤더를 볼 수
있습니다. 명령어 참~ 쉽죠? read elf 입니다. 기억하기 쉬워요. 파일 분석시 굉장히 많이 사용하는 명령어 입니다.
Entry point Address - 시작하는 가상주소를 나타낸다.
프로그램 헤더는 readelf -l '파일명' 으로 섹션 헤더는 readelf -S '파일명'으로 확인 가능하다.
shstrtab
위 그림에서 빨간색 네모로 쳐진 shstrtab 의 type 항목을 보면 String table 이라는 것을 알 수 있다. base address 는 0x00ff0c 크기는 0x0000c7 인 것을 알 수 있다. od --skip-bytes 0x00ff0c --read-bytes 0xc7 -t x1z -A x zip 이라고 입력하면 shstrtab 의 내용을 볼 수 있다.
심볼 테이블은 readelf -s 파일명으로 볼 수 있다.
배운 명령어
- readelf -h (ELF 헤더 확인)
- readelf -l (Program 헤더 확인)
- readelf -S (Section 헤더 확인)
- readelf -s (심볼 테이블 확인)
- od --skip-bytes 0x00ff0c --read-bytes 0xc7 -t x1z -A x zip
'Linux > C/C++' 카테고리의 다른 글
C에서 제공하는 메모리 정렬 및 검색 함수들 (0) | 2012.07.16 |
---|---|
Explore GCC Linking Process Using LDD, Readelf, and Objdump (0) | 2012.07.16 |
variable length array (0) | 2012.07.16 |
nslookup -> getaddrinfo 사용 사례 (0) | 2012.07.16 |
LFS (Large File Support) (0) | 2012.07.11 |
RECENT COMMENT