注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

★ ★ ★ 卡多 - K.D

DELPHI

 
 
 

日志

 
 

个人免杀总结  

2011-01-01 10:35:24|  分类: ‖ 杂文 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
test eax,eax
je 0040Bxxx
将test eax,eax nop掉,改je为jb
或将两句nop掉

test eax,eax
jnz 0040Bxxx
将两句nop掉

TEST EAX,EAX-----改为AND EAX,EAX
JLE 1000BDB5

test esi, esi
jnz short 0042893E (定位在这里) jnz 改 ja


------------------------------------

mov ebx,0040Bxxx
mov ebp,eax
双mov可以上下调换

------------------------------------

未知标识符,16进制数前加0

------------------------------------

过360方法:用C32Asm改变释放目录或文件名

------------------------------------

00415B5F 0355 6E add edx, dword ptr [ebp+6E]
00415B62 69745F 44 6C6C4>imul esi, dword ptr [edi+ebx*2+44], 614D6C6C
00415B6A 696E 00 0000000>imul ebp, dword ptr [esi], 0
00415B71 00 00
00415B73 00 00
00415B75 00 00

考虑下移

------------------------------------

0区无法定位可执行文件数据的问题:
1.c32asm来解决,静态反汇编改特征
2.加一0区段,跨区段jmp跳,然后再新区段保存"所有修改",再回到原特征码处jmp,保存

------------------------------------

call 00415B5F
mov dword ptr ds:[4A699C],eax

call与mov结合可考虑上下调换

------------------------------------

imul dword ptr ds:[esi+78] 整数乘法运算寄存器esi+78
改为:
idiv dword ptr ds:[esi-78] 整数除法运算寄存器esi-78
------------------------------------

and eax,80000007
改为:
or eax,7FFFFFF9

用C32asm改,80000007为-80000007,C32asm会自动变为80000007的负数7FFFFFF9
------------------------------------
push ebp 可修改为 pop ebp
------------------------------------
je 等于则跳 改成 jle 也是等于则跳

这是瑞星的新把戏

------------------------------------
00436008 09C0 xor EAX,EAX
改为
00436008 09C0 OR EAX,EAX
------------------------------------
0049B478 6A 00 PUSH 0
改为
0049B478 > \6A 01 PUSH 1
------------------------------------
[特征] 0007BE04_00000002
LEA EAX,DWORD PTR SS:[EBP-17C]
我们可以修改这里
DWORD PTR SS:[EBP-17C]是代表一个值我们直接把那个值表示出来
因为没有lea eax,0012FE74这个指令的 我们可以改成mov eax,0012FE74 这样改就过了一个nop的位置了
我们可以把MOV EAX,12FE74向下移动一位 然后把je那句指令向下移动一个位置

[特征] 00082D82_00000002
MOV DWORD PTR SS:[EBP-4],EAX
MOV EAX,DWORD PTR SS:[EBP-4]

第一句是把DWORD PTR SS:[EBP-4]传送到eax里
第二句是把eax里DWORD PTR SS:[EBP-4]传送出来
这个2个指令是无意义的了 我们直接nop掉

特征码在 MOV DWORD PTR SS:[EBP-8],EDX 上面
我们可以向下移动一个或者几个位置 自己喜欢吧
[特征] 00083228_00000002
CMP AL,1
JNZ SHORT 3.00483E4B
cmp是比较 把al里的值跟1比较 然后在处理下面的jnz是跳还是不跳
我们可以改成这样
cmp al,0
je

------------------------------------
test esp,esp
JLE SHORT 006.004608CE

nop掉

-----------------------------------
OD中ctrl+B填00 00 00 ...搜索00区域
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
过nod32:

把定位的位置改到PE头以外,从代码段开始定位,MYCCL直接选择反向定位

结果一大部分都是和输入表函数关联着的JMP,到这里终于明白了以前为什么定位到的输入表特征,无论如何偏移都被查杀的原因了。。

因为无论你API位置如何地变化,这里对应的JMP还是直接关联API的,你偏移了API,这里的JMP位置始终没变,直接就能跳转到输入表函数上去,所以 NOD32只要把特征码定位到这

