修改技术总结(图片详解)
图片:
图片:
图片:
图片:
图片:
图片:
来自猴岛论坛 :bbs.houdao/r3581857_u10470282/
图片:
图片:
图片:
本文来自猴岛论坛 :bbs.houdao/r3581857_u10470282/相关文章: 
会编程的进来看下!!!!(易语言)
电脑版评选热心会员及置顶帖的奖励活动(第一期)
台湾**被黑 著名红客单恋一支花再次出手(速度围观)
原创!!!小H独家制作一键破解收费软件(傻瓜版) 只要你会用鼠标就能学的会!——By丶小H 希望大家支持
灰鸽子2.03(无DAT)版
特征码修改技术总结
如今杀软的升级,他们的性能越来越强大,查杀力度和广度都大幅度提高,启发式杀毒的日益完善,使免杀工作越来越困难。杀软在进步我们小黑也不能落其后啊,我们必须努力掌握最新的免杀技巧和动向,同时也不能一步登天的忘了我们的基础。而传统的特征码差杀,杀软依然在使用。因此要想使我们的木马文件不被查杀,修改文件特征码也是一种常用的方法,今天就以特征码修改技术给大家做一个总结,献给支持和关心暗组的朋友,也献给免杀初学者和即将要学习免杀的朋友,本人能力有限,错误之处请大家指出,我们共同学习进步…
一. 什么是“特征码”
我们从字面意思上看,就是具有一定特点或特征的一串字符…而这串字符就是被杀软定义一文件是否是病毒的依据..
然而稍微专业点就是程序运行时,在内存中为完成特定的动作,要有特殊的指令,一个程序在运行时,同一内存地址的指令是相同的同一个程序中,一段连续的地址(它的指令相同),那么我截取这段地址,就可以判断它是不是这个程序。为了防止出现病毒的误查杀,可以提取出多段特征码。这也就是我们所说的复合特征码.
A. 特征码主要又分为:文件特征码,内存特征码,行为特征码,(主动特征码,如瑞星)
B. 同时,又分为:单一特征码和复合特征码;
单一特征码就是说,一个程序中的几句代码被杀毒软件做为识别标志。修改掉一处就可以免杀。
复合特征码:一个程序中的多句代码被杀毒软件作为识别标志。有一处不修改都不能免杀。
二. 修改特征码免杀技术
修改特征码技术,是以杀软查杀特点得来的。杀软会用它们的特征库(也就是我们说的病毒库)和我们的文件某些字符作对比,如果彼此吻和,就定义为我们的文件为木马病毒。同时,我们只要修改了它定义出的文件特征码,这样会出现什么情况呢,不用说那就是我们所说的免杀,也就是用修改特征码技术来达到我们文件的免杀.
三. 分析文件特征码
我们要使一个木马文件免杀就要修改它的特征码,但这些特征码我们如何得来。这就
说到了我们特征码分析,也就是我们所说的特征码定位。而定位的工具有很多,常见也是大家都觉得好用的有(CCL MYCCL multiCCL等).这就不具体说明,我们重点是特征码修改.
四. 修改特征码常用工具
) ) 辅助:
PEID 汇编指令查询器(可以很好的帮助我们在修改特征码过程中遇到不认识的汇编指令时,我们可以用它来查询,了解相关功能)(如下图)
五. 修改特征码基础汇编指令
到了这里眼看就要修改了做免杀了。大家别急,有句话说的好:“巧妇难为无米之炊”。
也就是说,我们现在有了好的工具但是你会用吗?如果回答是否定的,那一切还是等于零。工具的使用我这里就不说了,暗组论坛自己搜,NEW4写的OD使用说明就很不错,大家可以看看。好了,我们言归正传。修改特征码需要具备基本的汇编知识,不懂没关系,只要你肯学肯记,不需要你对汇编了解太深,只要记住常见的指令和它们的作用。大家请注意,这步
是学习免杀即修改特征码最关键的一步,这步学习的好坏,决定你以后修改特征码技术的高低…这里我给大家列出我们必须去掌握的一些指令,希望大家下来好好背记…
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:字转换为扩展的双字
大家不要怕辛苦,在你要动摇的时候,你就想想自己做出自己的免杀那种成就是多么开心。。免杀需要我们的坚持和不断创新,它的乐趣在于挑战…希望大家努力而不放弃…
六. 修改文件特征码
终于我们开始修改了,也恭喜你经过了无聊和乏味的时期,现在是我们创造奇迹的时候了。特征码定位出来之后,就是我们修改的过程。只有这样才能达到躲过杀软查杀的目的。修改文件特征码的方法有很多。如:替换法,填充法,大小写转换法,通用跳转法等。今天就给大家一一道来….
1. 排序法(就是我们说的上下互换法)
在我做免杀的过程中,上下互换我发现很重要也是很有效的办法,但是没有一个方法是完美的,上下互换也不能保证100%的成功率,不过它的通用率在90%..好了,我们具体说明一下。
例如:1 2 3 4 5 都分别代表一汇编指令,而其中 3 就是被杀软定义为病毒特征。我们要做的就是打乱它的顺序,让杀软无法辨别。修改后成:1 3 2 4 5 或 1 2 4 3 5 在不影响程序运行
前提下,到相应的互换法.我们实例说明…
如图选定的MOV XXXXXX 我们可以和PUSH XXXXX 上下互换 或者MOV XXXX 和下面的MOV XXX互换,从而达到免杀…一般情况下双MOV都可以互换,如图 CALL XXXX 也可以和下面PUSH XXXXX互换…但有时候的CALL是不能乱换的,这里就需要大家给汇编知识的了解,和自己的经验了…这个方法没什么技术含量,需要的是你下来多多练习,做多了自然掌握…
2. 替换法
替换法就是同等指令或者使用功能相同的代码之间的替换.就像5-5=0 而1-1也=0他们最终的结果和功能上都是一样的,在程序里这种我们可以相互替换,不会影响程序的运行。替换法就是程序灵活性的体现,一种功能,程序可以有N种方法表达出来。所以大家必须掌握我们常用的汇编指令,从而替换法将会简单如一。下来我们实例说明。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。