免杀整理.docx

上传人:b****0 文档编号:18103152 上传时间:2023-08-13 格式:DOCX 页数:22 大小:28.24KB
下载 相关 举报
免杀整理.docx_第1页
第1页 / 共22页
免杀整理.docx_第2页
第2页 / 共22页
免杀整理.docx_第3页
第3页 / 共22页
免杀整理.docx_第4页
第4页 / 共22页
免杀整理.docx_第5页
第5页 / 共22页
免杀整理.docx_第6页
第6页 / 共22页
免杀整理.docx_第7页
第7页 / 共22页
免杀整理.docx_第8页
第8页 / 共22页
免杀整理.docx_第9页
第9页 / 共22页
免杀整理.docx_第10页
第10页 / 共22页
免杀整理.docx_第11页
第11页 / 共22页
免杀整理.docx_第12页
第12页 / 共22页
免杀整理.docx_第13页
第13页 / 共22页
免杀整理.docx_第14页
第14页 / 共22页
免杀整理.docx_第15页
第15页 / 共22页
免杀整理.docx_第16页
第16页 / 共22页
免杀整理.docx_第17页
第17页 / 共22页
免杀整理.docx_第18页
第18页 / 共22页
免杀整理.docx_第19页
第19页 / 共22页
免杀整理.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

免杀整理.docx

《免杀整理.docx》由会员分享,可在线阅读,更多相关《免杀整理.docx(22页珍藏版)》请在冰点文库上搜索。

免杀整理.docx

免杀整理

NO.1基础特征修改方法

先讲讲介绍点常见的指令

cmpa,b比较a和b大小意思(cmp是英文compare比较的意思)

mova,b把b的值传送给a(mov是英文move移动的意思)

nop(nooperation)意思是什么事都没做(donothing)常用的修改指令

call调用子程序

pop出栈

push压栈

跳的分几种:

je或jz若相等则跳

jne或jnz若不相等则跳

jmp无条件跳转

jb若小于则跳

ja若大于则跳

jg若大于则跳

jge若大于等于则跳

jl若小于则跳

jle若小于等于则跳

ADD加法.

ADC带进位加法.

INC加1.

SUB减法.

SBB带借位减法.

DEC减1.

AND与运算.

OR或运算.

XOR异或运算.

NOT取反.

TEST测试.

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

基础的修改特征码方法

(1)载入c32或者winhex

方法一:

修改特征码的十六进制

修改方法:

把特征码所对应的十六进制改成数字+1或者减1

举例:

载入c32或者winhex输入跳转OFFSET地址定位到的特征码在80的0闪烁可以把0改成1即81

方法二:

大小写

修改方法:

特征码所对应的内容是字符串的,大小字互换.

举例:

大小写间差20

(2)下面是OD载入的分析

方法三:

替换法

修改方法:

特征码所对应的汇编指令替换成相同或相似的.

举例:

jnz换成JMP.

方法四:

顺序调换法

修改方法:

特征码对应的指令顺序互换一下.

举例:

00851A97MOVESI,ECX

00851A98MOVEDI,0

可以换位00851A97MOVEDI,0

00851A98MOVESI,ECX

方法五:

JMP法

修改方法:

把特征码移到零区域,然后一个JMP又跳回来执行.

方法六:

移位法

修改方法:

把定位到函数的特征码复制然后NOP找到0区域写入刚NOP代码然后JMP回到原来NOP的

下面一个地址然后lordpe修改相应函数的地址

举例:

文件PE头移位

NO.2六大常用免杀法

一.入口点加1免杀法:

1.用到工具PEditor

2.特点:

非常简单实用,但有时还会被卡巴查杀

3.操作要点:

用PEditor打开无壳木马程序,把原入口点加1即可

二.变化入口地址免杀法:

1.用到工具:

OllyDbg,PEditor

2.特点:

操作也比较容易,而且免杀效果比入口点加1点要佳.

3.操作要点:

用OD载入无壳的木马程序,把入口点的前二句移到零区域去执行,然后又跳回到入口点的下面第三句继续执行.最后用PEditor把入口点改成零区域的地址.

三.加花指令法免杀法:

1.用到工具:

OllyDbg,PEditor

2.特点:

免杀通用性非常好,加了花指令后,就基本达到大量杀毒软件的免杀.

3.操作要点:

用OD打开无壳的木马程序,找到零区域,把我们准备好的花指令填进去填好后又跳回到入口点,保存好后,再用PEditor把入口点改成零区域处填入花指令的着地址.

四.加壳或加伪装壳免杀法:

1.用到工具:

