文档库 最新最全的文档下载
当前位置:文档库 › 常用汇编替代

常用汇编替代

MOV-CMP(有时候可以替换)
MOV EAX,7-SUB EAX,7
ADD-ADC(有时候可以替换)
SUB-SBB(有时候可以替换)
TEST-AND
XOR-OR
OR-XOR
LEA-SUB
CMP-SUB
把OUT 换为OUTSB或OUTSW或OUTSD
xor eax,eax
xor eax,eax
改成
xor eax,eax
or eax,eax

有时候可以批量替换
在C32里面搜索33 c0 33 c0
替换成33 c0 09 c0
全部替换有时候都不会出问题.而且免杀效果也还可以.

Test eax,eax
JE XXXXXXXXX
改成
AND EAX,EAX
JE XXXXXXXXX

有时候也可以批量替换
把85 C0 74替换成 21 C0 74

还有你也可以参考这个帖:https://www.wendangku.net/doc/419911804.html,/view/8d890dc66137ee06eff91883.html

建议还是先学好汇编再弄免杀吧,这样才不会盲目,不然技术用远不会有提高~免杀本身就很灵活,其实不难,只要你懂代码...



..这个不是C32,而是OD,这种改法是有一定的局限性的,改时一定要根据上下文理性地去改,要不然运气很重要。

A开头
============================================================================
add 改adc
ADD 改ADC
ADD 1 改 sub -1
add dword ptr ss:[ebp-130],edx ---------adc dword ptr ss:[ebp-130],edx
ADD [EAX],CH----------------------------ADD [EAX],DH
ADD [EAX],BH 0038 ----------------------ADD [EAX+40],AL 0040 40
ADD [EAX+EAX*2+46],AL ------------------ADD [EAX+EAX*2+46],CL
ADD [EAX+40],DL 0050 40 ----------------0058 40 ADD [EAX+40],DL
ADD AH,CH 00EC -------------------------00F4 ADD AH,DH
add dword ptr ss:[ebp-130],edx -------- adc dword ptr ss:[ebp-130],edx
C开头
============================================================================
CMP 改SUB
call 复件_(4).004CF607 ----------------- push 复件_(4).004CF607
CMP DWORD PTR DS:[100170A4],0 -------------sub DWORD PTR DS:[100170A4],0
CALL ---------看到了CALL跟随进去看NOP就可以把CALL的地址该成NOP
方法2--看下附近有没有MOV修该成NOP看下可以免杀不。可以的话该XOR
方法3--看附近jnz跳转该下跳转的地址/可免杀不/
CALL EAX |CALL EBX
比效指令 CMP:看下是个比效指令 在看下JNZ条件转移指令
就是说CMP比效正确就跳那我们可以把CMP用NOP掉在把JNZ该成JMP
不进行CMP比效
CMP ESI,1
JNZ SHORT VVV.1000D793
============================================================================
D开头
============================================================================
DAA 组合的十进制加法调整指令 --------DAS 减法的十进制调整.
===========================================================================
J开头
===========================================================================
JE 改 JNB
JNZ 改 JNL
jnz 改 JB
JE 改 JNA
je 改 jb
jnz 改 jg
js 改 jp
je 改 jle
jnz 改 jle
je 改 jge
JE 改 jnz
JE 改 JB
JNS

改 POP ECX
JNS 改 jnc-jnb
JNB 改 JGE
jnb short fsg2_0.0040015D----------------ja short fsg2_0.0040015D
JMP NEAR [1071c]---------------------JMP NEAR [1071B]
jnz--je-jmp修改中要看下跳的地址是不是很重要说明[1]
JNZ 00874E85--MOV EAX,88B6D0 可以是该成JE 00874E85--MOV EAX,88B6D0
===========================================================================
L开头
===========================================================================
LEA EBP,[ESP+10] 改 LEA EBP,[ESP+10]
==========================================================================
M开头
===========================================================================
MOVSX 改 MOVZX
MOV EBP,ESP 改 AND AH,CH
MOV [EBP-18],ESP 改 MOV [EBP-18],AH
MOV EAX,[ESP+10] 改 MOV EAX,[ESP+10]
MOV [ESP+10],EBP 改 MOV [ESP+10],EBP
mov [ebp-256], eax 改 adc [ebp-226], eax
MOV EDI,[EBP+10] 改 MOV EDI,[EBP+11]
MOV EBX,DWORD PTR DS:[ESI] 改 XOR EBX,DWORD PTR DS:[ESI]
MOV EBP,ESP--------AND AH,CH
MOV EBX,DWORD PTR DS:[ESI]---------XOR EBX,DWORD PTR DS:[ESI]
==========================================================================
===========================================================================
P开头
===========================================================================
push 改call
PUSH EBX PUSH EDI
PUSH ESI PUSH EAX
PUSH EDI PUSH ESI
PUSH EAX PUSH EBX
===========================================================================
S开头
===========================================================================
sbb 改adc
sub 改mov
SHL 改 SAL
SAR 改 SHR
sub ebp,7---------- add ebp,-7
sub ebx,eax----------sbb esi,ecx
SBB ECX,DWORD PTR DS:[ESI+2]----------ADC ECX,DWORD PTR DS:[ESI+2]
PUSH EAX 改 PUSH EBX
SUB ESP,EAX 改 SUB ESP,EAX
PUSH EBX 改 PUSH EDI
PUSH ESI 改 PUSH EAX
PUSH EDI 改 PUSH ESI
sub ebx,eax----------sbb esi,ecx

