摘要:一、关于重定位1、直接寻址指令需要重定位。如:mov eax, dword ptr [4000c0h]注意:call 401000h 是相对寻址,不需要重定位。请问 call [401000h]需要重定位吗?2、重定位需要的信息:重定位地址、实际装载地址、建议装载地址。二、重定位数据结构IMAGE_ BASE_RELOCATION struct VirtualAddress dd ;重定位内存页首地址RVASizeOfBlock dd ;重定位块大小,包含本结构在内的大小IMAGE_BASE_RELOCATION ends1、该结构后面紧跟的是word型的重定位项。2、重定位地址的 RVA =
阅读全文
摘要:一、资源的树形结构二、有关资源的数据结构(1)IMAGE_RESOURCE_DIRECTORY struct+00h Characteristics dd+04h TimeDateStamp dd+08h MajorVersion dw+0ah MinorVersion dw+0ch NumberOfNameEntrydw ;使用名字命名的资源条目数量+0eh NumberOfIdEntry dw ;使用id命名的资源条目数量,IMAGE_RESOURCE_DIRECOTRY ends资源条目数量=NumberOfNameEntry + NumberOfIdEntry,即IMAGE_RESOU
阅读全文
摘要:一、导出表位置在数据目录的的第0项,即IMAGE_NT_HEADERS.OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT]项二、导出表结构IMAGE_EXPORT_DESCRIPTRO struc+00h Characteristics dd+04h TimeDateStampdd+08h MajorVersion dw+0ah MinorVersion dw+0ch nName dd ;RVA指向编译时的模块名+10h nBase dd ;起始序号+14h NumberOfFunctions dd ;导出函数总数+18h Nu
阅读全文
摘要:pe文件导入表1)提取导入表:在数据目录的中,索引为1的位置;导入表起始RVA地址:IMAGE_NT_HEADER.OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress导入表大小:IMAGE_NT_HEADER.OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualSize2)导入表结构:一个导入库对应下面的一个结构,pe文件引用了几个导入库文件就有几个这样的结构,最后以全0值结构结束。当pe在磁盘中时,结构中的两个域Ori
阅读全文
摘要:一)win32下PE文件格式的文件有:*.exe;*.dll;*.scr;*.fon;*.drv;*.sys二)pe文件基本结构附加数据其它节区.reloc节区.rsrc节区.data节区.text节区节表数据目录选项头文件头PE标志DOS stubDOS头格式说明:1)dos头:0000 0000:4D 5A0000 0010:0000 0020:0000 0030:3Cxxxx xxIMAGE_DOS_HEADER struc+00h e_magic: word ;dos标志MZ,常量表示IMAGE_DOS_SIGNATURE ...+3ch e_lfanew: dword;指向pe文件头
阅读全文