一些冷门壳,或加伪装壳的工具,比如木马彩衣等.

2.特点:

操作简单化,但免杀的时间不长,可能很快被杀,也很难躲过卡巴的追杀

3.操作要点:

为了达到更好的免杀效果可采用多重加壳,或加了壳后在加伪装壳的免杀效果更佳

五.打乱壳的头文件或壳中加花免杀法:

1.用到工具:

秘密行动,UPX加壳工具.

2.特点:

操作也是傻瓜化,免杀效果也正当不错,特别对卡巴的免杀效果非常好

3.操作要点:

首先一定要把没加过壳的木马程序用UPX加层壳,然后用秘密行动这款工具中的SCramble功能进行把UPX壳的头文件打乱,从而达到免杀效果.

六.修改文件特征码免杀法:

1.用到工具:

特征码定位器,OllyDbg

2.特点:

操作较复杂,要定位修改一系列过程,而且只针对每种杀毒软件的免杀,要达到多种杀毒软件的免杀,必需修改各种杀毒软件的特征码.但免杀效果好

NO.3免杀技术汇总

一.机械码,又称机器码.

ultraedit打开,编辑exe文件时你会看到

许许多多的由0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F组成的数码,这些数码

就是机器码.

修改程序时必须通过修改机器码来修改exe文件.

二.需要熟练掌握的全部汇编知识(只有这么多)

不大容易理解,可先强行背住,混个脸儿熟,以后慢慢的就理解了

cmpa,b比较a与b

mova,b把b的值送给a

ret返回主程序

nop无作用,英文“nooperation”的简写,意思是“donothing”(机器码90)

(解释:

ultraedit打开编辑exe文件时你看到90,等同于汇编语句nop)

call调用子程序

je或jz若相等则跳(机器码74或0F84)

jne或jnz若不相等则跳(机器码75或0F85)

jmp无条件跳(机器码EB)

jb若小于则跳

ja若大于则跳

jg若大于则跳

jge若大于等于则跳

jl若小于则跳

jle若小于等于则跳

pop出栈

push压栈

三.常见修改(机器码)

74=>7574=>9074=>EB

75=>7475=>9075=>EB

jnz->nop

75->90(相应的机器码修改)

jnz->jmp

75->EB(相应的机器码修改)

jnz->jz

75->74(正常)0F85->0F84(特殊情况下,有时,相应的机器码修改)

四.两种不同情况的不同改方法

1.修改为jmp

je(jne,jz,jnz)=>jmp相应的机器码EB(出错信息向上找到的第一个跳转)jmp的作用是绝对跳,无条件跳,从而跳过下面的出错信息

xxxxxxxxxxxx出错信息,例如:

注册码不对,sorry,未注册版不能...,"FunctionNotAvaibleinDemo"或"CommandNotAvaible"或

"Can’tsaveinShareware/Demo"等(我们希望把它跳过,不让它出现)

xxxxxxxxxxxx正确路线所在

2.修改为nop

je(jne,jz,jnz)=>nop相应的机器码90(正确信息向上找到的第一个跳转)nop的作用是抹掉这个跳转,使这个跳转无效,失去作用,从而使

程序顺利来到紧跟其后的正确信息处

xxxxxxxxxxxx正确信息,例如:

注册成功,谢谢您的支持等(我们希望它不被跳过,让它出现,程序一定要顺利来到这里)

xxxxxxxxxxxx出错信息(我们希望不要跳到这里,不让它出现)它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.

1.通用数据传送指令.

MOV传送字或字节.

MOVSX先符号扩展,再传送.

MOVZX先零扩展,再传送.

PUSH把字压入堆栈.

POP把字弹出堆栈.

PUSHA把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.

POPA把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.

PUSHAD把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈.

POPAD把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.

BSWAP交换32位寄存器里字节的顺序

XCHG交换字或字节.(至少有一个操作数为寄存器,段寄存器不可作为操作数)

CMPXCHG比较并交换操作数.(第二个操作数必须为累加器AL/AX/EAX)

XADD先交换再累加.(结果在第一个操作数里)

XLAT字节查表转换.

──BX指向一张256字节的表的起点,AL为表的索引值(0-255,即

0-FFH);返回AL为查表结果.([BX+AL]->AL)

2.输入输出端口传送指令.

INI/O端口输入.(语法:

IN累加器,{端口号│DX})

OUTI/O端口输出.(语法:

OUT{端口号│DX},累加器)

输入输出端口由立即方式指定时,其范围是0-255;由寄存器DX指定时,

其范围是0-65535.

3.目的地址传送指令.

