-
-
[原创][分享]暴力更改PE文件各节大小,重组PE,让PE文件重新运行
-
发表于:
2010-1-10 13:01
18751
-
[原创][分享]暴力更改PE文件各节大小,重组PE,让PE文件重新运行
最近在学习PE文件感染,我了解到的常用的方法有两种:1)新建节2)利用PE文件中空隙,见缝插针
这样做能达到目的,但是新增了节或者让有些节带有不该带的属性,很容易被察觉.于是我想能不能人为更改.text节的大小和.rdata节的大小,然后把代码和数据插入进去.这样既不会新增节,也不会让节带有不该带的属性,只是增加了文件长度.但这样做会让所有节的位置发生变化,程序里所有对变量的引用地址将全部失效,使得插入后的程序根本无法运行.不过这个问题依然是可以解决的,附件的代码貌似能解决这一问题.
注:附件的代码仅仅是个雏形,它更改了.text段的大小,对IAT/IIT/RESOURCE DataDirectory及涉及的相关结构进行了重定位处理,未进行错误处理.它只适用部分PE文件:),但基本思路都是一样的.代码注释比较全,一看就懂,本来也很简单^_^,有不当之处还望各位批评指出
sword.asm为代码文件
sword.exe为重组PE程序
test.exe为测试PE文件
下面是测试效果:
.text代码段大小未更改之前test.exe的节区表
.text代码段大小更改后test.exe的节区表,且更改后test.exe依然能运行如风
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)