个地方,你无论怎么偏移都是没有效果的了
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
过金山清理专家,以DG远控为例;

在虚拟机测试了下,果真被查出可疑svchost启动项

接下来就是修改方法了:

原理很简单,给dll文件加版本

使用工具:Restorator 2006

我们先将data文件夹里的dll文件拿出来,算是备份吧

用Restorator打开dll文件

点击“资源”——“添加资源”——类型为“Windows标准资源”,“版本”


名称填入“1”即可,点击确定;

先不要急着保存,我们从system32目录中随便找个有版本的dll文件,例如6to4svc.dll;

照样用Restorator打开,将它的版本复制到木马的版本去

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
免杀技巧(挺不错的)
1. 遇到特征码定位在jmp指令上面的 构造替换 push xxxxx ret。
举例: jmp xxxxx 构造替换 push xxxxx ret
2. 遇到特征码定位在call指令上的。
举例: call xxxxx 构造替换: push @f jmp xxxxx @@: ;@@的标号表示的是你jmp xxxx指令后面的内存地址。 @f也就是引用@@ 的标号,所以此时@f这里填写的就是jmp xxxxx指令后面的内存地址。。
3. 遇到特征码定位在ret上
举例: ret 构造替换: jmp dword ptr [esp]
4. 遇到特征码定位在test eax, eax je xxxx or eax, eax, je xxxxx cmp eax, 0 jexxxxxx 举例: test eax, eax je xxxxxx 构造替换: xchg eax, ecx jecxz xxxxx
5. 遇到特征码定位在 push [xxxxxx]上的。
举例:push [xxxxx] 构造: 在其之前通过 xchg [xxxxxx], ebx 然后用寄存器传参: push ebx 最后在下面在通过xchg [xxxxxx], ebx 交换回来。

----------------------------------------------------------------
对于卡巴09,nod32定位在输入表上,一定要找出用到这个函数的 jmp指令 和一个call 这个jmp的指令,然后将jmp下面的mov eax,eax nop掉,下移 jmp一位,再改call xxxxxx ,将xxxxxx减一。

------------------------------------------------------------------
发现一条等价JNZ的新指令

一般改的话是jnz——ja

也可以改成jnz——jno
-------------------------------------------------------------------
对于金山定位在入口点附近,要么改一下附近代码,要么nop一段00区,在入口点附近捡几句进行跳转

把XOR EAX,[EAX]改为AND EAX,[EAX]或SUB EAX,EAX或NOP掉

---------------------------------------------------------------------
完美解决卡巴杀鸽子配置信息的方法

前提是你保证杀软杀在你生成的EXE文件配置信息上!

思路 将部分关键配置信息NOP掉,再在解密之前写进去!

方法如下图


39423941 44314631 30364343 32353537 39313232 43334236
30463134 41363031 部分配置信息16进制码
文件地址00054790 换算成 内存地址 00459590
MOV DWORD PTR DS:[00459590],41394239 提示:倒着写,别错了
MOV DWORD PTR DS:[00459590+4],31463144
MOV DWORD PTR DS:[00459590+4+4],....
MOV DWORD PTR DS:[00459590+4+4+4],......
以此类推..........
----------------------------------------------------------------------------
超简单搞定输出表(导出表)特征的方法:

加空函数

具体方法就是在导出表的“函数数量” 和“函数名数量”各+1


对付瑞星和金山乃至江民都是有用的
--------------------------------------------------------------------------
2008最新过NOD32杀毒方法

PCSHARE需要免杀PcInit.exe,PcMain.dll,PcHide.sys三个文件。

1.PcInit.exe

定位在00002254处,这是一处输入表函数,KERNEL32.dll。需要注意的是,输入表函数是不能改大小的。这个时候通常有两个思路:

