nchack007 发表于 2009-11-15 16:47:04

【无特征码免杀教程】采用反调试技术免杀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的免杀教程

nod32free 发表于 2009-12-23 11:45:59

学习了。。。。。。

yunixiangyi 发表于 2010-2-8 04:03:19

没弄明白

q3711758 发表于 2010-2-8 11:34:17

大家互相学习嘻嘻
页: [1]
查看完整版本: 【无特征码免杀教程】采用反调试技术免杀NOD32