(一)、免杀应注意的事项:
  1.免杀的测试(在线杀毒、杀毒软件上报、世界反毒网:http://www.virustotal.com/zh-cn/) 在这里我建议大家不要上传自己的马到这样的网站上去.一上传不要多久就会被杀了.大家还是把杀软装在自己的电脑,然后测试比较好.

  2.一个好的免杀***要过文件、内存、行为、主动防御等一些专杀软件.

  3.目前一些常用的杀软有:

Ahnlab V3:韩国安博士
AntiVir:德国小红伞
Authentium:来自美国佛罗里达州
Avast:捷克Alwil公司
AVG:是新公司(Grisoft——捷克)给ewido 4.0起的新名字
BitDefender:来自罗马尼亚的老牌杀毒软件(世界排名第一)
CAT-QuickHeal:印度杀软
ClamAV:Unix系统的杀毒工具
DrWeb:大蜘蛛来自俄罗斯
eSafe:Aladdin Knowledge Systems公司
eTrust-Vet:CA(Computer Associates)公司
Ewido:雅豆来自德国
FileAdvisor:未知
Fortinet:美国飞塔有限公司
F-Port:冰岛杀毒软件
F-Secure:芬兰著名安全机构F-Secure新版安全产品Internet Security 2007,奥地利反病毒软件
Ikarus:奥地利反病毒软件
Kaspersky:来自俄罗斯著名数据安全厂商Kaspersky Labs
McAfee:美国制造
Microsoft:美国微软
NOD32V2:来自德国
Norman:挪威防毒软件
Panda:西班牙的熊猫
Prevx1:英国著名的反间谍软件
Rising:中国瑞星
Sophos:英国杀软
Sunbelt:被评为全球三大反间谍软件
Symantec:赛门铁克的诺顿(公司总部设在美国加州)
TheHacker:未知
vba32:白俄罗斯超强启发式杀毒软件
VirusBuster:驱逐舰有防毒精灵
Webwasher-Gateway:美国杀毒软件,双引擎

(二)、杀软杀毒的原理

1.杀毒软件的工作流程

对于一款杀毒软件来说,一次成功的病毒查杀过程,通常都要经历病毒识别、病毒报警、病毒清除、文件或系统复原这几个过程。各个过程中又运用了很多复杂的技术,但其中最关键的应该是杀毒引擎技术,从广义上来讲,是指通过文件、网页监视等实时监控行为,运用文件识别技术来完成病毒扫描、识别、报警以及清除,甚至防御的一整套的机制,因此引擎技术也决定了杀毒软件的优劣,而引擎所包含的众多技术中,病毒识别技术又是重中之重。

2.必不可少的认壳过程

病毒、***加壳已经是非常普遍的现象了,目前主要有两种脱壳技术:算法认壳和动态认壳,目前主流的杀毒软件都引入了虚拟机技术,虽然这会占用一定的系统资源,但使带壳的病毒文件,运行于虚拟机之上,不仅可以更好的识别各种壳,还可以有效防止病毒真正的感染文件。

算法认壳:此法是根据加壳程序的解密算法对病毒进行认壳,虽然有速度快、消耗资源少的优点,但也有无法认变形壳的缺点。不过,很多杀毒软件还是能够向用户发出警报,以弥补无法认壳的缺憾。

动态认壳:众所周知,只有让加过壳的程序运行起来,才能将其还原成本来的面目,此时为了避免程序运行后真正感染系统文件,因此引入了虚拟机技术,为带壳的病毒程序虚拟一个计算机环境,使它运行于虚拟环境。此法虽优势明显,但也会消耗很多的系统资源,因此拥有一套自己的、成熟的虚拟机技术,将大大提高检测的速度。

3.识别病毒的几种方法

如何识别病毒,对于任何杀毒软件来说,都是非常重要,同时也是非常核心的工作。识别病毒的能力,往往决定了这款杀毒软件的病毒查杀能力,若连病毒都无法识别,当然也就不能对病毒作出妥当的处理。检测病毒方法通常有:特征代码法、校验和法、行为监测法、软件模拟法几种,各安全厂商会衡量不同方法之间的查杀效果、运行开销等因素,再结合自身的技术特点,选择相应的病毒识别方法。这里只介绍各种方法的优缺点,对于具体的实现步骤,已经超出了“菜鸟”的范畴。

特征代码法:这种方法根据正常程序与病毒程序代码的差别来识别病毒文件。有人认为,对于已知病毒来说,这种方法是最简单、最直接的方法,这种方法的优、缺点都很突出。

优点:检测的准确率较高,误报率低。

缺点:查杀速度慢,由于已知病毒越来越多,因此病毒特征码也随之增加,因此查杀速度也会越来越慢。不能检测未知病毒和多态性病毒以及隐蔽性病毒。另外这种检测方法也不适合网络版杀毒软件采用,因为它会消耗我们宝贵的网络资源。

校验和法:此法计算文件的校验和(只要知道是一种算法就可以了)并保存,可定期或调用文件时进行对比,从而判断文件是否被病毒感染。虽然此法可以发现未知病毒,但由于其较高的误报率,已经逐渐不被采用。

优点:可发现未知病毒。

缺点:无法报出病毒名称,误报率高,当软件更新,口令修改或修改文件内容时,校验和法都可能会误报,因为这种方法无法区分文件内容的变化是不是属于正常的程序使用引起的。

行为监测法:此法根据病毒的行为特征来识别病毒,这需要对病毒行为进行详细的分类和研究,分析那些病毒共同的行为,以及正常程序的罕见行为,根据程序运行时的行为进行病毒判断和预警。

优点:由于其归纳和总结各种病毒的共同特征,因此可以发现未知病毒,对于多数未知病毒预报非常有效。

缺点:对于未知行为病毒,不能有效检测,同时也存在误报现象,对查到的未知病毒,不能识别病毒名称,因此普通用户不能对发现的未知病毒进行有效的清除。

软件模拟法:这种方法通过模拟病毒运行的方式来检测病毒特征,由于特征码法无法检测多态性病毒,虽然行为监测法可以发现病毒,但是无法确定病毒名称,也无法对其进行相应的杀除,因此产生了软件模拟法。

优点:可识别未知病毒,病毒定位准确,误报率低。

缺点:检测速度受到一定影响,消耗系统资源较高。

上述几种检测方法各有所长,往往都不能单纯使用一种方法完成大规模病毒的检测报警工作,通常都是几种技术相结合,根据实际情况和应用场合配合运用相应的检测手段。

4.未来之路

目前,虚拟机、实时监控、主动防御等技术均已经渐渐成为主流。除此之外,还有两种处于试验阶段的新技术,分别是智能码标识技术和行为拦截技术
智能码标识技术:这种技术如同给各种程序分配一个可以对其进行唯一识别的ID,这样对付那些非法的***、后门等程序就变得简单了很多,即使是文件或程序遭到病毒感染,杀毒软件也可以根据那一串智能识别码对其进行拦截和阻击。目前,此项技术还处于理论阶段,还没有哪个安全公司的产品中已经包含了此技术的模块。

行为拦截技术:从概念上来说,这优点类似主动防御的概念。这里的行为拦截指的是即时的监控执行应用程序行为,并且拦截显示恶意的程序活动。如果有必要,甚至可以对系统的API进行阻挡,但同时也表现出来一定的负面影响,如果错误的拦截了合法程序的正常执行行为,将导致系统运行的异常,轻则系统的某些功能无法使用,重则引起系统的瘫痪,对于那些对于操作系统知之甚少的用户来说,这一点尤为突出。虽然目前很多软件(如:NOD32、 AVAST等)都已经开始尝试使用这种技术,但很有很多内容需要研究。

(三)、杀毒软件常见的查杀分类
1、文件查杀
  是我们的病毒特征码与杀毒软件中的病毒库中的代码来进行比较,如果病毒库中有相同的特征码,就会认为这个是病毒特征码--通俗一点讲,比如你身上一个特征   它就会认识到这个特征就是你了 。所以,对于这样的查杀模式。我们只要改变特征码杀毒软件就会不认识了。
2、内存查杀 瑞星、金山    
  其实内存查杀也是通过特征码的,和文件查杀基本上一样,一个区别就是它是通过内存特征码来查杀的。
3、行为查杀   东方微点主动防御  瑞星主动防御
  是通过判断程序的动作来进行定义,如果程序对某个地方进行动作就会被认为是病毒了。比如对灰鸽子做内存免杀后,发现能过。但是一运行就会被报毒,

4、特征码定义以及分类
 
杀毒软件在对文件进行查杀的时候。会挑选文件内部的一句或者几句代码来作为它识别病毒的方式。这种代码就叫做病毒的特征码。如果我们将这个代码变更或者修改。就会使得杀毒软件对其无法查杀。也就达到我们免杀的效果。

特征码主要分为:文件特征码,内存特征码,行为特征码

单一特征码,复合特征码

单一特征码

  单一特征码就是说,一个程序中的几句代码被杀毒软件做为识别标志。修改掉一处就可以免杀。

复合特征码

  一个程序中的多句代码被杀毒软件作为识别标志。有一处不修改都不能免杀。

(四)、免杀常用名词的解释

1、免杀是什么。
例如:修改入口点、加壳加花伪装、加密,手工加花,定位特征码,修改特征码

免杀技术的分类
杀软查杀的方式:文件查杀、内存查杀、行为查杀
免杀手段:加壳免杀、加花免杀、修改特征码修改免杀。

2.加壳免杀
     在好莱坞间谍电影里,那些特工们往往以神奇莫测的化妆来欺骗别人,甚至变换成另一个身份,国内对于这种伪装行为有个通俗的说法——“穿马甲”。而这种正与邪的争斗已经延伸到了软件领域,很多软件作者通过给软件“穿马甲”、甚至穿多个“马甲”的方式,躲避杀毒软件的查杀,这种技术就是“加壳”。

3 加花免杀
 
  什么是花指令?实际上,把它按照“乱指令”来理解可能更贴切一些。我们知道,汇编语言其实就是机器指令的符号化,从某种程度上看,它只是更容易理解一点的机器指令而已。每一条汇编语句,在汇编时,都会根据cpu特定的指令符号表将汇编指令翻译成二进制代码。而日常应用中,我们通过VC的IDE或其它如OD等反汇编、反编译软件也可以将一个二进制程序反汇编成汇编代码。机器的一般格式为:指令+数据。而反汇编的大致过程是:首先会确定指令开始的首地址,然后根据这个指令字判断是哪个汇编语句,然后再将后面的数据反汇编出来。由此,我们可以看到,在这一步的反汇编过程中存在漏洞:如果有人故意将错误的机器指令放在了错误的位置,那反汇编时,就有可能连同后面的数据一起错误地反汇编出来,这样,我们看到的就可能是一个错误的反汇编代码。这就是“花指令”,简而言之,花指令是利用了反汇编时单纯根据机器指令字来决定反汇编结果的漏洞。使得杀毒软件不能正常的判断病毒文件的构造。说通俗点就是“杀毒软件是从头到脚按顺序来查找病毒。如果我们把病毒的头和脚颠倒位置。杀毒软件就找不到病毒了”

4 修改特征码免杀

因为杀毒软件查杀就是自己的病毒库和***的特征码对比,如果相同的话就判断它是***,当然我们只要改掉这些代码就可以免杀了。这就是修改特征码免杀。

5.汇编指令说明
汇编语言指令集



1.算术运算符

ADC:带进位加法
ADD:二进制数加法
DEC:减一
DIV:无符号数除法
IDIV:带符号数(整数)除法
IMUL:带符号数(整数)乘法
INC:加一
MUL:无符号书乘法
NEG:求补
SBB:带借位减法
SUB:二进制减法
XADD:交换并相加


2.ASCII-BCD转换

AAA:加后ASCII调整
AAD:除前ASCII调整
AAM:乘后ASCII调整
AAC:减后ASCII调整
DAA:加后十进制调整
DAS:减后十进制调整


3.移位

RCL:带进位循环左移
RCR:带进位循环右移
ROL:循环左移
ROR:循环右移
SAL:算术左移
SAR:算术右移
SHL:逻辑左移
SHR:逻辑右移
SHLD:双精度左移
SHRD:双精度右移


4.比较

BSF/BSR:位扫描
BT/BTC/BR/BB:位测试
CMP:比较
CMPSN:串比较
CMPXCHG:比较交换
CMPXCHG8B:比较并换?lt;br>TEST:测试位


5.数据传送

LDS:装如数据段寄存器
LEA:装入有效地址
LES:装入附加段寄存器
LODS:从串取
LSS:装入堆栈段寄存器
MOV:传送数据
MOVS:串传送
MOVSX:带符号扩展传送
MOVZX:带零扩展传送
STOS:存入串
XCHG:交换
XLAT:换码


6.标志操作

CLC:清除位标志
CLD:清除方向标志
CLI:清除中断标志
CMC:进位标志求反
LAHF:标志送AH
POPF:标志出栈
PUSHF:标志进栈
SAHF:AH送标志寄存器
STC:进位标志置1
CTD:方向标志置1
STI:中断标志置1


7.输入/输出

IN:输入字节或字
INSN:串输入
OUT:输出字节或字
OUTSN:穿输出


8.逻辑操作

AND:逻辑与
NOT:逻辑非
OR:逻辑或
XOR:异或


9.循环

LOOP:循环直到完成
LOOPE:相等时循环
LOOPZ:为零是循环
LOOPNE:不相等时循环
LOOPPNZ:不为零是循环
LOOPPNEW:不相等时循环
LOOPNZW:不为零时循环


10.处理器控制

HLT:进入暂停状态
LOCK:封锁总线
NOP:无操作
WAIT:置处理器于等待状态


11.堆栈操作

ENTER:建立堆栈帧
LEAVE:结束堆栈帧
POP:字出栈
POPF:标志出栈
POPA:所有通用寄存器出栈
PUSH:字进栈
PUSHA:所有通用积存器进栈
PUSHF:标志进栈


12.串操作

CMPS:串比较
LODS:从串取
MOVS:串传送
REP:串重复
REPE:相等时重复
REPZ:为零时重复
REPNE:不相等时重复
REPNZ:不为零时重复
SCAS:串扫描
STDS:存入串


13.转移(条件)

INT溢出中断
JA:高于则转移
JAE:高于或等于则转移
JB:低于则转移
JBE:低于或等于则转移
JC:进位为1则转移
JCXZ:CX为零则转移
JE:相等则转移
JG:大于则转移
JGE:大于或等于则转移
JL:小于则转移
JLE:小于或等于
JNC:进位为零则转移
JNE:不相等则转移
JNG:不大于则转移
JNGE:不大于或等于则转移
JNL:不小于则转移
JNLE:不小于或等于则转移
JNA:不高于则转移
JNB:不低于则转移
JNBE:不低于或等于则转移
JNAE:不高于或等于则转移
JN不溢出则转移
JNP:奇偶位为0则转移
JNZ:结果不为零则转移
JNS:结果为正则转移
J若溢出则转移
JP:奇偶位为1则转移
JPE:奇偶性为偶则转移
JP奇偶性为奇则转移
JS:结果为负则转移
JZ:结果为零则转移


14.转移(无条件)

CALL:调用过程
INT:中断
IRET:中断返回
JMP:无条件转移
RET:返回
RETN/RETF:近返回/远返回


15.类型转换

CBW:字节转换为字
CDQ:双字转换为四字
CWD:字转换为双字
CWDE:字转换为扩展的双字



(五)、免杀常用工具
OllyICE
LordPE
PEiD
MYCLL
Restorator 2007
multiCCL

(六)、研究新的免杀技术
1.掌握免杀的原理:
如今外面的教程大多只讲方法,不讲原理,导致不能灵活的运用免杀技术.从而缺乏新免杀技术的研究能力.


2.只讲操作,不讲免杀原理:使看教程的菜鸟朋友,只会照抄照搬,缺乏技术的研究能力.

3.技术含量低,方法简单,免杀效果差: 一般都以加密和加壳组合为主.

4.免杀时间短:公布的免杀方法,能活多久,相信大家都清楚.

5.一种免杀方法被公布,意味着,这种免杀方法的失效。
免杀道路路漫漫其修远兮...加油...