-
-
关于pe文件节的一个小变形
-
发表于:
2009-5-24 15:40
4632
-
我是个菜鸟,最近学习了一下PE文件文件格式,做了点小变形。不敢
独享,贴出来一起学习。
这个实验比较简单,主要为了验证一件事情。就是 在文件中减小某个节的大小,然后
提升以后各个节在文件中的位置 的这种方法是可行的;
试验过程如下:
首先生成一个非常简单的试验exe文件,源代码是:
#include <iostream.h>
#include <windows.h>
void main()
{
MessageBox(NULL,"zyf","cap",0);
}
//代码简单吧,一会才是重点;
要验证的想法:减小.text节的大小后,能不能让程序正常运行呢?
为了简单操作,我删掉了.text节最后的100h个字节(这个数也就是sectionalignment的值)。然后开始修改这个exe。
下面说明一下一些基本情况:
这个exe的名称是test.exe.他有5个节信息如下:
节名称
Pointertorawdata
.text
0x100
.rdata
0x22000
.data
0x24000
.idata
0x28000
.reloc
0x29000
下面开始试验:
使用uedit打开test.exe。修改其中的IMAGE_OPTIONAL_HEADER中的SizeofImage域。使这个域减小0x1000个字节;
然后修改各个节表头。其中.text节头是不需要改的。而后的四个节都统一像下面一样改:
修改每个IMAGE_SECTION_HEADER中的PointerToRawdata域,使其减小0x1000个字节。
最后一步要做的就是:
定位到文件的0x21000这个位置,然后删去0x1000个字节。
好了,保存一下。运行自己修改过的exe。哦,成功了。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)