首页
社区
课程
招聘
[推荐]VB编写病毒的大体方法
发表于: 2006-1-3 00:36 4436

[推荐]VB编写病毒的大体方法

2006-1-3 00:36
4436
VB编写病毒的大体方法

电脑界的每个人都痛恨计算机病毒,她给我们带来了很多麻烦和损失,可你知道编写病毒的方法和过程吗

?在此我仅以VB编写为例,揭开她的面纱。

用VB编写病毒需要考虑到如下几点:

感染主机
~~~~~~~~~~
首先染毒文件运行后先要判断主机是否以感染病毒,也就是判断病毒主体文件是否存在,如果不存在则将

病毒主体拷贝到指定位置(如:
将病毒文件拷贝到cwindowssystem),可用filecopy语句实现;如果病毒已感染主机则结束判断。

例如,判断CwindowssystemKiller.exe是否存在,如果有则退出判断,如果没有则证明本机未感染病毒,

立即拷入病毒文件。
病毒源文件名为game.exe

声明部分:
''定义 FileExists% 函数
public success%
Function FileExists%(fname$)
On Local Error Resume Next
Dim ff%
ff% = FreeFile
Open fname$ For Input As ff%
If Err Then
FileExists% = False
Else
FileExists% = True
End If
Close ff%
End Function
代码部分:
''判断文件是否存在
success% = FileExists%(CwindowssystemKiller.exe)
If success% = False Then ''病毒不存在则拷贝病毒到计算机
FileCopy game.exe, CwindowssystemKiller.exe
... ''修改注册表,将其加入RUN中。(省略若干代码)[不过我认为应该可以插入其他的项,因为RUN这个

项太“普及”啦!阿菜都能想到……]
End If

开机启动病毒
~~~~~~~~~~~~~~
在病毒感染主机的同时,将自身加入注册表的开机运行中,这与向主机拷入病毒是同时进行的,主机感染

后不再修改注册表。可通过编程
和调用API函数对WIN注册表进行操作来实现,这样在每次启动计算机时病毒自动启动。(具体编写方法请

查阅其它资料)

任务管理器
~~~~~~~~~~~~
在任务管理器列表中禁止病毒本身被列出,可以通过编程来实现。
用代码 App.TaskVisible = false 就可以实现;再有就是通过调用Win API函数来实现,这里就不作介绍

了。

病毒发作条件
~~~~~~~~~~~~~~
可用Day(Date)来判断今天是几号,再与确定好的日期作比较,相同则表现出病毒主体的破坏性,否则不

发作。也可用Time、Date或其它方
法作为病毒发作条件的判断。
例:
if day(date)=16 then ''16是发作日期,取值为1-31的整数
... ... ''kill  当日期相符时运行的破坏性代码(格式化、删除指定的文件类型、发送数据包杜塞网路

等,省略若干代码)
end if

病毒的破坏性
~~~~~~~~~~~~~~
编写的此部分代码决定了病毒威力的强弱。轻的可以使系统资源迅速减少直至死机(需要你懂得一点蠕虫

的原理),也就是实现开机即死的
效果;也可以加入硬盘炸弹代码、系统后台删文件等。重的可以使计算机彻底瘫痪(不作介绍,你可以参

阅其它病毒的有关资料)。

病毒的繁殖
~~~~~~~~~~~~
原理很简单,就是将其自身与其它可执行文件合并,也就是两个文件并成一个文件。也可通过E-Mail传播,方法是病毒读取被感染主机的 邮件列表(OUTLOOK的列表很好搞出来的。),将带有病毒附件的E-Mail发给列表中的每一个人(这需要你懂得VB网络编程,而且一旦加上网络部分,代码就避免不了冗长……)。

读完本文章相信您已对病毒的编写思路有了初步的了解,如果你是个VB爱好者,你已经可以编写一个很简单的病毒了,但你要是精通VB的话,请不要有编写后传播她的想法,因为传播她造成很大的影响将改变你的命运(当然了,是两方面的了,您可能会因为这个成名,被政府秘密录用;也可能……)。  

风筝的后记:我是新手,不知道这样的帖子该不该在看雪论坛这样神圣的地方发表。如果我发错了,请admin们把帖子删掉。我会感谢您的。

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 209
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2

任务管理器
~~~~~~~~~~~~
在任务管理器列表中禁止病毒本身被列出,可以通过编程来实现。
用代码 App.TaskVisible = false 就可以实现;

这最多是任务栏吧
2006-1-3 01:16
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
呵呵 谢谢分享 学的是编程的思想 只要不坏恶意就可以了
受教了 :)
2006-1-5 01:47
0
游客
登录 | 注册 方可回帖
返回
//