首页
社区
课程
招聘
[原创][分享]暴力更改PE文件各节大小,重组PE,让PE文件重新运行
发表于: 2010-1-10 13:01 18751

[原创][分享]暴力更改PE文件各节大小,重组PE,让PE文件重新运行

2010-1-10 13:01
18751

最近在学习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期)

上传的附件:
收藏
免费 7
支持
分享
最新回复 (6)
雪    币: 279
活跃值: (33)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
童鞋,木有附件啊
2010-1-10 13:07
0
雪    币: 75
活跃值: (733)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
好了,现在可以了
2010-1-10 13:24
0
雪    币: 4902
活跃值: (135)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
这个要学习的
2010-1-10 17:53
0
雪    币: 75
活跃值: (733)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
我继续用这思路,在test.exe的.text代码段插入一个简单cmd后门代码,在.data段插入后门代码所需的数据.然后重组PE,test的功能没有任何影响而且后门代码也能正常运行.没有新增节,也没有更改节的属性,就好像后门代码就是test.exe自有功能一样,NOD32不报了:)
上个图~~
上传的附件:
2010-1-10 21:53
0
雪    币: 101
活跃值: (88)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
6
这个从理论上来讲,如果带一个指令识别引擎的话,也是可行的。
也就是说,如果你的程序没有指令识别引擎的话,实际意义就比较小了。
2010-1-10 22:47
0
雪    币: 75
活跃值: (733)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
7
额,楼上说的指令识别引擎是不是用来对代码段里所用到的变量地址进行重定位的?如果是的话,我的小程序是能进行粗略的处理.小弟功力不够,要达到楼上所说的引擎级别..还得练练再说
2010-1-10 23:00
0
游客
登录 | 注册 方可回帖
返回
//