第一就是保护输入表,用multiccl,设置保护区域,这样能在代码段找到2-3处特征码,只要改了这几处,即可免杀。之前我都是这么做的,需要改的较多,而且有时即使改了,比如用万能跳转法,NOD32还是给你揪出来,因为NOD32是启发式扫描,不管你JMP来JMP去,只要和这个KERNEL32.dll有关,NOD32照样杀,所以很让人头疼。这也是NOD32这款杀毒软件最牛的地方,有点智能的杀毒。

下面就要介绍第二个方法,很无敌,NOD32再怎么更新病毒库也杀不掉的方法~~~

踏破铁鞋无觅处,得来全不费工夫。。。只需要在KERNEL32.dll后面加上一个空格,就能过NOD32高级启发式扫描。用C32Asm打开,16进制编辑里面,空格的代码是"20",填上保存就OK了~NOD32专门追踪输入表,可是给它这么一换,它就真没辙了。


2.PcMain.dll

它也是定位在KERNEL32.dll这个函数上。这时你可能会急着也去加个空格,DLL文件可不吃这一套,怎么办呢?LordPE出场。用LordPE打开dll文件,找到它“子系统”那一项,编辑成"0000"也就是“未知”。就这么简单的一改,可以过NOD32高级启发式扫描。 3.jpg (74.84 KB)


3.PcHide.sys

这个sys的作用是隐藏端口,不是过主动,就是netstat -n差不出来。如果你觉得隐藏端口没必要,你完全不用理会这个驱动文件。

特征码在0000130A,也就是ntoskrnl.exe,内核函数,难怪~这时在后面加空格,可以免杀,但生成的服务端不能隐藏端口,也就是sys免杀失败。怎么办呢?还是LordPE。用LordPE打开sys文件,将区段数目一项多加1,NOD32就杀不出来了。


接下来就是做sys免杀,最最关键的一步:校检!驱动文件修改了后必须校检,否则是不能用的。不信你可以试试。LordPE帮你实现,点下旁边的"?"就可以.

------------------------------------------------------------------
thunk值修改方法

thunk 值 00051EAC
文件地址 0004C2AE
内存地址 008C1EAE

转移后函数文件地址-->内存地址-2,取后四位将这四位取代原thunk值的后四位

thunk=输入表RVA+这四位
------------------------------------------------------------------------
dd Zerver.00407CC4 为立即数,一般是地址,其它指令读取它,并跳到 00407CC4 去。

修改时改一下00407CC4附近代码

①移一下位 将 dd Zerver.00407CC4 改为dd Zerver.00407CC3

②修改00407CC4附近代码,上下移位.此时不改原立即数

-------------------------------------------------------------------------
我们只需要把定位的

位置改到PE头以外,从代码段开始定位,MYCCL直接选择反向
+++++++++++++++++++++++++++++++++++++++++++++++++++
1.加一个大小为30~50的区段
2.重建输入表
3.二次重建
4.FIX资源修复一下
5.NSpack
6.add eax,1全部改成sub eax,-1
7.将开始加的那个空区段全用33填充
8.改区段名为ASPack
OVER
过主动
++++++++++++++++++++++++++++++++++++++++++++++++++

改像HACK 资源名的方法: 先c32里面搜HACK,改一下。再在Res里面改成一样的名即可

++++++++++++++++++++++++++++++++++++++++++++++++++
CALL的免杀方法很多,,在做黑防原版的时候,针对CALL我是这样改~~~~
先看看CALL在那里,如果发现CALL的地址诸如
PUSH EAX
PUSH EBX
PUSH ECX
~~~~
可以把这3句NOP掉换成PUSHAD 当然下面的POP EAX POP EBX POP ECX也要NOP掉写成POPAD
PUSHAD只占一位 是不是又多出两位 PUSH放在最后一个NOP 修改上处CALL地址到PUSHAD不合格字符容许,你是不是也可以加
句垃圾指令.具体看自己发挥.
++++++++++++++++++++++++++++++++++++++++++++++++++++
把函数移位了在把后面的跟着的00该做随便一个数值就好了
++++++++++++++++++++++++++++++++++++++++++++++++++++
对于卡巴,在C32下十六进制改特征吗附近代码比较管,特别是00,90之类
  评论这张
 
阅读(313)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017