==========================================================================
T开头
===========================================================================
TEST ESI,ESI-------改------- AND ESI,ESI
===========================================================================
X开头
===========================================================================
xor 改sub
XOR [EAX],AL-------改--------MOV [EAX],AL

XOR EAX,EAX-----改-------OR EAX,EAX

===========================================================================
其他
--------------------------------------------------
修改jd改为JG还可以看下JB一般都是2个字节,2进制看下
ascll吗,基本上

还可以修改大小的,还有的是看下跳转
jb-------------jg
-----------------------------------------------
CALL ---------看到了CALL跟随进去看NOP就可以把CALL的地址该成NOP
方法2--看下附近有没有MOV修该成NOP看下可以免杀不。可以的话该XOR
方法3--看附近jnz跳转该下跳转的地址/可免杀不/
JNZ 00874E85---PUSH DWORD PTR DS:[88F658]
PUSH下面MOV ECX,88C0AC就可以JNZ该到MOV连接
------------------------------------------------------------

-----------------------------------------------------------
005E 01 ADD BYTE PTR DS:[ESI+1],BL 修改方法
006E 01 ADD BYTE PTR DS:[ESI+1],CH 这样的成功机会不大看运气
------------------------------------------------------------
修改这样的命令要看下 1071C的地址,有没有,可以修改的
本身怎个命令是不可以修改的
JMP DWORD PTR DS:[1071C]----DS:[1071b]
还可以看下上下有没有空的代码来换下位置
------------------------------------------------------------
看下面的命令 观察上下的指令来修改|
CALL EAX |CALL EBX
MOV DWORD PTR SS:[EBP-1C],EAX |MOV DWORD PTR SS:[EBP-1C],EBX
---------------------------------------------------------------
比效指令 CMP:看下是个比效指令 在看下JNZ条件转移指令
就是说CMP比效正确就跳那我们可以把CMP用NOP掉在把JNZ该成JMP
不进行CMP比效
CMP ESI,1
JNZ SHORT VVV.1000D793
---------------------------------------------------------------
看下MOV数据传送指令 很明白就是将ESI给ESP+14
那看下JE跳下去的指令XOR AL,AL没有用可以NOP掉
MOV [ESP+14],ESI
JE 1000A74B 跳转去下个指令XOR AL,AL
修改成
MOV ESP,ESI
ADD ESP,14
----------------------------------------------------------------
LEA有效地址传送指令,遇到这样的指令不要该他可能会不能运行
LEA ECX,[ESP+10]
修改思路可以看下,上面的指令,如下
MOV EAX,DWORD PTR DS:[EBX]
CMP EAX,-1
JE 100017E9 到达的就是LEA ECX,[ESP+10]
上面可以看出是一系列的比对指令,最后LEA地址传
可以把MOV CMP JE 三个比对NOP掉在把LEA写到MOV CMP JE地址上,在用
JMP跳到下个指令运行
----------------------------------------------------------------
修改大小写在汇编里的变化
------------------------------------------------------------
INS BYTE PTR ES:[EDI],DX 小------------------DEC ESP大
PREFIX ADDRSIZE: 小 ----------------INC EDI 大


这只是特征码改,免杀不会很久,得加工一下,给几个反调试,加密代码,自己灵活运用,灵活灵活灵活.....

加密代码

pushad
mov bx,sys.起始地址
mov ecx ,大小 十六进制/4
xor byte ptr ds:[ebx],乱写
inc ebx
loopd short sys.33那一句的地址

popad

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

004C2043 > 60 pushad
004C2044 E8 00000000 call hacksky.004C2049 下一句地址
004C2049 58 pop eax
004C204A 2D 49204C00 sub eax,hacksky.004C2049 上一句地址 ; ASCII "X-I L"
004C204F 50 push eax
004C2050 B9 F70A0000 mov ecx,0AF7 ---加密大小 (字节处以4) ; 大小有问题
004C2055 BB 00304A00 mov ebx,hacksky.004A3000 加密其实位置
004C205A 031C24 add ebx,dword ptr ss:[esp]
004C205D 8B03 mov eax,dword ptr ds:[ebx] ; 密钥随便
004C205F 35 11110000 xor eax,1111 ---密钥随便换
004C2064 8903 mov dword ptr ds:[ebx],eax
004C2066 83C3 04 add ebx,4
004C2069 ^ E2 F2 loopd short hacksky.004C205D 跳到密钥
004C206B 58 pop eax
004C206C 61 popad
004C206D ^ EB 9A jmp short hacksky.004C2009 跳到入口点


60 E8 00 00 00 00 58 2D 49 20 4C 00 50 B9 F7 0A 00 00 BB 00 30 4A 00 03 1C 24 8B 03 35 11 11 00
00 89 03 83 C3 04 E2 F2 58 61 EB 9A

------------------------
反调试

8D 6C 01 00 8B 45 90 0F 84 00 00 00 00 85 C0 0F 84 E0 A7 4C 00


lea ebp,dword ptr ds:[ecx+eax]
mov eax,dword ptr ss:[ebp-70]
je sys.下一句的地址
test eax,eax
je 12212121 可以乱写
call 尽量不要jmp 也就是跑回原入口点

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

相关文档