【无特征码免杀教程】采用反调试技术免杀NOD32
以下内容为jgaoabc的免杀教程:我前面做了个教程《【无特征码免杀教程】反调试技术的运用》,没几天NOD32和瑞星都开始追杀了,没办法,只好继续琢磨。瑞星还好过,碰到NOD32就怎么也过不了,通过一段时间的研究,我发现对付NOD32最好的方法还是采用反调试技术。
记得在暗组曾有人发表过二句经典的过NOD32的汇编语句,在程序头上加上后(当然最好采用加壳改壳过的),NOD32就变成了哑巴,主要的特征是NOD32扫描时间很短,1秒不到就结束扫描返回结果,就好象NOD32的虚拟执行扫描机制被破坏了一样。虽然现在这二句已经失效了,但是给了我思路,破坏NOD32的虚拟执行扫描机制就可以过NOD32。
顺着我前面教程的思路继续往下研究,看了很多关于反调试的文章,特别是这一篇给我启发很大《【原创】反调试技巧总结-原理和实现》(http://bbs.pediy.com/showthread.php?t=70470)。里面介绍了当觉察调试器或者杀毒软件在调试或者扫描程序时,如何采用各种手段引导程序到错误的位置,而不是继续让调试器或者杀毒软件按照程序正常的流程执行,从而避免木马程序被查杀。
我们来看一段很简单的过NOD32的反调试语句,这几句汇编现在可以过NOD32。
00401000 >64:A1 30000000 mov eax,dword ptr fs:
00401006 8B40 18 mov eax,dword ptr ds:
00401009 8B40 0C mov eax,dword ptr ds:
0040100C 83F8 02 cmp eax,2
0040100F- 0F84 E11B0600 je 入口点
00401015 C3 retn
在OD里按F7单步走,程序被引导到RETN位置,对应的ESP堆栈里如下:
0012FFC4 7C816FE7 返回到 kernel32.7C816FE7
顺着走,程序就退出了,这个是在调试器里执行的情况,而在没有调试器时是会跳到入口点的。这个就没办法演示啦。
我们来操作下。我用北斗压缩下服务端,改下壳以便放入反调试代码,北斗壳入口点到输入表尾部之间的代码是没有用的,我们正好可以利用。添加好改下入口点。测试上线。我们看下NOD32免杀效果,看NOD32基本没扫描就退出扫描,扫描在0秒完成。
我做了不少采用反调试技术过NOD32的代码,效果都很好。那些都比较复杂。就不介绍了。呵呵。
欢迎讨论。
以上内容为jgaoabc的免杀教程 学习了。。。。。。 没弄明白 大家互相学习嘻嘻
页:
[1]