第一个打击木马病毒查杀007一片:反向熊猫的分析(下一个)

        本系列文章的版权“I春天的”整个,转载请注明出处。

        本文配套视频教程,请訪问“i春秋”(www.ichunqiu.com)。

一、前言

这次我们会接着上一篇的内容继续对病毒进行分析。

分析中会遇到一些不一样的情况,毕竟之前的代码我们仅仅要依照流程顺序一步一步往下走,就行弄清楚病毒的行为。可是在接下来的代码中,假设依然如此,在某些分支中的重要代码就运行不到了。所以我们须要採取一些策略。走完每一个分支,彻底分析出病毒的行为。

二、病毒分析

如今程序运行到了loc_408171位置处:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

图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进行分析,运行完后能够发现:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

图6 跟踪sub_403F8C运行完后的变化

由此可见,sub_403F8C的作用是将两个字符串与还有一个字符串连接起来,从而组成一个长路径。所以能够将其重命名为:TwoStringsCat。接下来是:

图7 分析sub_4060D4函数

结合OD动态分析可知。这段程序首先将之前连接好的路径字符串转换为大写字母,然后将该字符串与之前所转换的病毒程序路径的大写字符串作对照操作,这里运行时。二者是不同的。所以接下来的跳转不成立(假设想要理解这里为什么要利用比对的操作,能够结合之前文章中对于病毒的行为分析,病毒会将自身改名为“spoclsv.exe”,并拷贝到“drivers”文件夹中。这里的对照就是要确认病毒究竟有没有被拷贝到该文件夹下。假设没有,即对照结果不为零,那么就运行接下来的病毒复制操作)。dword_408658中保存的是字符串“spoclsv.exe”。然后能够进入sub_4060D4中进行分析。

sub_4060D4这个函数也是比較长。内部有众多的CALL。一个一个CALL进行查看。能够发现它调用了许多的API函数,根据这些API函数的功能能够知道,sub_4060D4的作用在于查找当前内存中的指定进程,若存在,则将其终止。因为较长。这里就不进行截图分析了。

于是能够将sub_4060D4重命名为:SearchAndTerminateProcess。

接下来有:

图8

这段代码已经有了足够的凝视。就不再赘述。

接下来还有:

图9

由最后一句的CopyFile函数能够知道,这里主要是实现文件的拷贝操作,也就是将本病毒文件改名为“spoclsv.exe”后,拷贝到“drivers”文件夹中。接下来有:



watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

图10

这段代码调用了WinExec函数。查看它上面的eax中所保存的字符信息能够发现,当病毒本体将自身拷贝到“drivers”中并改名后。这里就是对改了名字的病毒程序运行运行的操作,然后主体程序就退出了。至此。假设想继续用OD进行动态分析。要么加载“spoclsv.exe”。要么对之前的一处条件跳转进行改动,令程序以为自己就是“spoclsv.exe”。该位置就是图7中的0x004081E8,我们先在该位置下一个断点。然后用OD又一次加载本程序,令其停在断点处。

正常来说,这里的跳转是不成立的,为了使其成立。当然能够将jz改为jnz,可是这改变了病毒程序。最好的办法是改变ZF标志位,将原来的0改为1就能够了。可是,经过了之前的行为分析能够知道,真正实现病毒功能的。能够说就是“spoclsv.exe”这个程序。虽说这个程序和“熊猫烧香.exe”是全然一样的。可是毕竟其内部的运行流程是不同的。

为了得到病毒完整的资料。这里我利用OD加载“spoclsv.exe”进行动态分析。

那么0x004081E8处的跳转得以运行。来到下面代码:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

图11 运行到loc_4082F0

这段代码出现了sub_40416C这个函数。它也是比較抽象,不太easy分析。这须要耐心与仔细,在此我将过程省略。事实上这个函数的功能是删除字符串中的信息。当中eax保存的是欲操作字符串的地址。ecx保存的是欲删除的字符的个数。

那么就将sub_40416C重命名为:DeleteStringBuff。然后程序跳转到loc_4085D3:

