PE格式文件修复过程

这几天心血来潮想研究一下PE格式文件,因为我们知道PE文件其实是Windows离不开的一个文件格式,理解了这个格式对以后也有帮助。PE格式文件修复过程。一般来说,正常的PE结构PE头和PE体两部分组成。其中,PE头DOS头、DOS存根、NT头、节区头几部分,余下的节区合称为PE体。PE是Windows可执行文件总称,常见的有DLL,EXE,OCX,SYS等,事实上,一个文件是否是PE文件与其扩展名无关。意思是,即使一个文件没有任何扩展名,也可以是可执行文件。
理论讲PE有很多结构体,结构体里面又包含很多字节,如果全部记忆下来恐怕也需要很长时间,不如直接就研究下实际修复PE格式文件的过程。实际上有用的头部字节就几个。首先是MZ这两个字,然后,注意到在3C偏移处需要存一个dos头的变量e_lfanew,这个值指示了程序入口。
话不多说,直接开始实例练习,打开一个dll文件分析,这个dll文件看样子大致是一个PE文件。这是因为后面有.text,.data等字符。
但是我们发现头部几个字节看着明显不是PE文件的样式,显然是被更改过,我们找到另外一个dll,直接把这些字节复制过去。
在这里插入图片描述
从其他的DLL文件复制前面4行字节可得。
在这里插入图片描述
之后用exeinfo探测,发现没什么用。
在这里插入图片描述
之后,仔细观察发现没有PE这个字样,我们找到入口,将PE代表的字节数插入进去。在这里插入图片描述
并且还需要把DOS头中最后4个字节指向PE字样的地址。最终修复后结果图如下。
在这里插入图片描述
然后就完成了修复过程,再次使用exeinfo发现得到了全部的信息。
在这里插入图片描述
总结,PE文件一般来说为了隐藏,往往会抹去一些头部字样,这种情况下软件一般来说不会自动添加,既然软件不会自动添加就需要人为添加来将这个文件修复,首先多看几个PE文件,总结规律,然后看看所需要修复的文件缺少哪个字样,再将入口的偏移更改,最后检查一下。然后通过软件来验证修复结果,只要exeinfo软件能够打开的PE文件就证明结果是正确的,exeinfo软件的下载地址可以在吾爱里面找到。
不同的PE文件损坏的修复过程是不一样的,以上只是一个例子,要想修复更多的同类型文件还需要对PE整个结构了解更加深入,特别是每个字段的存储空间和存储的数据类型。

winhex是一款十六进制编辑器和文件恢复工具,虽然它主要用于编辑和恢复文件,但也可以用来编写PE文件。PE文件是一种Windows可执行文件格式,通常包括EXE和DLL文件。在winhex中编写PE文件需要对该文件格式有一定的了解。 首先,打开winhex并创建一个新的文件。然后,选择“编辑”菜单中的“插入”选项,以便插入PE文件的头部信息。在新的文件中,需要按照PE文件格式的规范依次填写文件头、可选头和节表等信息,确保文件的格式和结构是符合PE文件的标准。 接着,需要逐个添加节表,每个节表包括名称、虚拟大小、虚拟地址和物理地址等信息。这些信息在winhex中可以以十六进制的形式进行编辑和填写。同,还需要在文件中添加导入表和导出表等PE文件所需的信息以确保文件的正常运行。 在编写PE文件的过程中,需要谨慎操作并确保每个部分的格式和信息都是正确的。一旦文件的结构和内容存在问题,那么文件可能无法被正确识别和执行。因此,在使用winhex编写PE文件,需要对PE文件格式有一定的了解,并且要仔细检查每个部分的内容,以确保文件的正确性和可执行性。 总之,使用winhex可以编写PE文件,但需要对PE文件格式有一定的了解,并且需要仔细操作以确保文件的正确性。同,也可以参考相关的文档和工具来辅助编写PE文件,以提高工作效率和准确性。 (300字)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值