久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

PE文件結(jié)構(gòu)體總匯

 herowuking 2015-06-11
①:IMAGE_DOS_HEADER STRUCT 【M_DOS頭部 共64字節(jié)】

{
+00 h WORD e_magic // DOS可執(zhí)行文件標(biāo)記 MZ(4Dh 5Ah)
+02 h WORD e_cblp ; Bytes on last page of file
+04 h WORD e_cp ; Pages in file
+06 h WORD e_crlc ; Relocations
+08 h WORD e_cparhdr ; Size of header in paragraphs
+0A h WORD e_minalloc ; Minimun extra paragraphs needs
+0C h WORD e_maxalloc ; Maximun extra paragraphs needs
+0E h WORD e_ss // DOS代碼的初始化堆棧SS
+10 h WORD e_sp // DOS代碼的初始化堆棧指針SP
+12 h WORD e_csum ; Checksum
+14 h WORD e_ip // DOS代碼的初始化指令入口[指針I(yè)P]
+16 h WORD e_cs // DOS代碼的初始堆棧入口
+18 h WORD e_lfarlc ; File Address of relocation table
+1A h WORD e_ovno ; Overlay number
+1C h WORD e_res[4] ; Reserved words
+24 h WORD e_oemid ; OEM identifier(for e_oeminfo)
+26 h WORD e_oeminfo ; OEM information;e_oemid specific
+29 h WORD e_res2[10] ; Reserved words
+3C h LONG e_lfanew // 指向PE文件頭
} IMAGE_DOS_HEADER ENDS

②:DOS Stub【大約100個字節(jié)左右<此處字節(jié)數(shù)可選>】

③:typedef struct _IMAGE_NT_HEADERS 【PE文件頭 共248字節(jié)】
{
+00 h DWORD Signature // PE標(biāo)識頭PE(50h 45h),共4字節(jié)
+04 h IMAGE_FILE_HEADER FileHeader // 結(jié)構(gòu)體一,,PE頭共20個字節(jié)
+18 h IMAGE_OPTIONAL_HEADER32 OptionalHeader // 結(jié)構(gòu)體二,,PE文件共224字節(jié)
} IMAGE_NT_HEADERS ENDS, *PIMAGE_NT_HEADERS32;

結(jié)構(gòu)體一:typedef struct _IMAGE_FILE_HEADER 【PE頭共20個字節(jié)】
{
+04 h WORD Machine; // 運(yùn)行平臺
+06 h WORD NumberOfSections; // 文件的區(qū)塊數(shù)目
+08 h DWORD TimeDateStamp; // 文件創(chuàng)建日期和時間
+0C h DWORD PointerToSymbolTable; // 指向COFF符號表(主要用于調(diào)試)
+10 h DWORD NumberOfSymbols; // COFF符號表中符號個數(shù)(同上)
+14 h WORD SizeOfOptionalHeader; // IMAGE_OPTIONAL_HEADER3 2 結(jié)構(gòu)大小
+16 h WORD Characteristics; // 文件屬性
} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;

結(jié)構(gòu)體二:typedef struct _IMAGE_OPTIONAL_HEADER【PE文件共224字節(jié),其中數(shù)據(jù)目錄表占128字節(jié)】
{
+18 h WORD Magic; // 標(biāo)志字, ROM 映像(0107h),普通可執(zhí)行文件(010Bh)
+1A h BYTE MajorLinkerVersion; // 鏈接程序的主版本號
+1B h BYTE MinorLinkerVersion; // 鏈接程序的次版本號
+1C h DWORD SizeOfCode; // 所有含代碼的節(jié)的總大小
+20 h DWORD SizeOfInitializedData; // 所有含已初始化數(shù)據(jù)的節(jié)的總大小
+24 h DWORD SizeOfUninitializedData; // 所有含未初始化數(shù)據(jù)的節(jié)的大小
+28 h DWORD AddressOfEntryPoint; // 程序執(zhí)行入口RVA
+2C h DWORD BaseOfCode; // 代碼的區(qū)塊的起始RVA
+30 h DWORD BaseOfData; // 數(shù)據(jù)的區(qū)塊的起始RVA
+34 h DWORD ImageBase; // 程序的首選裝載地址
+38 h DWORD SectionAlignment; // 內(nèi)存中的區(qū)塊的對齊大小
+3C h DWORD FileAlignment; // 文件中的區(qū)塊的對齊大小
+40 h WORD MajorOperatingSystemVersion; // 要求操作系統(tǒng)最低版本號的主版本號
+42 h WORD MinorOperatingSystemVersion; // 要求操作系統(tǒng)最低版本號的副版本號
+44 h WORD MajorImageVersion; // 可運(yùn)行于操作系統(tǒng)的主版本號
+46 h WORD MinorImageVersion; // 可運(yùn)行于操作系統(tǒng)的次版本號
+48 h WORD MajorSubsystemVersion; // 要求最低子系統(tǒng)版本的主版本號
+4A h WORD MinorSubsystemVersion; // 要求最低子系統(tǒng)版本的次版本號
+4C h DWORD Win32VersionValue; // 莫須有字段,,不被病毒利用的話一般為0
+50 h DWORD SizeOfImage; // 映像裝入內(nèi)存后的總尺寸
+54 h DWORD SizeOfHeaders; // 所有頭 + 區(qū)塊表的尺寸大小
+58 h DWORD CheckSum; // 映像的校檢和
+5C h WORD Subsystem; // 可執(zhí)行文件期望的子系統(tǒng)
+5E h WORD DllCharacteristics; // DllMain()函數(shù)何時被調(diào)用,,默認(rèn)為 0
+60 h DWORD SizeOfStackReserve; // 初始化時的棧大小
+64 h DWORD SizeOfStackCommit; // 初始化時實(shí)際提交的棧大小
+68 h DWORD SizeOfHeapReserve; // 初始化時保留的堆大小
+6C h DWORD SizeOfHeapCommit; // 初始化時實(shí)際提交的堆大小
+70 h DWORD LoaderFlags; // 與調(diào)試有關(guān),默認(rèn)為 0
+74 h DWORD NumberOfRvaAndSizes; // 下邊數(shù)據(jù)目錄的項數(shù),,Windows NT 發(fā)布是16
+78 h IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; // 數(shù)據(jù)目錄表【共占
128字節(jié)16個子參數(shù)】,;結(jié)構(gòu)體一
} IMAGE_OPTIONAL_HEADER32, *PIMAGE_OPTIONAL_HEADER32;