图12 运行到loc_4085D3

在CALL函数之上。eax保存的是一个标记数值。这里为0x01。之后的CALL就是查找文件里是否包括有这个标记,假设包括有这个标记,那么就运行跳转。否则不跳转。由此我们能够假设,这个0x01标记应该就是病毒将程序感染后,在原本正常的程序中加入的,用于标识该程序是否被感染的标记。假设真是这种话。若想分析跳转后的程序内容,要么在OD中改动标志位,要么对一个被感染的程序进行分析,这里我不再赘述,有兴趣的读者能够拿一个被感染的程序自行分析。这里能够将sub_4041B4重命名为:SearchSignPos。

因为我如今分析的是病毒程序,他自身没有0x01标志位,因此跳转不成立,继续运行:

图13

这部分的代码主要用于收尾工作。最后的CALL用于删除堆栈中所保存的地址。这些地址指向的是病毒写入的一些信息。这部分代码返回后,那么sub_408024就运行完了。

可能大家已经不记得sub_408024是什么了,这个就是我在本逆向分析系列的上篇的最后。所分析出的病毒三大功能的第一项功能。

分析至此。可见这第一项功能主要用于病毒的初始化工作。余下的两大功能我在此就不进行分析,有兴趣的读者能够独立研究试试看。

三、小结

至此,熊猫烧香病毒的逆向分析系列就结束了,我用了三篇文章的篇幅来一步一步地给大家做了较为详尽的分析。

虽然仅仅分析了病毒的一项大功能,可是我相信大家或多或少地了解到了病毒逆向分析的基本方法。在我看来,这里面并没有多高深的技术,重要的是经验的积累以及个人的耐心的培养。

希望各位读者可以踏踏实实地将这个病毒亲自己主动手分析全然。相信这会令大家的收获巨大。

版权声明:本文博主原创文章,博客,未经同意不得转载。

时间: 2024-11-07 16:09:25

第一个打击木马病毒查杀007一片:反向熊猫的分析(下一个)的相关文章

病毒木马查杀第008篇:熊猫烧香之病毒查杀总结

一.前言 之前用了六篇文章的篇幅,分别从手动查杀.行为分析.专杀工具的编写以及逆向分析等方面,对"熊猫烧香"病毒的查杀方式做了讨论.相信大家已经从中获取了自己想要的知识,希望大家在阅读完这几篇文章后,能够有一种"病毒也不过如此"的感觉,更希望这些文章能够为有志于在未来参与到反病毒工作的朋友,打下坚实的理论基础.以下就是我在这几篇文章的分析中所总结出来的一些知识点,分为静态分析与动态分析两个方面进行讨论,并加入了一些延伸知识,为大家查漏补缺. 二.病毒的静态分析 静态

病毒木马查杀第004篇:熊猫烧香之专杀工具的编写

一.前言 如果是非感染型的病毒,完成行为分析之后,就可以开始编写专杀工具了.当然对于我们这次研究的对象--"熊猫烧香"来说,其实通过之前的行为分析,我们并没有得出它的所有恶意行为,毕竟还没有对其进行逆向分析.所以这里仅针对我们上一篇文章所得出的结果,来进行专杀工具的编写.一般来说,专杀工具既可以用批处理实现,又可以用编程语言编写,但是现实中更多的还是用后者进行制作的,因为其更加严谨.灵活.因此我这里会使用C++来写一个简单的"熊猫烧香"专杀程序. 二.病毒行为回顾与

病毒木马查杀第002篇:熊猫烧香之手动查杀

一.前言 作为本系列研究的开始,我选择"熊猫烧香"这个病毒为研究对象.之所以选择这一款病毒,主要是因为它具有一定的代表性.一方面它当时造成了极大的影响,使得无论是不是计算机从业人员,都对其有所耳闻:另一方面是因为这款病毒并没有多高深的技术,即便是在当时来讲,其所采用的技术手段也是很一般的,利用我们目前掌握的知识,足够将其剖析.因此,我相信从这个病毒入手,会让从前没有接触过病毒研究的读者打消对病毒的恐惧心理,在整个学习的过程中开个好头. 本篇文章先研究如何对"熊猫烧香"

