有人說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檔案是什麼...