直接修改PE文件头PE标识字段的实验
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修改文件見此;
https://blog.csdn.net/bcbobo21cn/article/details/92281534
然后保存;
然后再運行write.exe,無法運行了;
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的直接修改PE文件头PE标识字段的实验的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第一次使用Winhex直接修改文件二进制
- 下一篇: IDA Pro 权威指南阅读摘要1