首页
社区
课程
招聘
感染系统DLL
发表于: 2005-10-31 21:53 6737

感染系统DLL

2005-10-31 21:53
6737
我写了个程序来感染系统的wsock32.dll:算法流程如下
1打开目标DLL,拷贝目标DLL文件,得到一个副本,为副本DLL文件创建文件映射
2在文件映射中找到send函数的RVA并保存,并保存指向这个RVA指针的值
2_1在节表最后添加新的节表,并修改相关内容
3计算MySend函数的RVA
4用MySend函数的RVA替换send函数的RVA
5增加新节,新节的内容是MySend函数的代码
....................................................
我把节表和节都添加好了,用显示PE信息的工具来看,一切正常,但还是不行,装载wsock32.DLL的程序提示说:“没有找到d.dll,因此这个应用程序未能启动....”
wsock32.dll导入表里只有kernel32.dll和WS2_32.dll。我估计原因是我添加节表的时候覆盖了原来的数据。
wsock32.dll的节表一共有4个,那么紧接着这些节表后面应该是一个空节表啊,可wsock32.dll不是,用HEX工具看,是一些dll的名字,但就是没d.dll,那么d.dll是什么?
去了好几个论坛问了,都不知道

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这个问题很难吗?还是这个子论坛的人少?能把这帖子转到人多的地方吗
2005-11-3 12:51
0
雪    币: 1852
活跃值: (504)
能力值: (RANK:1010 )
在线值:
发帖
回帖
粉丝
3
不用激将!!!
你给的信息也有限,比如文件映射就有内存映射文件和磁盘影射文件之分。
还有改变Send的RVA,到底是在磁盘中改,还是在内存中动态的修改。
如果是在磁盘中改,那么你用一个超出范围的地址来替换原来的,你觉得会不会有问题呢??
d.dll的问题可能是由于你的大意造成的,或许是UNICODE字串而你却没注意到,问题的可能性是多样的。
还有一点,如果要实现函数转接,最好是先加载该DLL,然后在程序执行之前,修改IAT,至于具体如何实现,你就自己想吧。。。
忠告:与其花这么多天等,倒不如多查点资料。
2005-11-4 18:57
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
激将倒没,只不过发出去一个回贴的都没
是磁盘中改,估计是UNICODE的问题

“最好是先加载该DLL,然后在程序执行之前,修改IAT”HOOK吗,对ITA这名词不熟悉,修改导入表的方法没有用,我试过

我已经放弃感染系统DLL的方法了,找到一个替代的办法,写SPI或者更底层...
thx anyway
2005-11-5 19:59
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
估计系统DLL不是这么好改的,我GOOGLE了下,前辈的方法基本都是自己重新写个DLL来代替系统DLL
2005-11-5 20:03
0
游客
登录 | 注册 方可回帖
返回
//