在PE文件中添加另一个文件
本文以两个EXE文件为例,为了简便,在最后一个节区添加数据。也就是资源节(rsrc)。
也就是一个文件完全中完全包含另一个文件。
本文是资源方式添加,如果想以代码的方式添加并运行的话,只要稍微修改下就OK了。
第一步:把要复制的数据添加到文件
1、用WinHex打开要添加数据的文件,(为了下面记叙方便,取名为1.exe),移动到文件尾,
2、再用WinHex打开要添加的文件,(同上,取名为2.exe)把整个文件选上,
右键——编辑——复制选块——16进制数据,这个文件的作用已完成,可以关闭了。
3、来到1.exe的文件末尾,选中最后一个字节,右键——编辑——剪切版数据——写入,
弹出对话框:“你想把剪切版的数据粘贴到文件的结尾吗(在偏移量9FFF之后)?”
点“是”,9FFF为原文件大小
再次弹出对话框:
点“确定”A000为新加数据起始位置
第一步完成
第二步:修改相关的数据,使PE文件仍然有效
需要的修改数据:
可选头
SizeOfCode 所有含有代码区块的总大小
0x00004000 修改为 0x00005000
SizeOfImage 映像装入内在后的总尺寸
0x00011172 修改为 0x00012172
资源节表,如果添加在其它节,修改的就是其它的节表数据
VirtualSize 节表实际大小
0x00000459 修改为 0x00002000 这里就懒得计算了,直接改成最大就OK
SizeofRawData 在文件中对齐后的尺寸
0x00001000 修改为 0x00002000
保存文件,程序可正常运行,添加文件成功!