从PE到ELF。关于结构

时间:2014-08-21 12:44:15

标签: elf

我看到了this header with structures

我要你解释一些违法行为。

Linux:ELF32_HDR , ELF64_HDR

什么类型的ELF文件ELF32_HDR->e_type

例如,Windows有IMAGE_NT_SIGNATUREIMAGE_DOS_SIGNATURE与其他PE不同。

来自ELF32_HDR->e_ident的前四个字节包含签名。那个ELF应该是什么ELF32_HDR->e_type

Windows:IMAGE_OPTIONAL_HEADER->AddressOfEntryPoint

Linux:'ELF32_HDR->e_entry'?

Windows:'IMAGE_OPTIONAL_HEADER->ImageBase'

Linux:'ELF32_HDR->e_ehsize'

Windows:IMAGE_SECTION_HEADER->Name; VirtualAddress; SizeOfRawData

Linux:ELF32_SHDR->sh_name; sh_addr; sh_size

Windows IMAGE_SECTION_HEADER来自PIMAGE_NT_HEADERS

Linux ELF32_SHDR来自ELF32_HDR?可能是section_headers的一些论点? e_shstrndxe_phoff

我认为这是ELF32_HDR->e_phoff

Windows:IMAGE_DIRECTORY_ENTRY_IMPORT可以告诉我们有关dll模块的信息。

Linux:什么可以告诉我们有关守护进程的信息?

什么是ELF32_SYM , ELF32_DYN m ELF32_REL , ELF32_RELA

1 个答案:

答案 0 :(得分:2)

你一定要打开http://www.skyfree.org/linux/references/ELF_Format.pdf

请改进您的问题,您尝试从一种文件格式迁移到另一种文件格式并不明显。

那里很清楚。例如,e_type解释了:

Name      Value  Meaning

ET_NONE   0      No file type
ET_REL    1      Relocatable file
ET_EXEC   2      Executable file
ET_DYN    3      Shared object file
ET_CORE   4      Core file
ET_LOPROC 0xff00 Processor-specific
ET_HIPROC 0xffff Processor-specific

至于e_entry,我相信你是对的。 IMAGE_SECTION_HEADER->Name; VirtualAddress; SizeOfRawData

也是如此