|
今天给大家带来的是 【免杀不求人】抛开定位工具手工突破NOD32等高启发式杀软
NOD32等高启发式杀软具有智能分析能力,能够对未知木马病毒的进行查杀防御,
以致于让不少“牧马人”谈之色变。最近升级后的NOD32,让曾经流行一时的
主函数加空格的方法,现在也走到了头。不得不让我们另辟稀径,寻求突破。
有的朋友可能知道NOD32的特征码定位不同于其它杀软,正向定位通常会定位在输入表上
反向定位会出现N多的特征码,常规方法经常会定位出假码,甚至还会出现死循环的现象。
关于NOD32的查杀原理,已经有人公布了,本动画不做讨论。
今天给新手朋友介绍一下:不用工具,纯手工找特征码的免杀方法,
本动画无技术含量,只是回归到原始方法,提供一种思路,高手略~
==============================================================================
进入正题:
用到的工具有:①静态编辑工具C32Asm②动态编辑工具OllyDBG
免杀样本:PCSHARE
打开NOD32,开启所有监控,已经升级到最新的病毒库了。
用NOD32查一下文件,EXE文件被杀了,既然我们知道NOD32查杀的输入表,
那么我们就从输入表入手,来分析出它的特征码~
用C32Asm打开EXE文件,我们从PE头找到输入表位置,第129个字节处的18360000就是输入表的RVA了,
大家如果对输入表不太了解的话,也可以借助工具来查找输入表。
这里的18360000转换物理地址就是00002618,好我们来到00002618处,这里就是输入表,
我们来分析输入表的主函数,从上往下逐个用00填充掉,分析一下查杀的是哪个函数。
为了节省时间也可以多个主函数一起填充,每填充一处都要查杀一下,原理同工具定位
只是这样定位有针对性,特征码比较准确,大家还是看操作吧。
当填充掉主函数kernel32.dll时程序免杀了,定位出了主函数,我们再用同样的方法,
定位子函数,到这里可能会有人问,既然定位出了kernel32.dll,
直接对kernel32.dll做免杀不就行了吗,为什么还要定位子函数呢?
在这里简单解释一下,以前我们直接kernel32.dll后面加个空格就可以免杀了,
现在升级后NOD32对这种免杀方法开始查杀了,无论你怎么转怎么移都是没用的。
大家不要嫌麻烦,做免杀本来就是一个繁琐的过程。
还是看下面的操作吧,看到了吧,当填充掉子函数ReadFile时程序免杀了。
下面我们就来对它进行免杀处理~
用OllyDBG载入EXE文件,查找所有模块间的调用,查找ReadFile
一共有12处调用了ReadFile,
00401A3B
00401B2E
00401B69
00401BA2
00401BDB
00401C16
00401C51
00401C8C
00401CC7
00401D02
00401D7E
00401DE5
免杀的方法很简单,用C32Asm打开文件,用跳转法把这12处的CALL指令全部跳转到其它位置,
以第一处为例简单演示一下,00401A3B转换为物理地址为00000E3B,来到00000E3B处,
将这里的CALL指令跳走,再跳回来。为了节省动画时间,这里我就不作一一修改了,
给大家看一下,我修改的后的位置。
我们来查杀一下,已经免杀了,再来测试一下各项功能。
OK,全监控状态下无提示上线,功能无损。
教程下载地址:
|
|