日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PE文件结构 - 数据目录表学习

發(fā)布時(shí)間:2025/4/14 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PE文件结构 - 数据目录表学习 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

數(shù)據(jù)目錄表,是一個(gè)結(jié)構(gòu)體數(shù)組。數(shù)組里的每個(gè)元素對(duì)應(yīng)一個(gè)數(shù)據(jù)表。通常有16個(gè)。
數(shù)組每個(gè)元素都是一個(gè)結(jié)構(gòu)體,結(jié)構(gòu)體如下
typedef struct _IMAGE_DATA_DIRECTORY
{
????DWORD VirtualAddress;????// 數(shù)據(jù)表的起始虛擬地址
????DWORD Size;????// 數(shù)據(jù)表大小
}IMAGE_DATA_DIRECTORY,*IMAGE_DATA_DIRECTORY

16個(gè)數(shù)據(jù)表依次如下:
? ? ? ? 導(dǎo)出表、導(dǎo)入表、資源表、異常處理表、安全表、重定位表、調(diào)試表、版權(quán)、指針目錄、TLS、載入配置、綁定輸入目錄、導(dǎo)入地址表、延遲載入、COM信息。


數(shù)據(jù)目錄表包含在可選頭中,可選頭包含在NT頭中;參閱;
https://blog.csdn.net/bcbobo21cn/article/details/115032841

可選頭定義如下;

typedef struct _IMAGE_OPTIONAL_HEADER {
??? WORD??? Magic;
??? BYTE??? MajorLinkerVersion;
??? BYTE??? MinorLinkerVersion;
??? DWORD?? SizeOfCode;
??? DWORD?? SizeOfInitializedData;
??? DWORD?? SizeOfUninitializedData;
??? DWORD?? AddressOfEntryPoint;
??? DWORD?? BaseOfCode;
??? DWORD?? BaseOfData;
??? DWORD?? ImageBase;
??? DWORD?? SectionAlignment;
??? DWORD?? FileAlignment;
??? WORD??? MajorOperatingSystemVersion;
??? WORD??? MinorOperatingSystemVersion;
??? WORD??? MajorImageVersion;
??? WORD??? MinorImageVersion;
??? WORD??? MajorSubsystemVersion;
??? WORD??? MinorSubsystemVersion;
??? DWORD?? Win32VersionValue;
??? DWORD?? SizeOfImage;
??? DWORD?? SizeOfHeaders;
??? DWORD?? CheckSum;
??? WORD??? Subsystem;
??? WORD??? DllCharacteristics;
??? DWORD?? SizeOfStackReserve;
??? DWORD?? SizeOfStackCommit;
??? DWORD?? SizeOfHeapReserve;
??? DWORD?? SizeOfHeapCommit;
??? DWORD?? LoaderFlags;
??? DWORD?? NumberOfRvaAndSizes;
??? IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];
}

?? 看一下 _IMAGE_OPTIONAL_HEADER的最后一個(gè)字段就是數(shù)據(jù)目錄表;

下面來打開一個(gè)exe文件,找一下數(shù)據(jù)目錄表;

先下一個(gè)工具叫010 Editor;我還不了解;應(yīng)該是一個(gè)增強(qiáng)型的16進(jìn)制編輯器;

打開notepad.exe文件;提示安裝一個(gè)模板用來分析Win可執(zhí)行文件;安裝;

上方是打開的16進(jìn)制數(shù)據(jù);下方是PE文件結(jié)構(gòu);在下方選中字段,上方移到對(duì)應(yīng)內(nèi)容;

先找到NT頭;展開NT頭,找到可選頭;OPTIONAL,可選的;

展開可選頭;看最后一項(xiàng)就是數(shù)據(jù)目錄表;

展開數(shù)據(jù)目錄表;里面就是一個(gè)個(gè)具體的數(shù)據(jù)表;

展開幾個(gè)數(shù)據(jù)表結(jié)構(gòu)體看一下;單個(gè)的數(shù)據(jù)表結(jié)構(gòu)體都是兩個(gè)成員,一個(gè)地址,一個(gè)尺寸;??? 先學(xué)這么多;

?

總結(jié)

以上是生活随笔為你收集整理的PE文件结构 - 数据目录表学习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。