LEA装入有效地址.

例:

LEADX,string;把偏移地址存到DX.

LDS传送目标指针,把指针内容装入DS.

例:

LDSSI,string;把段地址:

偏移地址存到DS:

SI.

LES传送目标指针,把指针内容装入ES.

例:

LESDI,string;把段地址:

偏移地址存到ESI.

LFS传送目标指针,把指针内容装入FS.

例:

LFSDI,string;把段地址:

偏移地址存到FSI.

LGS传送目标指针,把指针内容装入GS.

例:

LGSDI,string;把段地址:

偏移地址存到GSI.

LSS传送目标指针,把指针内容装入SS.

例:

LSSDI,string;把段地址:

偏移地址存到SSI.

4.标志传送指令.

LAHF标志寄存器传送,把标志装入AH.

SAHF标志寄存器传送,把AH内容装入标志寄存器.

PUSHF标志入栈.

POPF标志出栈.

PUSHD32位标志入栈.

POPD32位标志出栈.

二、算术运算指令

───────────────────────────────────────

ADD加法.

ADC带进位加法.

INC加1.

AAA加法的ASCII码调整.

DAA加法的十进制调整.

SUB减法.

SBB带借位减法.

DEC减1.

NEC求反(以0减之).

CMP比较.(两操作数作减法,仅修改标志位,不回送结果).

AAS减法的ASCII码调整.

DAS减法的十进制调整.

MUL无符号乘法.

IMUL整数乘法.

以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算),

AAM乘法的ASCII码调整.

DIV无符号除法.

IDIV整数除法.

以上两条,结果回送:

商回送AL,余数回送AH,(字节运算);

或商回送AX,余数回送DX,(字运算).

AAD除法的ASCII码调整.

CBW字节转换为字.(把AL中字节的符号扩展到AH中去)

CWD字转换为双字.(把AX中的字的符号扩展到DX中去)

CWDE字转换为双字.(把AX中的字符号扩展到EAX中去)

CDQ双字扩展.(把EAX中的字的符号扩展到EDX中去)

三、逻辑运算指令

AND与运算.

or或运算.

XOR异或运算.

NOT取反.

TEST测试.(两操作数作与运算,仅修改标志位,不回送结果).

SHL逻辑左移.

SAL算术左移.(=SHL)

SHR逻辑右移.

SAR算术右移.(=SHR)

ROL循环左移.

ROR循环右移.

RCL通过进位的循环左移.

RCR通过进位的循环右移.

以上八种移位指令,其移位次数可达255次.

移位一次时,可直接用操作码.如SHLAX,1.

移位>1次时,则由寄存器CL给出移位次数.

如MOVCL,04

SHLAX,CL

四、串指令

DS:

SI源串段寄存器:

源串变址.

ESI目标串段寄存器:

目标串变址.

CX重复次数计数器.

AL/AX扫描值.

D标志0表示重复操作中SI和DI应自动增量;1表示应自动减量.

Z标志用来控制扫描或比较操作的结束.

MOVS串传送.

(MOVSB传送字符.MOVSW传送字.MOVSD传送双字.)

CMPS串比较.

(CMPSB比较字符.CMPSW比较字.)

SCAS串扫描.

把AL或AX的内容与目标串作比较,比较结果反映在标志位.

LODS装入串.

把源串中的元素(字或字节)逐一装入AL或AX中.

(LODSB传送字符.LODSW传送字.LODSD传送双字.)

STOS保存串.

是LODS的逆过程.

REP当CX/ECX<>0时重复.

REPE/REPZ当ZF=1或比较结果相等,且CX/ECX<>0时重复.

REPNE/REPNZ当ZF=0或比较结果不相等,且CX/ECX<>0时重复.

REPC当CF=1且CX/ECX<>0时重复.

REPNC当CF=0且CX/ECX<>0时重复.

五、程序转移指令

1>无条件转移指令(长转移)

JMP无条件转移指令

CALL过程调用

RET/RETF过程返回.

2>条件转移指令(短转移,-128到+127的距离内)