結(jié)構(gòu)體一:typedef struct _IMAGE_DATA_DIRECTORY 【共占8字節(jié)】
{
+00 h DWORD VirtualAddress; //數(shù)據(jù)的RVA
+04 h DWORD Size; //數(shù)據(jù)的大小
}IMAGE_DATA_DIRECTORY,*PIMAGE_DATA_DIRECTORY;


④:typedef struct _IMAGE_SECTION_HEADER 【區(qū)塊表,共占40字節(jié)】

{
+00 h BYTE Name[IMAGE_SIZEOF_SHORT_NAME]; // 節(jié)表名稱,如“.text”【共占8字節(jié)】
+08 h union
{ DWORD PhysicalAddress; // 物理地址
DWORD VirtualSize; // 真實(shí)長度,,這兩個值是一個聯(lián)合結(jié)構(gòu),,可以使
用其中的任何一個,一般是取后一個
} Misc;
+0C h DWORD VirtualAddress; // 節(jié)區(qū)的虛擬內(nèi)存中RVA地址
+10 h DWORD SizeOfRawData; // 節(jié)表在文件中對齊后的尺寸
+14 h DWORD PointerToRawData; // 節(jié)表在文件中的偏移量
+18 h DWORD PointerToRelocations; // 在OBJ文件中使用,,重定位的偏移
+1C h DWORD PointerToLinenumbers; // 行號表的偏移(供調(diào)試使用地)
+20 h WORD NumberOfRelocations; // 在OBJ文件中使用,,重定位項數(shù)目
+22 h WORD NumberOfLinenumbers; // 行號表中行號的數(shù)目
+24 h DWORD Characteristics; // 節(jié)屬性如可讀,可寫,,可執(zhí)行等
} IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER;


⑤:IMAGE_IMPORT_DESCRIPTOR STRUCT 【輸入表結(jié)構(gòu),,共20字節(jié)】

{
+00 h union
{DWORD Characteristics ; 不知到是神馬浮云,不重要
DWORD OriginalFirstThunk //指向IMAGE_THUNK_DATA數(shù)組的指針
}ends
+04 h DWORD TimeDateStamp //可執(zhí)行文件是否與DLL綁定,,不綁定為0
+08 h DWORD ForwarderChain //第一個轉(zhuǎn)向的API索引
+0C h DWORD Name //指向DLL的虛擬RVA
+10 h DWORD FirstThunk //實(shí)際指向IMAGE_THUNK_DATA數(shù)組的指針,,結(jié)構(gòu)體一
};IMAGE_IMPORT_DESCRIPTOR ENDS

結(jié)構(gòu)體一:IMAGE_THUNK_DATA STRUC 【共占4字節(jié)】

{
union u1
{DWORD ForwarderString ; 指向一個轉(zhuǎn)向者字符串的RVA
DWORD Function ; 被輸入的函數(shù)的內(nèi)存地址
DWORD Ordinal ; 被輸入的API的序數(shù)值
DWORD AddressOfData ; 高位為0則指向IMAGE_IMPORT_BY_NAME 結(jié)構(gòu)體二
}ends
}IMAGE_THUNK_DATA ENDS

結(jié)構(gòu)體二:IMAGE_IMPORT_BY_NAME STRUCT 【共占大小動態(tài)分配】
{
+00 h WORD Hint //可選指向函數(shù)字段,神馬的浮云
+04 h BYTE Name ,? //此處內(nèi)存大小動態(tài)分配,,定義了導(dǎo)入函數(shù)的以0結(jié)尾的字符串
};IMAGE_IMPORT_BY_NAME ENDS

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多