安卓病毒查杀 并追终病毒源头

安卓病毒从权限分有2种 一种会攻击系统root权限 也就是自己充当root工具获取系统root权限   这种病毒特点是难以卸载  恢复出厂无法清除.还有一种是不会进行获取root权限的病毒 ,恢复出厂可以清除. 从网络分为2种  一种互联网控制  还有一种 短信指令控制  很少存在单机病毒,因为黑客不喜欢玩单机. 对于任何病毒 你要把它当成软件看  因为任何病毒的本质属性就是软件 只是在软件上增加了隐蔽性 远程控制性 自启动性等特点 所以清楚病毒的本质是卸载软件.就算还有 病毒残渣,比如病毒产生

*管家病毒查杀原理逆向分析

本文研究的是*管家2.8—3.6版本的杀毒模块功能实现.众所周知,杀毒软件查杀病毒分为主动查杀和被动查杀两种方式.*管家的主动查杀包括快速查收和全盘查杀,而快速查杀和全盘查杀都使用了本地查杀技术和云查杀技术. 快速查杀 快速查杀首先获取系统安装的所有应用.创建"/data/data/com.anguanjia.safe/classes.dex"文件,将待扫描的apk解压,获取包中的classes.dex文件内容写入到"/data/data/com.anguanjia.safe

最新NSA勒索病毒查杀办法

文章转载于:http://www.zoneidc.com/ 5月12日晚上8点多开始,全球爆发大面积"比特币勒索"网络病毒攻击,我国暂发现多家大学的教育系统.学生个人计算机被攻击.本次爆发的勒索软件是一个名称为"wannacry"的新家族,目前无法解密该勒索软件加密的文件.该勒索软件迅速感染全球大量主机的原因是利用了基于445端口传播扩散的SMB漏洞MS17-101(永恒之蓝),微软在今年3月份发布了该漏洞的补丁. 针对比特币勒索病毒"(WannaCry)

木马入侵查杀 linux

 目 录: 一.问题现象: 二.问题排查: 1.netstat 排查: 2.top查看: 3.lsof -c 命令排查: 4.确定中木马了. 三.木马查杀: 木马1,清除: 木马2,清除: 四.后续处理: 1.iptables检查 2.cron检查 3.chkconfig检查 4.木马删除,持续观察确认 五.入侵原因及后续避免措施: 1.入侵原因: 2.后续避免措施:(监控为主) 一.问题现象: 服务器登录缓慢,远程连接老是卡顿. 二.问题排查: 1.netstat 排查: 如图:58.218.

HTML 感染 DropFileName = “svchost.exe” Ramnit 蠕虫病毒 查杀解决办法

参考: https://www.cnblogs.com/wuhairui/p/8297614.htmlhttp://www.guopingblog.com/post/100.html 最近发现vps流量疯长 看了下统计 也没看到网站有大流量,查看源码才发现网页被添加了一段很长的js 内容大概是这样 <SCRIPT  Language=VBScript> DropFileName = “svchost.exe” WriteData = “4D5A0000200000000400000F00FFF

病毒木马查杀第005篇:熊猫烧香之逆向分析(上)

一.前言 对病毒进行逆向分析,可以彻底弄清楚病毒的行为,从而采取更有效的针对手段.为了节省篇幅,在这里我不打算将"熊猫烧香"进行彻底的分析,只会讲解一些比较重要的部分,大家只要掌握了这些思想,那么就可以处理很多的恶意程序了.一般来说,对病毒的静态分析,我们采用的工具是IDA Pro,动态分析则采用OllyDbg.由于后者会使病毒实际运行起来,所以为了安全起见,最好在虚拟机中操作.另外,在实际分析过程中,我们可能还需要一些辅助工具,比如侦壳或脱壳程序等.为了简单起见,这次研究的"