PE結構讀取之DOS Header

2021-06-25 20:43:35 字數 1112 閱讀 9416

有人說pe結構很重要,也有人說不重要。不同的人站在不同的角度有不同的看法。而我對pe結構僅僅是想有所了解,於是就有了下面一系列文章的出現。

pe檔案中dos header的具體結構如下所示:(下面的定義在winnt.h檔案中,這個檔案需要安裝程式設計環境,至少我將vc 6.0解除安裝後就找不到這個檔案了。推薦使用乙個編譯環境直接go to definition來檢視,畢竟這樣方便快捷)

typedef struct _image_dos_header  image_dos_header,*pimage_dos_header;
其中word定義如下:

typedef unsigned short word;
也就是說乙個word就是乙個unsigned short啦,其占用兩個位元組,具體占用多少位元組需要根據編譯環境來決定。

#include #include #include void readdosheader();

int main()

readdosheader(fp);

fclose(fp);

return 0;

}void readdosheader(file *fp)

開發工具使用的是codeblock 13.12,使用的編譯器為gcc,除錯自然是gdb了。主要是安裝vc體積太大。(以上**可以直接儲存為乙個檔案然後執行)

執行結果如下圖所示:

具體讀取檔案的16進製制如下圖所示:(使用工具為010 editor試用版,也可以使用ultraedit等16進製制工具,如果有興趣的話也可以自己編寫乙個)

其中用紅色框框中的分別為dos header中的word e_magic;和long e_lfanew;

其中e_magic為4d 5a,為啥讀取出來是5a 4d這個就涉及到計算機儲存檔案的大端和小端的問題了

e_lfanew為00 00 00 80。

檔案讀取之b模式

1.模式介紹 t 1 讀寫都是以字串 unicode 為單位 2 只能針對文字檔案 3 必須指定字元編碼,即必須指定encoding引數 b binary模式 1 讀寫都是以bytes為單位 2 可以針對所有檔案 3 一定不能指定字元編碼,即一定不能指定encoding引數 總結 1 在操作純文字檔...

PE檔案結構

pe檔案結構 a,dos header timagedosheader 其中 lfanew 指向 c e magic 為 mz b,dos stub 用於不支援pe的作業系統,顯示錯誤提示如 this program requires windows 不定長 c,pe header timagent...

PE 結構解析

取之網路,還於網路,請大家多多指點,多數都是在網上看到的,手抄不易,多謝 pe檔案是什麼?pe protable execute 是windows下可執行的檔案,常見有dll 動態庫 exe 可直接執行的程式 ocx 絡,還於網路,請大家多多指點,多數都是在網上看到的,手抄不易,多謝 pe檔案是什麼...