[汇编] 免杀常用等价替换汇编指令修改方法

我新来的发点东西。。。


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 


=============================================================================
B开头
=============================================================================




=============================================================================
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 

call 改 jmp



============================================================================
D开头
============================================================================
DAA 组合的十进制加法调整指令 --------DAS   减法的十进制调整.




===========================================================================
E开头
===========================================================================



===========================================================================
F开头
===========================================================================


===========================================================================
G开头
===========================================================================

===========================================================================
H开头
===========================================================================



===========================================================================
I开头
===========================================================================




===========================================================================
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

===========================================================================
K开头
===========================================================================



===========================================================================
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] 

===========================================================================
N开头
===========================================================================


===========================================================================
O开头
===========================================================================



===========================================================================
P开头
===========================================================================
push   改call
PUSH EBX PUSH EDI 
PUSH ESI PUSH EAX 
PUSH EDI PUSH ESI
PUSH EAX PUSH EBX 
pop 改 nop
===========================================================================
R开头
===========================================================================
遇到return 改下面的代码
===========================================================================
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 

===========================================================================
U开头
===========================================================================


===========================================================================
V开头
===========================================================================


===========================================================================
W开头
===========================================================================


===========================================================================
X开头
===========================================================================
xor 改sub
XOR     [EAX],AL-------改--------MOV     [EAX],AL 
XOR EAX,EAX-----改-------OR EAX,EAX 

===========================================================================
Y开头
===========================================================================

===========================================================================
Z开头
===========================================================================





===========================================================================
其他
-------------------------------------------------- 
修改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 小<l>------------------DEC ESP大<L> 
PREFIX ADDRSIZE: 小<g> ----------------INC EDI 大<G>

================================================================= 
XCHG EAX,ESP -----------PUSHFD 
数据交换指令 XCHG       标志传送指令 PUSHF

猜你喜欢

转载自blog.csdn.net/s98/article/details/17440411