查看: 2384|回复: 4
收起左侧

[转帖] 小红伞对资源文件的查杀

[复制链接]
a445441
发表于 2011-7-25 09:36:28 | 显示全部楼层 |阅读模式
小红伞好像对Radasm编的程序很敏感,根据个人预测小红伞将持续保持对radasm编的程序的高误杀率,前提是使用radasm编的程序得包含二进制资源文件。

          根据个人测试,发现当使用radasm编的程序含有二进制资源文件时,即使你的整个程序的代码只有一个ret,照样会受到小红伞的残忍杀害,原因好像是在你的文件里发现了二进制资源文件,所以小红伞认为不用怀疑你就是病毒,呵呵,但是使用VC编译器时不会出现同样的情况,在同样包含二进制资源的情况下,不会受到小红伞的杀害,这个不知道小红伞是不是针对radasm的。。。。。

          那么怎么解决呢?不得不说radasm用起来很方便,难道只能编个不含资源 的文件吗?答:否也?当资源不是二进制的时候小红伞是不会杀的,但是问题又来了,我要包含的资源就是一个exe或dll文件,这个貌似无法改变啊,恩,解决的方法是把exe或dll文件中所有二进制的"'oo"换成其它的字符,那么替换完成后,整个exe或dll就好像成了一个很长的字符串,小红伞会认为这是一个字符串啊,不是二进制资源,貌似没有危险,就把你放过啦,呵呵,等你使用时候再把资源文件“解密”就可以使用了,什么是解密呢?就是再把替换成 的字符再换成“00”的,那么问题又来了,把oo替换成什么好呢?这个确实是个难点,恩,那就是你程序里面重头到尾都没有使用过的一个字节,那么问题依旧,我怎么知道那个没用过呢?,可以写个程序测试下,下面的程序用来查找没用的字符,找到后然后替换程序中的00字节:

.386
.model flat,stdcall
option casemap:none

include windows.inc
include user32.inc
include kernel32.inc
include advapi32.inc

     
includelib user32.lib
includelib kernel32.lib
includelib advapi32.lib
.data
        FileName   db 'ress.dll',0
          FileHwnd   dd ?
        Data       db 11,10,9,8
        ok         db 'ok',0
        hehe       dd ?
        g_FileHwnd dd 0
        g_MapHwnd dd 0
        g_Memory   dd 0
        SizeH      dd 0
        SizeL      dd 0
        Hwnd1      dd 0
        Hwnd2      dd 0
        Buffer     db 100 dup(0)
        Format     db '找到了没有用过的字符:%x,是否替换?',0
        my         db 'DeleteMz.exe',0
        i          db 0
        NoFind     db '没有找到',0
        FindByte   db 0
        ReplaceOk db '替换完毕',0
        g_RessDll db 'ress.dll',0
        g_ImeName db 'fime.ime',0
        PathFen db '\',0
.code
     
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 内存映射文件。后面分析PE文件结构。
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
MapImeFile      proc
        LOCAL   ImePath[1024]:byte

invoke CreateFile,offset FileName,GENERIC_READ or GENERIC_WRITE ,\
         FILE_SHARE_READ or FILE_SHARE_WRITE ,NULL,\
         OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL
.if     (eax!=INVALID_HANDLE_VALUE)
   mov     g_FileHwnd,eax
         invoke CreateFileMapping,g_FileHwnd,NULL,PAGE_READWRITE,0,0,NULL
         .if     (eax)
          mov     g_MapHwnd,eax
    invoke MapViewOfFile,g_MapHwnd,FILE_MAP_WRITE or FILE_MAP_READ,0,0,0
    .if     (eax)
     mov g_Memory,eax
     mov eax,1
     ret
    .endif
          .endif
.endif

mov     eax,0
ret
MapImeFile      endp
FindByteZero    proc
invoke GetFileSize,g_FileHwnd,offset hehe
mov     SizeL,eax
.while(i<0FFh)
                mov    ecx,SizeL
                mov    edx,g_Memory
                xor    ebx,ebx
         .while(ecx>0)
                mov al,byte ptr[edx]
                .if(al==i)
                   inc ebx
          .endif
          inc     edx
          dec     ecx
          .endw
          .if(ebx==0)
          movzx   eax,i
          ret
          .endif
          inc    i
         .endw
xor      eax,eax
ret

FindByteZero endp
start:
     
invoke MapImeFile
        .if(eax)
                invoke FindByteZero
                .if(eax)
                        mov     FindByte,al
                invoke wsprintf,offset Buffer,offset Format,eax
                invoke MessageBox,0,offset Buffer,0,0
                mov     ecx,SizeL
                        mov     edx,g_Memory
                        xor     ebx,ebx
                  .while(ecx>0)
                         mov al,byte ptr[edx]
                         .if(al==00h)
                          mov al,FindByte
                          mov byte ptr[edx],al
                   .endif
          inc     edx
          dec     ecx
                 .endw
                 invoke MessageBox,0,offset ReplaceOk,0,0
                .else
                        invoke MessageBox,0,offset NoFind,0,0
                .endif
                invoke UnmapViewOfFile,g_Memory
                invoke CloseHandle,g_FileHwnd
                invoke CloseHandle,g_MapHwnd
       .endif
       ret
end start

         程序粗糙点,懒惰改了,恩,找这个资料的人相信会马上明白了,解密不再多说,替换完后再去当成资源文件,那么编译成功后,小红伞不再查杀。。。。呵呵,也算一个临时解决方案吧。。。。

评分

参与人数 1人气 +1 收起 理由
listen1 + 1 感谢支持,欢迎常来: )

查看全部评分

追梦空间
发表于 2011-7-25 10:06:29 | 显示全部楼层
感谢分享,虽然不懂这些,编程不太懂
maomao110
发表于 2011-7-25 13:54:07 | 显示全部楼层
我只想说:楼楼好厉害
62998511
发表于 2011-7-25 18:08:23 | 显示全部楼层
还是不错的。支持
鬆哥
发表于 2011-7-25 22:49:44 | 显示全部楼层
我不懂这些,不过卡饭就是需要这些有专业知识的人来一起分享,感谢楼主
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-11-30 01:49 , Processed in 0.114931 second(s), 17 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表