首页
社区
课程
招聘
[求助]如何用PE-DIY给PE文件添加一个新节啊?[已解决]
发表于: 2008-6-4 18:53 6884

[求助]如何用PE-DIY给PE文件添加一个新节啊?[已解决]

2008-6-4 18:53
6884
如何用PE-DIY给PE文件添加一个新节啊?

偶需要给SYS添加一个新节. 内容为一个DLL.

比如,偶要把DLL  ( 70.0 KB (71,739 字节) ) 添加到sudami.sys的一个新节里去。



是不是要按文件对齐 来分配大小. 即 71,739 / 1024
余数为0 的话就不用改.
不为0的话就      
((filesize / 文件对齐粒度) + 1)*文件对齐粒度

也就是:

( 71739 / 512 + 1 ) * 512


添加新节后,是不是用winhex打开 要加的DLL。把里面的二进制数据复制到新节中,再计算下驱动的校验和就行了呀。
------------------------------------------------------

偶对DIY PE实在不是太懂,请教一下

-----------------------------------------------------------------------------
08/06/09补充:
按照上面的步骤来,一切顺利。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 1852
活跃值: (504)
能力值: (RANK:1010 )
在线值:
发帖
回帖
粉丝
2
一般情况下是这样做的,不知道对sys有没有什么特殊情况需要处理。
首先利用DLL重定位表调整DLL,然后附加到sys后面;
在sys区块表中添加记录,再修正区块数量、映像大小等基本信息,还有校验之类的。

这个DLL不能使用WIN32下的一些库

我没对驱动作过处理,仅供参考。
2008-6-4 19:17
0
雪    币: 1098
活跃值: (193)
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
3
我想可以用一个叫Zero Add 1.0 (可以增加PE文件空间)的工具来增加一个节,增加节后用CASM打开会发现这个节的内容全是00的,然后用DLL文件来覆盖它。再用PEDITOR来修正校验和。这个方法我对EXE文件试过,能行得通的。对SYS文件我没试过,但我想原理是一样的,也应行的。
2008-6-4 19:33
0
雪    币: 1098
活跃值: (193)
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
4
发现这个方法不行,因为驱动程序留下的空间太少了。下图中的驱动文件只有24BYTE的空间,而一个IMSGE_SECTION_HEADER结构要40BYTE的空间。如下图:

而EXE文件可这样做是因为有足够的空间。所以我想要实现这个目的,要费一定的脑筋了。
上传的附件:
2008-6-4 19:54
0
雪    币: 1098
活跃值: (193)
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
5
而EXE文件可这样做是因为有足够的空间。如下图:
上传的附件:
2008-6-4 19:55
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
6
哦。谢谢了
2008-6-5 07:11
0
雪    币: 1602
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
好象没解决啊,
还有一个问题,添加成功的话,SYS被加载后........???
2008-6-9 09:40
0
游客
登录 | 注册 方可回帖
返回
//