学免杀的一些笔记(适合刚学免杀不会汇编的新手)

admin 2月前 99

替换汇编指令大集合

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 小<l>------------------DEC ESP大<L> 

PREFIX ADDRSIZE: 小<g> ----------------INC EDI 大<G>

================================================================= 

XCHG EAX,ESP -----------PUSHFD 

数据交换指令 XCHG 标志传送指令 PUSHF


最新回复 (0)
返回
发新帖