(当且仅当(SFXOROF)=1时,OP1JA/JNBE不小于或不等于时转移.

JAE/JNB大于或等于转移.

JB/JNAE小于转移.

JBE/JNA小于或等于转移.

以上四条,测试无符号整数运算的结果(标志C和Z).

JG/JNLE大于转移.

JGE/JNL大于或等于转移.

JL/JNGE小于转移.

JLE/JNG小于或等于转移.

以上四条,测试带符号整数运算的结果(标志S,O和Z).

JE/JZ等于转移.

JNE/JNZ不等于时转移.

JC有进位时转移.

JNC无进位时转移.

JNO不溢出时转移.

JNP/JPO奇偶性为奇数时转移.

JNS符号位为"0"时转移.

JO溢出转移.

JP/JPE奇偶性为偶数时转移.

JS符号位为"1"时转移.

3>循环控制指令(短转移)

LOOPCX不为零时循环.

LOOPE/LOOPZCX不为零且标志Z=1时循环.

LOOPNE/LOOPNZCX不为零且标志Z=0时循环.

JCXZCX为零时转移.

JECXZECX为零时转移.

4>中断指令

INT中断指令

INTO溢出中断

IRET中断返回

5>处理器控制指令

HLT处理器暂停,直到出现中断或复位信号才继续.

WAIT当芯片引线TEST为高电平时使CPU进入等待状态.

ESC转换到外处理器.

LOCK封锁总线.

NOP空操作.

STC置进位标志位.

CLC清进位标志位.

CMC进位标志取反.

STD置方向标志位.

CLD清方向标志位.

STI置中断允许位.

CLI清中断允许位.

六、伪指令

DW定义字(2字节).

PROC定义过程.

ENDP过程结束.

SEGMENT定义段.

ASSUME建立段寄存器寻址.

ENDS段结束.

END程序结束

NO.4免杀原理九步过

免杀的原理大全一、工具

mycll:

特征码定位

PEID:

查壳工具

PEditor:

入口点修改工具加花

c32asm

ollybg

oc:

文件地址到内存地址的换算

resscope:

资源编辑

zeroadd:

加区段的

木马采衣:

加花

maskpe,vmprotect:

加密

upx,aspack北斗壳:

压缩

免疫007:

免疫器

二、效果分析

1、加密:

vmprotectv1.21和MASKPE2.0(对瑞星有特效),比较容易过瑞星表面,不能过卡巴

压缩:

北斗,UPX:

主要是减少体积

加花:

对卡巴有特效,通用性比较好

2、北斗+VMpro,但是北斗+maskpe出错!

无壳木马可以先加花

3、无壳木马直接用maskPE22.0可过瑞星表面但是过不了卡巴。

4、无壳木马加一道花指令后再用VMPRO1.21加密可直接过卡巴但是可能无法过瑞星表面

5、经过免杀处理,过几种杀毒软件,加压缩壳后仍免杀过他们,但是北斗除外,棉纱处理国卡巴的木马北斗后可能被卡巴杀

6、测试操作

1)手工加花+掘北压缩,鸽子

先脱壳,在用OD在零区域添加指令(根据字节编写):

先找原入口点,零区域,记录其地址(新入口点),指令pusheaxpopeaxaddesp1incesppush004A1E48retn保存。

用PE修改入口点。

能过卡巴,过不了瑞星。

用掘北(对瑞星表面有特效)

2)工具加花(花蝴蝶三号)+VMPRO+UPX。

捆绑器

三、手工加花方法

1、直接:

OD,记录入口点;找零区域,复制地址(新入口);写指令:

push0nopaddesp2incespincesppushexppopesppush原入口点retn改入口点(新)(lordpe);可以把这段代码保存为二进制以后方便用。

2、去头:

复制头,并去掉,填加到空白区域(新地址);再填加花指令。

3、加区:

zeroadd加区段,大小一般100左右;OD打开文件,用ALT+M打开内存景象,复制区段入口地址和原程序入口,到区段加花,程序入口地址不变;lordpe修改入口为区段的入口。

4、壳中:

UPX压缩;OD打开,记录壳的入口(即原入口);记录零区域地址(新入口)加花(有的壳不能写入,或保存后不能运行);LORDPE改入口。

5、壳中加区:

UPX;zeroadd加区;OD,记录壳后入口,ALT+M记录区段入口,在区段里加花;改地址。

四、编写花指令

1、相关汇编(王国军汇编64讲,汇编指令查询器)

2、花指令变形修改(用花蝴蝶三号给程序加花,OD打开)

1)替换法:

把moveax程序.地址jmpeax改为push地址retn

2)添加法:

在花指令的上面把nop换成pusheaxpopeax

3)移位法:

在花指令里把pusheaxmovexxxxxxxxxpopeax换成popeaxmovexxxxxxxxxpusheax

4)去除法:

在花指令里把pusheaxmovexxxxxxxxxpopeax换成nopmovexxxxxxxxxnop

5)以上4种方法可综合利用

3、编写技巧:

入口地址最好是:

