ELF header

    [ELF] Segment와 Program Header

    ELF 란 용어를 많이 들어보셨을텐데요, ELF는 Executable and Linking Format의 약어입니다. UNIX / LINUX 기반에서 사용되는 실행 및 링킹 파일 포맷입니다. 지난 글에 이어 이번 글에서는 ELF 파일 포맷에서 Program Header에 대해 알아보겠습니다. [이전 글]2018/08/27 - [Linux/Debugging & Testing] - [ELF] Executable and Linking Format - ELF Header Program HeaderProgram Header Table은 ELF내의 Segment들에 대한 정보와 그 Segment들을 메모리에 어떻게 로드해야 하는지에 대한 정보가 포함되어 있습니다. Segment란 앞 선 글에서도 설명하였지만 다시 ..

    [ELF] ELF Header

    ELF 란 용어를 많이 들어보셨을텐데요, ELF는 Executable and Linking Format의 약어입니다. UNIX / LINUX 기반에서 사용되는 실행 및 링킹 파일 포맷입니다. 이번 글에서는 ELF 파일 포맷에 대해 알아보겠습니다. 개념 및 사전 지식 정의ELF는 하나의 ELF Header와 파일데이터로 구성되어 있습니다. 아래 그림을 보시면 파일의 가장 위에 ELF Header 정보가 들어있고, 그 아래 program header table이 있습니다. 그 이후 Segment 정보와 Section 관련 정보들이 나오네요. ELF header Program header table Segment 1 Segment 2 ... Section header table optional ELF head..

    Elf Header, Program Header, Section Header 얻어오기

    #include #include #include #include #include #include #include #include #include #include int main(int argc, char *argv[]){int ret;int fd;int i;uint8_t *mem;struct stat st; Elf32_Ehdr *ehdr = NULL;Elf32_Phdr *phdr = NULL;Elf32_Shdr *shdr = NULL; if (argc < 2) {printf("Usage: %s \n", argv[0]);exit(0);} errno = 0;fd = open(argv[1], O_RDONLY);if (errno < 0 || fd == -1) {perror("open");exit(-1);} er..

});