[登记]木马免杀全攻略
Author: robay1 三 2008
文章作者:A1Pass
信息来源:邪恶八进制信息安全团队(www.eviloctal.com)
注:本文已发表在《黑客X档案》第7期杂志上,与原文有少许出入,后由作者提交到邪恶八进制论坛,如需转载请保留此信息!
自从病毒与杀毒软件的诞生以来,他们之间的战争就从来没有停止过……多套特征码、自动脱壳、内存杀毒、主动防御等等的出现为网络安全做出了一次次的贡献,当然黑客们也毫不逊色,也出现了修改特征码、加双层变态壳、去文件头等新的免杀技术。
古人云“知己知彼,方能百战不殆!”
今天,我们就以一个病毒防御工作者的角度来做我们的免杀工作。想不被杀,就要先知道是怎么杀的,还不太懂的朋友赶紧偷偷借机恶补吧。
1.杀毒原理
通常,一个病毒防御工作者拿到一个截获或上报上来的病毒时,先是分析这个病毒文件执行后的动作,所谓“动作”,就是指病毒文件执行后会做哪些操作。例如会生成什么新文件、怎样更改注册表、怎样注册服务、打开什么端口等等。
搞明白这些后,下一步一般会研究这个病毒的文件结构,然后找出与众不同的地方,将其定义为特征码。而这个特征码定义的高明与否,就要看他定义的位置是否刁钻,例如他如果定义的是病毒文件更改注册表键值那部分代码的话,这显然不会太难!因为只要病毒文件更改键值,99%的情况下这个文件里一定存在被更改键值的字符串,所以找到这段字符串的位置就可以定义特征码了。但是针对这种特征码做免杀是非常容易的,只需找到相应的位置,并更改字母的大小写即可。而如果从文件头找出一段特征码就是非常不容易的事情了……除此之外,所定义的特征码还有一个分支,即内存特征码。所谓内存特征码就是指木马文件运行后释放到内存时所存在的特征,它的原理大体与上面介绍的文件特征码一样。
当特征码定义出来之后,就会被提交到另外的一个部门,然后进入病毒定义库,当用户更新后,以后杀毒软件在碰到符合要求的文件时就会将其毫不忧郁的杀掉!也就是说,杀毒软件只认特征码,不认文件。
由此可见,病毒防御工作者寻找特征码的方式也不过如此,但这只是定义病毒文件特征码的工作,别的例如修复被感染文件等技术步骤和本文无关,在这也就不介绍了,有兴趣的朋友可以自己研究一下。
2.免杀分类
免杀的方法有很多,无奈没见哪为朋友综合系统的介绍,也苦了小菜们求学无门,只好掏银子找“师傅”,所以我就自告奋勇站出来一次,不足之处还请各位高手多多包涵……
我个人总结的免杀方法总共分两类,即主动免杀与被动免杀。
一、主动免杀
1.修改字符特征:主动查找可能的特征码,包括木马文件修改注册表、生成新文件的名称与路径、注入的进程名等动作,也包括运行过程中可能出现或一定会出现的字符等文件特征。然后找出这些字符,并将其修改。
2.修改输入表:查找此文件的输入表函数名(API Name),并将其移位。
3.打乱文件结构:利用跳转(JMP),打乱文件原有结构。
4.修改入口点:将文件的入口点加1。
5.修改PE段:将PE段移动到空白位置
二、被动免杀
1.修改特征码:用一些工具找出特征码并针对特征码做免杀处理。
2.用Vmprotect:使用Vmprotect加密区段。
3.文件加壳:可以用一些比较生僻的壳对木马文件进行保护。
有的朋友看到这里有可能蒙了,PE、Vmprotect、入口点……这些都是什么意思啊?不要着急,下面我会一一介绍的,只要你看完这篇文章,就一定会成为免杀高手!怎么样?Go!
3.实战演习
1.)修改字符特征
好,下面我们依然以一个病毒防御工作者的角度来考虑我们每一步应该做什么,然后在利用逆向思维分而治之。
现在假如我们拿到一个木马样本灰鸽子,首先当然要分析它究竟有什么功能,怎样运行以及怎样保护自己等。其实这一步要求的专业知识是很多的,但考虑到我们的读者,我们暂且用一个比较简单易行的方法——运行木马AND查看此程序的帮助文档。
我们打开RegSnap,新建一个快照,打开RegSnap后,点击[新建快照]按钮(如图1),在弹出的对话框中选择[生成所有项目的快照](如图2)。
然后保存快照,现在已经将RegSnap配置好了,下面运行我们的木马程序(提醒:做免杀时,一定要记住养好随时备分的好习惯,以防止修改错误或是实验运行时破坏、删除木马)。
木马运行完毕后,我们在按照上面的方法重新做一个快照并保存,然后按快捷键F5,在弹出的“比较快照”对话框中选择刚才保存的快照,在“第一个快照”中选择我们刚才第一次保存的快照,而“第二个快照”选择我们后保存的快照存档,很快结果就出来了(如图3)。
有的朋友对于使用RegSnap收集到的信息感到无力分析,抱怨收集到的东西太多,在这里我简单的介绍一下,首先应注意的是生成做对比的两个快照之间的时间要尽可能短,另外要排除带有OpenSaveMRU的注册表键值,还要排除有关*.rsnp文件的创建读写等操作记录。下面我们就将有用的信息提取出来,逐一分析。
文件列表于 C:\WINDOWS\*.*
新增文件
木马.exe
注册表报告
新增主键
HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\MUICache\C:\Documents and Settings\A1Pass-admin\桌面\huigezi\复件 Server02.exe
键值: 字符串: “复件 Server02″
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\LEGACY_*6728*9A6C*670D*52A1\0000\Class
键值: 字符串: “LegacyDriver”
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\LEGACY_*6728*9A6C*670D*52A1\0000\ClassGUID
键值: 字符串: “{8ECC055D-047F-11D1-A537-0000F8753ED1}”
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\LEGACY_*6728*9A6C*670D*52A1\0000\Control\ActiveService
键值: 字符串: “木马服务”
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\木马服务\Description
键值: 字符串: “灰鸽子服务端程序。远程监控管理.”
……
这里我只摘录了部分关键性的木马动作记录,全部记录请见光盘。通过文件列表我们可以知道木马在WINDOW目录下生成了一个新文件,而通过注册表的监控信息我们也知道了木马是怎样将自己注册为系统服务并自动运行的。
那么我们回到瑞星的研究分析室,看看那些大哥大姐们会怎么办……
瑞星大哥:“最近这灰鸽子太猖狂啦!我们是不是应该多定义几套特征码?”
瑞星大姐:“恩,不错!先在注册表那定义一套特征码在说吧。”
A1Pass:“STOP!!”(只见画面突然定格,A1Pass将播放器最小化。)
通过上面的对话,我们可以知道他们要将注册表的某个字符定义为特征码,从上面RegSnap分析出来的记录来看,他们的选择真的是太多了!那么他们究竟会用到哪些呢?其实,就做为一个黑客来讲,只要不影响服务端正常运行,就应该尽量多的改掉木马的所有字符,当然全部改变是不可能的,除非你自己编写木马。
有的朋友要问了,除了注册表别的就不可以改了吗?答案当然是否定的,譬如生成新文件的名称与路彜n、注入的进程名等动作,这些我们可以利用 WINDOWS对字母大小写不敏感的这一特点直接替换字母的大小写,而对于运行过程中可能出现或一定会出现的字符等我们可以直接将其替换成别的内容。
下面我为大家演示一下怎样更改注入进程的名称。
首先配置服务端,通过图4我们可以看出来灰鸽子的启动运行是需要“IEXPLORE.EXE”这个进程的,根据注册表的推理,我们可以认为其未加壳的服务端是应该存在“IEXPLORE.EXE”这一字符串的。既然如此,我们就先请出我们的第一把武器“WinHex”!
WinHex是一款极为出名16进制编辑器。得到 ZDNetSoftwareLibrary 五星级最高评价,拥有强大的系统效用。在这里,我们只用它来编辑文件,其余不做过多讨论。首先我们用WinHex打开我们的木马文件“Server.exe”,打开后如图5所示。
然后我们按[Ctrl]+[F]快捷键调出查找文本对话框,输入IEXPLORE.EXE后点击“是”(如图6)。
结果如图7所示。下面我们就对其进行大小写转换,用鼠标点击要更改的字母(例如I),然后在按键盘上的i,即可完成更改,就象使用WINDOWS的记事本一样。更改完毕后,按[Ctrl]+[S]快捷键保存即可。
就这么简单?对!就这么简单!其他的例如注册表、生成新文件的名称与路径等等都可以利用此方法更改。
但是不幸的是,经过这样改后,还不足以对付例如金山、江民等品牌杀毒软件,要想对付这些杀毒软件的查杀,我们还需要对我们的木马进行进一步处理。
下面,我们开始学习输入表函数(APIName)免杀!
2.)修改输入表
不知有的朋友是否知道,PE文件的正常运行是离不开其内部输入表函数的,而不同的程序,其内部输入表函数的名称与在文件中的位置是不一样的,所以输入表函数也成了病毒防御工作者制作特征码紧盯的地方之一。在我查出来的关于灰鸽子的特征码来看,“瑞星大哥”已经将其的一处输入表函数作为特征码了。所以掌握输入表函数免杀技巧对于新入门的朋友来说势在必行!
[PE文件小知识:PE文件是WINDOWS系统中特有的一种文件结构,它包括PE文件头、输入表与相关资源文件等等]
经过我的测试,直接单独修改文件内部的输入表函数会导致程序运行不正常甚至崩溃!那就没有办法了吗?我可没那么容易认输!经过一翻苦战,终于让我在LordPE中找到了解决办法,同时FoBnN的文章也给了我非常大的启发……
我们先打开LordPE,点击[PE编辑器]按钮,在弹出的对话框中选中木马文件,打开后点击[目录](如图8),再点击导入表后面的[…](如图9)。
在弹出的对话框中我们选择wininet.dll下的InternetOpenUrlA(如图10),有的朋友要问了,为什么非选择InternetOpenUrlA这个输入表函数呢?呵呵!那是因为这个输入表里有特征码哦,关于怎样确定特征码,我在后面会介绍,大家先别着急。
好的,关于LordPE就先停在这,下面我们就用WinHex来查找InternetOpenUrlA这个输入表函数的所在位置,并将其用0填充(操作方法:单击WinHex右面的16进制信息,输入0即可)(如图11、12)。
然后将其写到空白区域(既显示000000的区域),一定要从头开始写入,这样在以后计算地址时不容易出错,除此之外也要注意输入表函数的大小写不要搞错(如图13)。
保存后我们在回到LordPE那里,在需要更改的InternetOpenUrlA输入表函数上单击右键,在弹出的菜单里选择“编辑”,将Thunk里的信息改成000B9D5E(如图14)即可。
有的朋友要问了,刚才我们不是把那个输入表函数放到000B9D60那里了吗?到这怎么变成000B9D5E了?其实原理很简单,因为每个输入表函数前面都是有一个空格的,我们虽不用真正把那个空格加进去,但填写它的地址时一定要空出来,否则就会出错!而将000B9D60减去一个空格所占的位置,其地址正好为000B9D5E,还不十分明白的朋友在仔细看看图13,下面我们在回到LordPE,看看我们改过的输入表函数变成什么样了(如图15)?
那我们该怎么办呢?其实简单的很,只要在重新改一下输入表函数的名称就可以了(如图16)。
有的时候因为我们所填写的地址为比较靠后的,例如我们现在改的这个000B9D5E,后面仅能容纳两个字节,所以更改输入表函数时只能键入两个字,对于这种情况我们可以先把Thunk里的信息改成如000B9D60这样的起始地址,改输入表函数名更改完毕后在将000B9D60改回原来的值(既 000B9D5E),保存后即可成功,我们试一下看看(如图17)。
经测验鸽子的各项功能均正常!在用瑞星查一下试试(如图18),结果当然不言而喻……
3.)修改特征码
虽然到这我们免杀已经成功,但是为了学到更多的技术,为了让我们免杀的鸽子存活的更久,下面我在为大家介绍一下特征码的查找与修改技巧。
特征码是杀毒软件的心脏,但同样也是我们的心脏!就看谁先找到对方地心脏,并能发出致命一击,谁就是胜利者!
一提到查找特征码,就不得不说说MyCCL与CCL,这两个软件的名字相信留心过免杀技术的朋友不会陌生,但由于软件操作的傻瓜化,很多时候对于CCL的介绍只是一带而过,这可苦了入门的朋友!
这一小节我就先介绍一下MyCCL的用法……
我们先来认识一下MyCCL(如图19),根据这张图我们下面就来大体介绍一下MyCCL的应用方法。首先点击第1处选择文件,然后在第2处输入分块个数,分块个数越多,定位越精确,然而生成的速度同时也就越慢,生成的文件总体积也就越大,就象灰鸽子这么大的服务端,如果分块数为300的话,那么它生成文件的总体积将超过230M!所以在这里不建议填写太大的数字,一般象灰鸽子这样的服务端分块数填400个就足够了。生成完毕后会弹出个对话框提醒你去相应目录杀毒,图中所示为“E:\文章\极度免杀\鸽子\OUTPUT”文件夹,我们到那个文件夹下开始杀毒,查到病毒就让杀毒软件将其彻底删除,注意,这一点很重要!处理完毕后点击第3处的二次处理,在点击[生成]上面的[特征区间]按钮即可出现右面的对话框。
下面我们在“区间设定”里右键单击特征码区间,在弹出的菜单中选择“复合精确定位此处特征”(如图20),然后重复上面的操作,直到你认为[单位长度]已经小到很方便更改的时候,特征码的定位就算结束了。
好了,一口气说了这么多,不知道刚入门的朋友是否懂得一些MyCCL的用法了没有……
但是上面我们定位的是文件特征码,还有内存特征码没有定义,这里我们要用到CCL的内存特征码定位功能,打开CCL后,我们依次选择[文件]→[特征码验测]→[内存特征码](如图21)。
在弹出的对话框中选择我们要进行免杀操作的木马,然后会进入“定位范围选择窗口”(如图22)。
由图中可知,第一个CODE段的偏移量为00000400,也就是说我们可以用00000400做为起始位置,那么我么就在用户输入区的“起始位置” 处填写00000400,下面的那个验测大小怎么填写呢?看到图22中画线的那个“当前文件大小”了吗?我们可以用WINDOWS系统自带的计算器进行计算,把计算器的“查看”菜单设置为科学坜n、十六进制、四字(如图23)。
然后用当前文件大小的值减去起始值00000400,得到的结果为000B9A00,那么我们就在“验测大小”后填上000B9A00,然后点击“填加区段”按钮(如图24)。
最后点击确定,在新弹出的对话框中点击运行,不过需要注意的是,在进行此步操作时一定要打开杀毒软件的所有功能。下面你要做的就是等待……
然而光找特征码是不够的,我们还得学会怎样更改,而关于特征码地更改是非常有学问的!这里为了方便广大读者能学以致用,在此我只介绍部分理论知识,着重介绍实践操作,但是我想请大家注意,免杀的方法象你做完免杀的木马一样,都有生存时间,而过了这个时间,这种免杀方法就变的不在实用,或者免杀效果大打折扣!所以要想真正成为免杀高手,还的打牢基本功,不断创造出新的免杀方法,因为我们是在与杀毒软件厂商的专业技术人员“斗法”啊!
关于需要注意的问题就先讲的这,下面我带大家先来了解一下目前更改特征码的办法。
1. 大小写替换(只适用于文件免杀)
适 用 于:出现可识别的英文字母或词组,并且确定其不是相关函数(如输入表函数)。
操作方法:如咱们“实战演习”的第一节讲的一样,只须将大小写替换一下就可以了,例如特征码中出现了A,你只要将其替换为a即可。
原 理:利用WINDOWS系统对大小写不敏感,而杀毒软件却对大小写非常敏感这一特性达到免杀目的。
2.用00填充
适 用 于:几乎任何情况,但成功率不是非常高。
操作方法:例如我们找到了一处特征码0009EE7F_00000005,那么根据这段特征码信息我们可以知道它的位置在0009EE7F,大小为5个字节,也就是0009EE7F-0009EE83这一段内容(如图25)。
一直跟着文章实践操作的朋友肯定有疑问,你是怎么找到那个地址的呢?而我怎么找不到呢?那是因为WinHex的默认偏移量为decimal模式,我们单击Offset栏将其改为16进制模式即可(如图26)。
然后我们有选择的一处处地用00填充(如图27)。
记住要多试几次,80%的情况下你都能找到一处既能免杀又不影响程序正常运行的区域。对于定义出的内存特征码,只要将其内存地址用一个叫做《便宜量转换器》的小程序转换成16进制偏移量,然后在进行相应操作即可。
原 理:由于PE文件的特殊格式以及程序编译语言等问题,使得生成目标代码的效率并不高,难免出现一些“垃圾信息”,而这些信息存在与否对与程序是否能正常运行并不起决定性的作用,而当木马的这部分“垃圾信息”被定义为特征码时,我们完全可以将其删除,而删除的方法就是用无任何意义的00将其替换。
3.跳到空白区域
适 用 于:几乎任何情况,成功率比较高。
操作方法:还是以特征码0009EE7F_00000005为例子,假如我们使用00填充的方法失败了那么不要多想,接下来马上试试OllyDbg,关于OllyDbg我就不多介绍了,它是非常棒而且非常专业的一个动态反汇编/调试工具,这里我们只用它来帮助我们进行免杀作业,首先应该做的就是将我们的16进制偏移量0009EE7F转换为内存地址,因为OllyDbg的工作原理是先将程序释放到内存空间里,然后才能进行相关作业…这里要用到的是一个叫做《便宜量转换器》的小程序,我们用其转换完毕后得到的内存地址为0049FA7F(如图28)。
下面我们用OllyDbg打开我们的木马服务端,首先找到一处空白区,并域记下这的地址004A24A5,然后找到我们刚转换过来的地址0049FA7F,先将以0049FA7F开始以下的这三行数据选定,然后单击右键选则[复制]→[到接剪贴板](如图29)。
将其复制到本文文档里备用,然后在将这三行代码一一NOP掉(如图30)。
最后右键点击0049FA7F,在弹出的对话框中选择汇编,并写入“jmp 004A24A5”这条汇编指令(如图31)。
记住,在点击[汇编]按钮之前一定先把“使用 NOP 填充”前面的勾去掉。然后我们记下汇编后0049FA7F的下面那个地址0049FA84(仔细观察图31)。好,下面我们回到004A24A5这处刚才找到的空白地址(如图32)。
然后用刚才汇编的方法把在本文文档里备用的信息一句句地汇编进去,然后在将最后一句代码的下一行004A24AA处加入“jmp 0049FA84”这行代码(如图33)。
然后单击右键→[复制到可执行文件]→[所有修改](如图34)。
在弹出的对话框中选择“全部复制”然后保存即可。而对于内存免杀就省去了内存地址转换这一步了。
原 理:大家先看图35,由图中可知,正象此方法的名字“跳到空白区域”一样,这种方法的原理就是将原本含有特征码的信息转移到空白区域,并把原先位置的信息全部NOP掉,并在那里加一个跳转指令,让其跳到004A24A5处,也就是我们找到的空白区域,并把原来在0049FA84的信息移到这里,加完信息后在加一条指令让其在跳回去,以使程序连贯起来。
4.上下互换
适 用 于:几乎任何情况,成功率比较高。
操作方法:先用OllyDbg载入木马程序,假定其特征码为0009EE7F_00000005,我们还是先用《偏移量转换器》将其转换为内存地址,上面我们已经知道0009EE7F对应的内存地址为0049FA7F,然后在OllyDbg中找到相应位置,利用上面“跳到空白区域”里介绍的修改方法将 0049FA7F上下两句代码调换位置即可。而对于内存免杀就省去了内存地址转换这一步了。
原 理:杀毒软件的特征码定位是严格按照相关偏移量于内存地址进行的,而其实我们的应用程序中的机器码执行顺序的先后在一般情况下是没有死规定的,所以我们只需将其上下互换,杀毒软件自然就不认识了。
5.ADD与SUB 互换
适 用 于:在内存特征码中出现ADD或 SUB指令的,成功率比较高。
操作方法:用OllyDbg载入木马程序,假定其特征码所对应的地址中有ADD或SUB指令,例如00018A88:XXXXX 00000088 ADD ECX 10000000
我们可以将ADD ECX 10000000这段机器码改为SUB ECX F0000000,
更改完毕后保存为EXE文件即可。
原 理:我们都知道1+1=2,我们也知道1-(-1)=2,上面就是利用了这个原理,其中ADD指令的就是加意思,而SUB则是减的意思。虽然被我们互换了一下,但是最终结果还是一样的,可是换完之后杀毒软件就不认识了。
到这里,关于特征码的查找与修改就讲完了,但是除此之外呢?答案是还有许多!!下面我们就一起看看其他免杀方法。
4.)其他免杀方法
改文件头:
这里所说的改文件头包括加头去头,文件加花。关于加头去头,我们还是用OllyDbg。用OllyDbg载入后,OllyDbg会自动停在入口点(如图36)。
我们将头三行机器码复制保存起来,然后找到空白区域,用汇编的方法一一将其写入(如图37)。
然后在后面写入一条JMP指令,让其跳到初始入口点的第四行,相信一直仔细看本文的朋友一定明白其原理,如果忘了的话可以看上面修改特征码的第三种方法,原理与这差不多,修改完毕后如下所示:
004A2A73 0000 add byte ptr ds:[eax],al
004A2A75 0000 add byte ptr ds:[eax],al
004A2A77 55 push ebp
>004A2A78 8BEC mov ebp,esp
004A2A7A B9 04000000 mov ecx,4
004A2A7F ^ E9 CCF3FFFF jmp Server.004A1E50
004A2A84 0000 add byte ptr ds:[eax],al
004A2A86 0000 add byte ptr ds:[eax],al
004A2A88 0000 add byte ptr ds:[eax],al
上面的add byte ptr ds:[eax],al就是所谓的空白区域,我们看到改完后的头文件位于004A2A77,所以我们还要用PEditor改一下入口点,打开PEditor后载入文件,将入口点处的地址改为我们的新文件头地址004A2A77(如图38),保存后即可。
入口点加1:
打开PEditor后载入文件,将原来的入口点+1即可,例如我们的入口点为004A2A77,加1后应该是004A2A78(如图39),然后点击“应用更改”即可完成更改。
用这种简便的免杀方法即可以轻松的对付大部分杀毒软件。
用Vmportect加密:
Vmportect是新一代的软件保护程序,利用虚拟机保护代码,可以对指定的部分区段进行加密,能让被保护的程序复杂化,最开始他被用于PcShare里的SYS文件免杀,效果值得称道!其实对于普通文件他照样发挥的比较出色!下面我们就用他来加密我们的那个存在特征码以0049FA7F开始的区段。打开Vmportect后载入程序,在“转储”选项卡下的任意地方单击由键,在弹出的菜单中选择“前往地址”(如图40)。
然后在弹出的对话框中填入0049FA7F,点击“是”按钮即可跳到相应位置,然后点击“添加地址”按钮(如图41)。
并选则是即可,最后点击“编辑”按钮即可对以0049FA7F开头的区段进行加密(如图42)。
移动PE段的位置:
关于这种方法,可是绝学!今天借此机会贡献给各位朋友,希望此方法能在你免杀时助你一臂之力!那么修改PE段究竟能起到什么作用呢?首先当然可以达到长期免杀的目的,其次可以保护我们的免杀文件,其他人无法学走我们的免杀方法(A1Pass:要想真正达到这个目的,除此之外你还不能让别人看到这篇文章,所以这期的X档案赶紧全包了吧!呵呵!)。为什么呢?因为一些反汇编工具无法载入经过修改PE文件头的程序。
我们先来看看PE段,怎么看?先用WinHex载入我们的木马(如图43)。
看到图中PE那两个字了吗?这两个字的P所在位置就是PE段的入口点,我这里是00000100。我们在仔细看看图43,看看PE下一行的第一个16 进制是不是E0?好,下面我们用WINDOWS系统自带的计算器计算一下,得到16进制的E0就是十进制的224。这是什么意思呢?它代表的就是PE段的大小,在WinHex中一行能显示16个字符,224个字符正好是14行,我们将这14行内容复制保存起来,并记住PE段的末尾地址,我这里是 000001EF,最后将这个PE段用0填充(如图44)。
最后将我们事先保存的PE段上移,但注意不要超过“This program must be run under Win32”这段内容。由于PE段的上移,其体积必然也就随之增大,而从我们现在PE段所处的00000080到000001EF,总共是368个字节,换成16进制为170,全部更改完毕后如图45所示。
针对瑞星:
先用OllyDbg载入文件,只要将其第一条机器码push ebp改为pop ebp即可躲过瑞星的内存杀毒。
加壳压缩:
加壳是菜鸟的专利,虽然操作简便,但是免杀效果与“报质期”都不尽人意,但是做完免杀后在加个压缩壳还是很有必要的。
加壳免杀的第一步就是要找到好壳,大家没事可以到看雪论坛逛逛,他那里经常有好壳出现。但关于加壳的一些操作步骤我在这里就不费笔墨了,大家下去自己一看就会,其实就是个使用软件的过程。
好了,到这里,我们对木马的免杀就做完了,总共用了七大类共计14种方法!恐怕一时理解起来比较困难。下面我就在用“苏式教育”的方法为各位读者规划一下本文所讲的知识,方便各位读者以后应用与查找。
免杀的操作顺序:
1.主动查找可能存在的特征码
2.用CCL等查找特征码,并将其更改
3.尽可能多的更改输入表函数
4.更改文件头
5.Vmportect区段加密
6.移动PE段的位置
7.加壳压缩
免杀分析:
一、主动查找可能的特征码
操作时注意:有关注册表、文件路径的信息最好只用大小写替换的方法,不要改成其他内容,那样容易出错。
优 点:可以防范未来将要出现的特征码,并且同时可以体验DIY的乐趣,顺便打造自己的“专用木马”。
不 足:无法进行有效的免杀,效果不明显。
成 功 率:几乎100%,只要不改错地方,一般更改后的程序完全可以正常运行。
二、尽量多的更改输入表函数
操作时注意:将输入表函数移动到新位置时,函数名的第一个字母最好在本行开头,另外注意地址的填写规律,不要弄错。
优 点:可以防范未来将要出现的特征码,给特征码的定位带来干扰。
不 足:无法进行有效的免杀,效果不明显。
成 功 率:只要操作上没问题,基本能保证90%以上!
三、用例如CCL等工具查找特征码并将特征码更改
操作时注意:此步骤最需要的就是耐心与细心!不能丢三落四,要及时做好备份,以防不测。
优 点:针对性非常强,免杀中最有效的方法之一。
不 足:只能针对一个杀毒软件进行免杀,无法针对多个杀毒软件进行作业,免杀文件的存活期短。另外,此方法也非常耗费时间。
成 功 率:理论上100%,主要看你的经验与编程、汇编的底子。不过其实只要有足够的经验与方法,成功率就异常可观了!
四、移动PE短位置
操作时注意:16近制的转换一定要细心,并且时刻不要忘了开头与结尾的位置。
优 点:可延长免杀期,时对付特征码在PE文件头部的必杀技!同时可以保护我们的免杀文件,其他人无法学走我们的免杀方法。
不 足:除加壳外,就无法在对木马文件做进一步加工了。
成 功 率:大约75%左右,不确定的因素太多……
五、更改文件头
操作时注意:删除部分信息时文件结构的变化。
优 点:比较节省时间,免杀效果也很明显,是免杀中的有效方法之一。
不 足:免杀时间不长。
成 功 率:大约80%左右。
到这里本文也快要结束了,不知道大家学会了多少……可以说这篇文章是我下了很大的力气与很大的决心写出来的,希望各位高手多多指点。
佛言百句养心养性
Author: robay27 二 2008
从别的地方找到的,看着不错,与大家共勉吧!
仔细想想,确实能够让人平心静气,佛学其实就是一种心理慰籍!
中庸也好,籍口也好,关键是所达到的结果!
1、人之所以痛苦,在于追求错误的东西。
2、与其说是别人让你痛苦,不如说自己的修养不够。
3、如果你不给自己烦恼,别人也永远不可能给你烦恼。因为你自己的内心,你放不下。
4、好好的管教你自己,不要管别人。
5、不宽恕众生,不原谅众生,是苦了你自己。
6、别说别人可怜,自己更可怜,自己修行又如何?自己又懂得人生多少?
7、福报不够的人,就会常常听到是非;福报够的人,从来就没听到过是非。
8、你永远要感谢给你逆境的众生。
9、你永远要宽恕众生,不论他有多坏,甚至他伤害过你,你一定要放下,才能得到真正的快乐。
10、这个世界本来就是痛苦的,没有例外的。
11、当你快乐时,你要想这快乐不是永恒的。当你痛苦时,你要想这痛苦也不是永恒的。
12、认识自己,降伏自己,改变自己,才能改变别人。
13、不要浪费你的生命在你一定会后悔的地方上。
14、你什么时候放下,什么时候就没有烦恼。
15、每一种创伤,都是一种成熟。
16、当你知道迷惑时,并不可怜, 当你不知道迷惑时,才是最可怜的。
17、狂妄的人难救,自卑的人更难救。
18、你不要一直不满人家,你应该多检讨自己才对。不满人家,是苦了你自己。
19、你要包容那些意见跟你不同的人,这样子日子比较好过。你要是一直想改变他,那样子你会很痛苦。要学学怎样忍受他才是,怎样包容他才是。
20、承认自己的伟大,就是认同自己的愚痴。
21、一个人如果不能从内心去原谅别人,那他就永远不会心安理得。
22、心中装满着自己的看法与想法的人,永远听不见别人的心声。
23、毁灭人只要一句话,培植一个人却要千句话,请你多口下留情。
24、当你劝告别人时,若不顾及别人的自尊心,那么再好的言语都没有用的。
25、不要在你的智慧中夹杂着傲慢,不要使你的谦虚心缺乏智慧。
26、根本不必回头去看咒骂你的人是谁?如果有一条疯狗咬你一口,难道你也要趴下去反咬他一口吗?
27、忌妒别人,不会给自己增加任何的好处。忌妒别人,也不可能减少别人任何的成就。
28、永远不要浪费你的一分一秒,去想任何你不喜欢的人与事。
29、多少人要离开这个世间时,都会说出同一句话:这世界真是无奈与凄凉啊!
30、恋爱不是慈善事业,不能随便施舍的。感情是没有公式,没有原则,没有道理可循的,可是人们至死都还在执著与追求。
31、请你用慈悲心和温和的态度,把你的不满与委屈说出来,别人就容易接受。
32、创造机会的人是勇者,等待机会的人是愚者。
33、能说不能做,不是真智慧。
34、多用心去倾听别人怎么说,不要急着表达你自己的看法。
35、同样的瓶子,你为什么要装毒药呢?同样的心理,你为什么要充满着烦恼呢?
36、得不到的东西,我们会一直以为他是美好的,那是因为你对他了解太少,没有时间与他相处在一起。当有一天,你深入了解后,你会发现远不是你想像中的那么美好。
37、方正存心,圆通处世。
38、活着一天,就是有福气,就该珍惜。当我哭泣没有鞋子穿的时候,我发现有人却没有脚。
39、多一分心力去注意别人,就少一分心力反省自己,你懂吗?
40、欲知世上刀兵劫,但听屠门夜半声。不要光埋怨自己多病,灾祸横生,多看看横死在你刀下的众生又有多少?
41、憎恨别人对自己是一种很大的损失与伤害。
42、每一个人都拥有生命,但并非每个人都懂得生命,乃至于珍惜生命。虚度生命的人,生命对他来说,并没有多大意义,滥用生命的人,生命对他来说,是一种惩罚。
43、自以为拥有财富的人,其实是被财富所拥有。
44、情执是苦恼的原因,放下情执,你才能得到自在。
45、随缘不是得过且过,因循苟且,而是尽人事听天命,积极乐观面对境缘,而不妄求,贪着。
46、不要太肯定自己的看法,这样子比较少后悔。
47、当你对自己诚实的时候,世界上没有人能够欺骗得了你。
48、用伤害别人的手段来掩饰自己缺点的人,是可耻的。
49、内心充满忌妒,心中不坦白,言语不正的人,不能算是一位五官端正的人。
50、多讲点笑话,以幽默的态度处事,这样子日子会好过一点。
51、活在别人的掌声中,是禁不起考验的人。
52、不要刻意去猜测他人的想法,如果你没有智慧与经验的正确判断,通常都会有错误的。
53、要了解一个人,只需要看他的出发点与目的地是否相同,就可以知道他是否真心的。
54、人生的真理,藏在平淡清净之中。
55、不洗澡的人,硬擦香水是不会香的。名声与尊贵,是来自于真才实学的。有德自然香。
56、与其你去排斥已成的事实,你不如勇敢接受。
57、逆境是成长必经的过程,能勇于接受逆境的人,生命就会日渐的茁壮。
58、要感谢告诉你缺点的人。
59、能为别人设想的人,永远不寂寞。
60、如果你能像看别人缺点一样,如此准确般的发现自己的缺点,那么你的生命将会不平凡。
61、原谅别人,就是给自己心中留下空间,以便回旋。
62、时间总会过去的,让时间流走你的烦恼吧!
63、你硬要把单纯的事情看得很严重,那样子你会很痛苦。
64、永远扭曲别人善意的人,无药可救。
65、人不是坏,只是习气罢了,每个人都有习气,只是深浅不同罢了。只要他有向善的心,能原谅的就原谅他,不要把他总看做是坏人。
66、说一句谎话,要编造十句谎话来弥补,何苦呢?
67、其实爱美的人,只是与自己谈恋爱罢了。
68、世界上没有一个永远不被毁谤的人,也没有一个永远被赞叹的人。当你话多的时候,别人要批评你,当你话少的时候,别人要批评你,当你沉默的时候,别人还是要批评你。在这个世界上,没有一个人不被批评的。
69、只会夸奖我们,赞叹我们的,这都不是明师,能批评我们,启示我们的,这才是明师,有了他们我们才会进步。
70、你目前所拥有的都将随着你的死亡而成为他人的,那为何不现在就乐意施给真正需要的人呢?
71、白白的过一天,无所事事,就像犯了窃盗罪一样。
72、沉默是毁谤最好的答复。
73、对人恭敬,就是在庄严你自己。
74、拥有一颗无私的爱心,便拥有了一切。
75、仇恨永远不能化解仇恨,只有宽容才能化解仇恨,这是永恒的至理。
76、你接受比抱怨还要好,对于不可改变的事实,你除了接受以外,没有更好的办法了。
77、不要因为众生的愚疑,而带来了自己的烦恼。不要因为众生的无知,而痛苦了你自己。
78、别人讲我们不好,不用生气、难过。说我们好也不用高兴,这不好中有好,好中有坏,就看你会不会运用?
79、当你的错误显露时,可不要发脾囮°,别以为任性或吵闹,可以隐藏或克服你的缺点。
80、不要常常觉得自己很不幸,世界上比我们痛苦的人还很多,抛开自由的悲切,去帮助他人。
81、愚痴的人,一直想要别人了解他。有智慧的人,却努力的了解自己。
82、来是偶然的,走是必然的,要学着随缘不变,不变随缘。
83、只有面对现实,你才能超越现实。
84、良心是每一个人最公正的审判官,你骗得了别人,却永远骗不了你自己的良心。
85、不懂得自爱的人,是没有能力去爱别人的。
86、做事就是在学做人而已。
87、有时候我们要冷静问问自已,我们在追求什么?我们活着为了什么?
88、不要因为小小的争执,远离了你至亲的好友,也不要因为小小的怨恨,忘记了别人的大恩。
89、勇于接受别人的批评,正好可以纠正自己的缺点。
90、感谢上天我所拥有的,感谢上天我所没有的。
91、说话不要有攻击性,不要有杀伤力,不夸已能,不扬人恶,自然能化敌为友。
92、一个常常看别人缺点的人,自己本身就不够好,因为他没有时间检讨他自己。
93、是非天天有,不听自然无,是非天天有,不听还是有,是非天天有,看你怎么办?
94、如果你真的爱他,那么你必须容忍他部份的缺点。
95、你必须要接受世上所有的人,都会死去的观念。当你明白生命是永恒的,就能克服对死亡的恐惧,欢喜求生西方极乐清净平等的佛土。
96、虽然你讨厌一个人,但却又能发觉他的优点好处,像这样子有修养的人,天下真是太少了。
97、诚实的面对你内心的矛盾和污点,不要欺骗你自己。
98、因果不曾亏欠过我们什么,所以请不要抱怨。
99、我们确实有如是的优点,但也要隐藏几分,这个叫做涵养。
100、大多数的人一辈子只做了三件事;自欺、欺人、被人欺。
101、太过于欣赏自己的人,不会去欣赏别人的优点。
102、妄心是最大的骗子,别人能骗你一时,而它却会骗你一辈子。
103、当你手中抓住一件东西不放时,你只能拥有这件东西,如果你肯放手,你就有机会选择别的。人的心若死执自己的观念,不肯放下,那么他的智慧也只能达到某种程度而已。
104、人家怕你,并不是一种福,人家欺你,并不是一种辱。
105、不是某人使我烦恼,而是我拿某人的言行来烦恼自己。
106、不要刻意去曲解别人的善意,你应当往好的地方想。
107、世上的事,不如己意者十之八九,当它是应该的就好。
108、我的财富并不是因为我拥有很多,而是我要求的很少,布施供养别人的很多。
109、以为别人在注意你,或希望别人注意你的人,会生活的比较烦恼。
110、我能为你煮东西,但我不能为你吃东西。各人吃饭是各人饱,各人生死是个人了。
111、看轻别人很容易,要摆平自己却很困难。
112、如果你准备结婚的话,告诉你一句非常重要的哲学名言,你一定要忍耐包容对方的缺点,世界上没有绝对幸福圆满的婚姻,幸福只是来自于无限的容忍与互相尊重。
113、如果你能够平平安安的渡过一天,那就是一种福气了。多少人在今天已经见不到明天的太阳,多少人在今天已经成了残废,多少人在今天已经失去了自由,多少人在今天已经家破人亡。
114、是非和得失,要到最后的结果,才能评定。
115、你不必和因果争吵,因果从来就不会误人。你也不必和命运争吵,命运它是最公平的审判官。
116、你有你的生命观,我有我的生命观,我不干涉你。只要我能,我就诚心感化你。如果不能,那我就坦然认命。
117、你希望掌握永恒,那你必须控制现在。
118、恶口永远不要出自于我们的口中,不管他有多坏,有多恶。你愈骂他,你的心就被污染了,你要想,他就是你的善知识,至少你该学着忘记。
119、当你明天开始生活的时候,有人跟你争执,你就让他赢,这个赢跟输,都只是文字的观念罢了。当你让对方赢,你并没有损失什么。所谓的赢,他有赢到什么?得到什么?所谓的输,你又输到什么?失去什么?
120、你不要常常觉得自己很委曲,你应该要想,我这样子已经很好了,这就是修行的功夫。
121、别人可以违背因果,别人可以害我们,打我们,毁谤我们。可是我们不能因此而憎恨别人,为什么?我们一定要保有完整的本性和一颗清净的心。
122、与任何人接触时,要常常问自己,我有什么对他有用,使他得益?如果我不能以个人的道德、学问和修持的力量,来使人受益,就等于欠了一份债。
123、如果一个人没有苦难的感受,就不容易对他人给予同情。你要学救苦救难的精神,就得先受苦受难。 如觉自己受苦受难太多,则经常可以上《经典文章》修心养性。
124、一般人在遇到对方的权势大,财富大,气力大,在无可奈何的情形之下而忍,这算什么忍耐呢?真正的忍是,就算他欺负了你,对不住你,但他什么都不及你,你有足够的力量对付他,而你却能容忍他,认为他的本性和我一样,只是一时糊涂,或在恶劣的环境中受到熏染罢了,你不必与他计较,能在这样的情况及心境之下容忍那才是真正的忍耐。
125、如果我们放眼从累生历劫去看,那么一切的众生,谁不曾做过我的父母、兄弟姊妹、亲戚眷属?谁不曾做过我的仇敌冤家?如果说有恩,个个与我有恩;如果说有冤,个个与我有冤。这样子我们还有什么恩怨亲疏之别呢?再就智慧愚笨来说,人人有聪明的时候,也有愚痴的时候,聪明的人可能变愚痴,愚痴的人也可能变聪明。最坏的人,也曾做过许多好事,而且不会永远坏;好人也曾做过许多坏事,将来也不一定会好。如此我们反覆思索,所谓的冤亲、贤愚,这许多差别的概念,自然就会渐渐淡了。这绝对不是混沌,也不是不知好坏,而是要将我们无始以来的偏私差别之见,代之以一视同仁的平等观念罢了!
126、世界原本就不是属于你,因此你用不着抛弃,要抛弃的是一切的执著。万物皆为我所用,但非我所属。
127、宁可自己去原谅别人,莫让别人来原谅你。
128、当你用烦恼心来面对事物时,你会觉得一切都是业障,世界也会变得丑陋可恨。而相反,当你用感恩的心来面对事物时,你会觉得一切都是助缘,世界也会变得美好可亲。
129、欲为诸佛龙象,先做众生马牛。
130、虽然我们不能改变周遭的世界,我们就只好改变自己,用爱心和智慧来面对这一切.