push地址retn的形式或jb入口地址jnb入口地址或moveax入口地址jmpeax,而不是jmp入口地址,因为容易被卡巴查杀。

五、myccl地位原理与使用介绍

1、基本原则:

开始位置为代码段的其实地址,风乱长度为物理长度,定位一般选复合定位,正向之程序从上到下恢复,定位内存特征码的时候用到后缀。

对体积比较大(10005000K)的程序分块个数可少点,第一次一般10快,定位大致位置后可分非50100块(建议不超过200);体积比较小的程序分块可大点,定位的时间就少。

2、定位黑防鸽子的瑞星文件特征码:

用myccl检测出来以后要用C32打开文件把检测出来的数据段填0后用瑞星检测。

3、定位鸽子的瑞星内存特征码:

要在上步以后用。

1)TK.loader和myccl放在同一目录,tk.loader用来加载木马到内存。

myccl参数与上同,另外加上后缀。

2)点生成,在目录路径上右键用TK.loader带开目录,全部载入内存,用瑞星杀。

3)记录被杀文件名,手工删除。

重复上步。

4)定位好以后,用C32ASM打开已免杀的程序,把定位好的内存特征码全部填0,用OD载入,用瑞星查,测试定位是否正确。

4、技巧总结:

muccl定位文件特征码效率不错,但是定位内存特征码相对比较慢,而有时候对dll文件内存定位不理想,这时候可以用OD手工定位。

六、免杀工具的组合运用

1、工具回顾:

加压缩壳一减少体积为住,部分可过瑞星表面;加密与其他方法组合使用效果较好,一般可过瑞星表面;加花免杀卡巴效果好多,对不常见的黑软这中方法的马杀通用性比较好。

2、工具组合要领:

可以对无壳程序直接加密也可在无壳木马加花后再加密;一般在其他免杀工作做好以后加压缩壳;加花可以对无壳,加密后的和加壳的软件做。

3、实例

1)、超级加花器V1.0(最后一个选项)+VMPRITECTV1.21

2)、maskPE2.0+upx+加区加花:

mask选import;花指令为pushebxpopebxpushebxpopebxincecxdececxjb原入口jnb原入口,lordpe改入口

3)、maskPE2.0加密(鸽子):

找零区域(00482274即新入口),写入jmp原入口;用lordpe改入口;加密(import).

4、工具组合经验:

找特效工具组合,如maskpe对瑞星表面,加花对卡巴,加掘北也对瑞星比较好(加花后不能用maskpe)。

黑防鸽子棉纱花指令后再用MASKPE,将不能正确运行,但是可直接向上找5字节零区域直接写jimp入口地址,然后改入口,再用mask加密,就可运行并免杀。

七、PE头反调试

PE头的修改步骤:

用C32ASM打开目标,计算PEheader的大小(“?

”)记录PE头开始地址,把计算出大小的区块向上复制,则PE头增大,将其HEX大小写入(”?

“),修改PE头的开始地址。

八、免杀新技术(改壳免杀法)

1、改壳特征码:

研究的人少,特征码单一,不脱壳做免杀方便简单,对于放DLL文件类型的木马一定要先脱壳,到处DLL文件分别做免杀。

2、步骤:

用myccl定位加壳软件,用偏移量转换器OC查看特征码地址的内存地址,用跳转法修改。

3、技巧:

用UPX压缩过的木马程序,有两处跳转都是卡巴的特征码,只要修改任一出都可达到免杀,第一处是离入口点的一处JMP跳转,第二出是最末尾的一处JMP,所一可以直接找到用UPX压缩过的任何木马,可以不用定位。

木马复杂的特征码修改经过UPX压缩后就变的简单化。

写花指令的时候找一些比较小的零区域,用一句话花指令等方法,效果不错,这些区域一般写入花指令用maskpe加密以后程序就回出错,但是用一句话花指令或去头免杀法,然后在用maskpe加密,程序不会出错(黑防鸽子的实验结论)。

4、UPX壳的几种免杀方法。

卡巴查到鸽子的一个固定地址是一个固定跳转时,就认为是木马。

若跳转下面有空为则可用:

替换,移位(把”特征代码下移),变换修改,修改头法(把头转移到空白区域再跳到第二句,修改入口),加壳加花。

5、北斗壳的几种免杀。

北斗兼容性好,压缩率高,但是有些本来免杀的软件,被北斗压缩后可能被卡巴查杀。

写花指令(免卡巴),用VMPROTECT加密可过瑞星表面。

polycryptpe也能免杀瑞星表面,007加密可阻止瑞星内存扫描。

6、很多查毒软件只查壳的头

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2