首页
社区
课程
招聘
写病毒时遇到一点问题,迷惑中……
发表于: 2004-8-11 17:38 5341

写病毒时遇到一点问题,迷惑中……

2004-8-11 17:38
5341
WINXP操作系统
1、我在PE文件后面加了一个新节。但是某些文件却不适用,这些PE文件更改后根本无法加载。发现这些文件有个共同的特点:校验和不等于0。而对校验和为0的似乎都很正常。(我没有更改校验和)
2、在EXPLORER.EXE中创建一个远程线程,线程中似乎不能使用SEH异常。在SEH的保护下,遇到非法内存访问时,直接就CRASH掉了,调试时发现没有我的进入异常处理过程。

忘各位大虾指点

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

收藏
免费 1
支持
分享
最新回复 (13)
雪    币: 236
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
2004-8-11 17:54
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
那边坏掉的啊,我是准备到那边问的
2004-8-11 17:56
0
雪    币: 236
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
没坏嘛!我现在都可以上啊
2004-8-11 18:09
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
把上网助手和网络实名卸载了就可以上了:)
2004-8-11 20:14
0
雪    币: 279
活跃值: (375)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
6
最初由 wcgbg 发布
WINXP操作系统
1、我在PE文件后面加了一个新节。但是某些文件却不适用,这些PE文件更改后根本无法加载。发现这些文件有个共同的特点:校验和不等于0。而对校验和为0的似乎都很正常。(我没有更改校验和)
2、在EXPLORER.EXE中创建一个远程线程,线程中似乎不能使用SEH异常。在SEH的保护下,遇到非法内存访问时,直接就CRASH掉了,调试时发现没有我的进入异常处理过程。

忘各位大虾指点


加新节后重新计算checksum(试一下我的工具winpe)
对于seh,试一下用汇编写seh,c语言在优化时可能会去掉
2004-8-11 21:18
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
最初由 lordor 发布


加新节后重新计算checksum(试一下我的工具winpe)
对于seh,试一下用汇编写seh,c语言在优化时可能会去掉


加新节后用LordPE重新算了checksum,还是不行
seh是用汇编写的,整个程序都是用的MASM。
附件里有程序。附件:Luo.rar
2004-8-14 12:07
0
雪    币: 1593
活跃值: (811)
能力值: ( LV13,RANK:370 )
在线值:
发帖
回帖
粉丝
8
在把新节写入原程序之前,要把 IMAGE_NT_HEADERS 里面的 OptionalHeader 的 DataDirectory 的 Bound Import(位于 IMAGE_DATA_DIRECTORY 的偏移 88 处) 的  VirtualAddress 清零,否则在 Win2k 以上的操作系统中可能会加载失败。

push 0
pop [img_nt_hdrs.OptionalHeader.DataDirectory(88).VirtualAddress]


具体请参考我的 LCCrypto ,在 LCCrypto.asm 的第 493~495 行。
2004-8-14 12:47
0
雪    币: 279
活跃值: (375)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
9
系统的一些程序,如记事本,Bound Import项(及size)是不为0的,且刚好位于新加节的地方,所以必须清0,或把Bound Import移到别的地方再修正Bound Import的指针
2004-8-14 12:54
0
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
10
最初由 luocong 发布
在把新节写入原程序之前,要把 IMAGE_NT_HEADERS 里面的 OptionalHeader 的 DataDirectory 的 Bound Import(位于 IMAGE_DATA_DIRECTORY 的偏移 88 处) 的 VirtualAddress 清零,否则在 Win2k 以上的操作系统中可能会加载失败。


push 0
pop [img_nt_hdrs.OptionalHeader.DataDirectory(88).VirtualAddress]


具体请参考我的 LCCrypto ,在 LCCrypto.asm 的第 493~495 行。


请问你是怎么知道的?这些98和2k的不同点哪里有更多的资料么?
谢谢.
2004-8-14 13:39
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
11
1.checksum!=0的一般是驱动
2.bound imports要去掉
3.实在不行可以在线程中再建立线程.调查一下是不是有页面保护
2004-8-14 14:16
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
1、感谢老罗的指点,把img_nt_hdrs.OptionalHeader.DataDirectory(88).VirtualAddress清0就好了:)
2、远程线程不能用SEH的问题也解决了。原因是这样的
用masm&link,编译时加 /Zi 链接时加 /debug,想加入调试信息,结果其中的一个 offset myproc 比实际的少了0x15 bytes,当然就错掉了。
但是后来没有加调试信息,就一切正常了:)
2004-8-15 17:49
0
雪    币: 413
活跃值: (637)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
13
请不要释放该病毒,因为制作病毒是违法的。学习到是可以。我曾写过Dos下的。但没敢放出去了。
2004-8-15 18:52
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
这么基本的病毒不值得放的,放出去会遭别人笑话的。
现在网上没有释放的病毒源码多得很,个个比我写得好。
写点病毒只是为了学点东西,根本没想过要释放。
2004-8-15 21:09
0
游客
登录 | 注册 方可回帖
返回
//