2014-02-17 3 views
0

ELF 형식 (x64 Linux 플랫폼)과 프로그램 헤더에서 첫 번째 세그먼트 (PT_PHDR)에이 가상 주소 0x40004000 (정렬은 8 바이트)이 있습니다. 나는 이해하지 못하고 설명 된 곳을 찾지 못한다. 인터넷상의 몇몇 다른 예에서는 0x08048034이며 이것이 OS 또는 프로세서 아키텍처 때문인지는 알 수 없습니다. 이 고정 값이 나열되어 있고 간략하게 설명되는 참고서 나 설명서 같은 곳이 있습니까? 64 리눅스 플랫폼에서 감사프로그램 헤더 세그먼트 가상 주소가 0x40004000 인 이유는 무엇입니까?

답변

0

플랫폼 존재하지 않습니다. Linux x86_64 플랫폼을 의미합니다.

(PT_PHDR는) 아주 이상한 주소이 가상 주소 0x40004000

있습니다. 0x400040이 아닌 것은 확실합니까?

나는 이해하지 못하고 설명 된 곳을 찾지 못했습니다. 인터넷에있는 다른 몇 가지 예에서는 0x08048034이며 이것이 OS 또는 프로세서 아키텍처 때문인지 여부는 알 수 없습니다.

Linux x86_64를 들어, 실행 파일이 링크 된 기본 주소는 0x400000이며, (모든 ELF 바이너리의 시작입니다) Elf64_Ehdr의 크기는 기본 당신에게 0x400040PT_PHDR 주소를 제공 64입니다.

Linux i*86를 들어, 실행 파일의 기본 주소는 0x08048000이며, Elf32_Ehdr의 크기는 당신에게 0x08048034기본PT_PHDR 주소를 제공 52입니다.

이러한 주소 중 하나는 예 : 링커 -Ttext=0xNNNN 플래그를 사용합니다.

관련 문제