直接修改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,无法运行了;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值