直接修改PE檔案頭PE標識欄位的實驗

2021-09-24 15:21:18 字數 1424 閱讀 5979

pe是microsoft為了讓程式在windows上可移植而做的一種檔案格式規定。

windows在執行exe程式的時候,pe檔案載入器會按照約定載入exe程式,所以程式就正常地執行起來了。

比如像exe,dll,sys這種格式的檔案就是pe格式檔案。

根據pe檔案結構知識;

pe頭 image_nt_header 的字段, image_nt_header.signature,偏移

+0000h,雙字,此處為pe檔案標識,值為00004550h,就是字元'p'、'e',加上兩個0。

如果修改其中任何乙個位元組,會導致可執行檔案在32位系統中載入失敗。

下面來手動修改此字段值,看下會有什麼效果。

先準備用記事本來實驗;用winhex開啟notepad.exe,看下pe檔案標識在偏移為000000f0的一行處;

00 00 45 50;倒著看的;winhex面板的第三列標識出字串'pe';

但是試用版的winhex只能修改儲存小於200k的檔案;notepad.exe大於200k;

windows目錄下還有write.exe,拿它來做試驗;

拷貝到g盤實驗;因為windows目錄下有寫保護,不能儲存修改;

看一下在g盤開啟write.exe,可以開啟;

用winhex開啟write.exe;pe 檔案標識在偏移為000000f0的一行處;如下圖;

把45 50 修改為37 42;

如何使用winhex修改檔案見此;

然後儲存;

然後再執行write.exe,無法執行了;

PE檔案詳解之PE檔案頭

1,pe檔案頭 pe header 緊挨著 dos stub 2,pe header 是pe相關結構nt映像頭 image nt header 的簡稱。裡面包含著許多pe裝載器用到的重要字段。3,執行體在支援pe檔案結構的作業系統中執行時,pe裝載器將從 image dos header 結構中的 ...

PE檔案詳解之PE檔案頭

1,pe檔案頭 pe header 緊挨著 dos stub 2,pe header 是pe相關結構nt映像頭 image nt header 的簡稱。裡面包含著許多pe裝載器用到的重要字段。3,執行體在支援pe檔案結構的作業系統中執行時,pe裝載器將從 image dos header 結構中的 ...

Dll注入 修改PE檔案頭

dll注入,除了常見的遠執行緒注入,掛鉤和修改登錄檔以外還可以通過修改pe檔案頭來達到注入目的,廢話少說先上菜。pe檔案經常會呼叫外部dll檔案,而需要呼叫的dll檔案都會在pe檔案說明,通過 nt頭 可選頭 匯入表 可以找到匯入表,而匯入表就是對需要匯入的每個dll的說明,它實際上是乙個20個位元...