一.加花指令。可以通过OD之类的软件修改你的软件的入口地址,加上花指令就可以了。下面是搜索到的常用花指令,直接复制过来的可能有重复。你可以试试,如果不够或不准确的话,你也可以自己搜索以下,当然你会汇编的话也可以写。
1.伪装vc++5.0代码:
PUSH EBP
MOV EBP,ESP
PUSH -1
push 111111 -\___
PUSH 111111 -/ 在这段代码中类似这样的 *** 作数可以乱填
MOV EAX,DWORD PTR FS:[0]
PUSH EAX
MOV DWORD PTR FS:[0],ESP
ADD ESP,-6C
PUSH EBX
PUSH ESI
PUSH EDI
nop
jmp 原入口地址
************************************************************************
2.胡乱跳转代码:
push ebp
mov ebp,esp
inc ecx
push edx
ADD ESP,-6C
nop
pop edx
dec ecx
pop ebp
ADD ESP,6C
inc ecx
loop somewhere /跳转到上面那段代码地址去!
somewhere:
nop /"胡乱"跳转的开始...
jmp 下一个jmp的地址 /在附近随意跳
jmp ... /...
jmp 原入口地址 /跳到原始oep
************************************************************************
3.伪装c++代码:
push eax
mov ebp,esp
push -1
push 111111
push 111111
mov eax,fs:[0]
push eax
mov fs:[0],esp
pop eax
mov fs:[0],eax
pop eax
pop eax
pop eax
pop eax
mov ebp,eax
nop
nop
jmp 原入口地址
************************************************************************
4.伪装Microsoft Visual C++ 6.0代码:
PUSH -1
PUSH 0
PUSH 0
MOV EAX,DWORD PTR FS:[0]
PUSH EAX
MOV DWORD PTR FS:[0],ESP
SUB ESP,1
PUSH EBX
PUSH ESI
PUSH EDI
POP EAX
POP EAX
nop
POP EAX
nop
ADD ESP,1
POP EAX
MOV DWORD PTR FS:[0],EAX
POP EAX
POP EAX
nop
POP EAX
nop
POP EAX
MOV EBP,EAX
JMP 原入口地址
************************************************************************
5.伪装防杀精灵一号防杀代码:
push ebp
mov ebp,esp
push -1
push 666666
push 888888
mov eax,dword ptr fs:[0]
nop
mov dword ptr fs:[0],esp
nop
mov dword ptr fs:[0],eax
pop eax
pop eax
pop eax
pop eax
mov ebp,eax
jmp 原入口地址
************************************************************************
6.伪装防杀精灵二号防杀代码:
push ebp
mov ebp,esp
push -1
push 0
push 0
mov eax,dword ptr fs:[0]
push eax
mov dword ptr fs:[0],esp
sub esp,68
push ebx
push esi
push edi
pop eax
pop eax
pop eax
add esp,68
pop eax
mov dword ptr fs:[0],eax
pop eax
pop eax
pop eax
pop eax
mov ebp,eax
jmp 原入口地址
************************************************************************
7.伪装木马彩衣(无限复活袍)代码:
PUSH EBP
MOV EBP,ESP
PUSH -1
push 415448 -\___
PUSH 4021A8 -/ 在这段代码中类似这样的 *** 作数可以乱填
MOV EAX,DWORD PTR FS:[0]
PUSH EAX
MOV DWORD PTR FS:[0],ESP
ADD ESP,-6C
PUSH EBX
PUSH ESI
PUSH EDI
ADD BYTE PTR DS:[EAX],AL /这条指令可以不要!
jo 原入口地址
jno 原入口地址
call 下一地址
************************************************************************
8.伪装木马彩衣(虾米披风)代码:
push ebp
nop
nop
mov ebp,esp
inc ecx
nop
push edx
nop
nop
pop edx
nop
pop ebp
inc ecx
loop somewhere /跳转到下面那段代码地址去!
someshere:
nop /"胡乱"跳转的开始...
jmp 下一个jmp的地址 /在附近随意跳
jmp ... /...
jmp 原入口的地址 /跳到原始oep
************************************************************************
9.伪装花花添加器(神话)代码:-----------根据C++改
nop
nop
nop
mov ebp,esp
push -1
push 111111
push 222222
mov eax,dword ptr fs:[0]
push eax
mov dword ptr fs:[0],esp
pop eax
mov dword ptr fs:[0],eax
pop eax
pop eax
pop eax
pop eax
mov ebp,eax
mov eax,原入口地址
push eax
retn
************************************************************************
10.伪装花花添加器(无极)代码:
nop
mov ebp, esp
push -1
push 0A2C2A
push 0D9038
mov eax, fs:[0]
push eax
mov fs:[0], esp
pop eax
mov fs:[0], eax
pop eax
pop eax
pop eax
pop eax
mov ebp, eax
mov eax, 原入口地址
jmp eax
************************************************************************
11.伪装花花添加器(金刚)代码:--------根据VC++5.0改
nop
nop
mov ebp, esp
push -1
push 415448
push 4021A8
mov eax, fs:[0]
push eax
mov fs:[0], esp
add esp, -6C
push ebx
push esi
push edi
add [eax], al
mov eax,原入口地址
jmp eax
************************************************************************
12.伪装花花添加器(杀破浪)代码:
nop
mov ebp, esp
push -1
push 0
push 0
mov eax, fs:[0]
push eax
mov fs:[0], esp
sub esp, 68
push ebx
push esi
push edi
pop eax
pop eax
pop eax
add esp, 68
pop eax
mov fs:[0], eax
pop eax
pop eax
pop eax
pop eax
mov ebp, eax
mov eax, 原入口地址
jmp eax
************************************************************************
12.伪装花花添加器(痴情大圣)代码:
nop
..........省略N行nop
nop
push ebp
mov ebp, esp
add esp, -0C
add esp, 0C
mov eax, 原入口地址
push eax
retn
************************************************************************
13.伪装花花添加器(如果*爱)代码:
nop
........省略N行nop
nop
push ebp
mov ebp, esp
inc ecx
push edx
nop
pop edx
dec ecx
pop ebp
inc ecx
mov eax, 原入口地址
jmp eax
************************************************************************
14.伪装PEtite 2.2 ->Ian Luck代码:
mov eax,0040E000
push 004153F3
push dword ptr fs:[0]
mov dword ptr fs:[0],esp
pushfw
pushad
push eax
xor ebx,ebx
pop eax
popad
popfw
pop dword ptr fs:[0]
pop eax
jmp 原入口地址 '执行到程序的原有OEP
************************************************************************
15.无效PE文件代码:
push ebp
mov ebp,esp
inc ecx
push edx
nop
pop edx
dec ecx
pop ebp
inc ecx
MOV DWORD PTR FS:[0],EAX \
POP EAX |
POP EAX \
MOV DWORD PTR FS:[0],EAX |(注意了。。花指令)
POP EAX /
POP EAX |
MOV DWORD PTR FS:[0],EAX /
loop 原入口地址
************************************************************************
16.伪装防杀精灵终极防杀代码:
push ebp
mov ebp,esp
add esp,-0C
add esp,0C
push eax
jmp 原入口地址
************************************************************************
17.伪装木马彩衣(金色鱼锦衣)花代码
push ebp
mov ebp,esp
add esp,-0C
add esp,0C
mov eax,原入口地址
push eax
retn
************************************************************************
18.
在mov ebp,eax
后面加上
PUSH EAX
POP EAX
************************************************************************
19.伪装UPX花指令代码:
pushad
mov esi,m.0044D000
lea edi,dword ptr ds:[esi+FFFB4000]
push edi
or ebp,FFFFFFFF
jmp short m.00477F2A
************************************************************************
20.
push ebp
mov ebp,esp
inc ecx
push edx
pop edx
dec ecx
pop ebp
inc ecx
jmp 原入口
21、
push ebp
nop
nop
mov ebp,esp
inc ecx
nop
push edx
nop
nop
pop edx
nop
pop ebp
inc ecx
loop A1地址
nop
nop
A1:push ebp
mov ebp,esp
jo 原入口
jno 原入口
************************************************************************
【深层】伪装 WCRT Library (Visual C++) DLL Method 1 ->Jibz
黑吧代码 + 汇编代码:
使用黑吧粘贴以下代码:
55 8B EC 83 7D 0C 01 75 41 A1 C0 30 00 10 85 C0 74 0A FF D0 85 C0 75 04 6A FE EB 17 68 0C 30 00 10 68 08 30 00 10 E8 89 00 00 00 85 C0 59 59 74 08 6A FD FF 15 08 20 00 10 68 04 30 00 10 68 00 30 00 10 E8 52 00 00 00 59 59
粘贴完毕后,再添加2行汇编语句:
jmp 原入口地址 '执行到程序的原有OEP
retn 0C
************************************************************************
发布几个不常见的花指令
B1 01 mov cl,1
2C 90 sub al,90
95 xchg eax,ebp
4D dec ebp
65:42 inc edx
40 inc eax
20C4 and ah,al
8350 06 6E adc dword ptr ds:[eax+6],6E
226A E4 and ch,byte ptr ds:[edx-1C]
E8 B15FBC5B call 入口点
55 push ebp
8BEC mov ebp,esp
51 push ecx
53 push ebx
8BD8 mov ebx,eax
8BC3 mov eax,ebx
04 9F add al,9F
2C 1A sub al,1A
73 03 jnb 入口点
JMP SHORT test.00414FB5 (EB 01)
NOP
JMP SHORT test.00414FB8 (EB 01)
NOP
JMP SHORT test.00414FBB (EB 01)
NOP
JMP test. (EB 01)
90=c4
PUSH EBP
MOVE EBP,ESP
inc ecx
push eax
pop eax
push edx
pop edx
dec ecx
sub eax,-2
ADD ESP,68
DEC eax
DEC eax
SUB ESP,68
JPE 入口
JPO 入口
2008-6-13 11:30 dazy
花指令合集(0608)
【深层】伪装 PEtite 2.2 ->Ian Luck 汇编代码:
============================
伪装代码部分:
============================
mov eax,0040E000
push 004153F3
push dword ptr fs:[0]
mov dword ptr fs:[0],esp
pushfw
pushad
push eax
xor ebx,ebx
pop eax
popad
popfw
pop dword ptr fs:[0]
pop eax
jmp XXXXXXXX '执行到程序的原有OEP
============================
【深层】伪装 WCRT Library (Visual C++) DLL Method 1 ->Jibz 二进制代码 + 汇编代码:
============================
伪装代码部分:
============================
使用二进制粘贴以下代码:
55 8B EC 83 7D 0C 01 75 41 A1 C0 30 00 10 85 C0 74 0A FF D0 85 C0 75 04 6A FE EB 17 68 0C 30 00 10 68 08 30 00 10 E8 89 00 00 00 85 C0 59 59 74 08 6A FD FF 15 08 20 00 10 68 04 30 00 10 68 00 30 00 10 E8 52 00 00 00 59 59
粘贴完毕后,再添加2行汇编语句:
jmp XXXXXXXX '执行到程序的原有OEP
retn 0C
1。伪装 vc
VC++程序的入口代码:
PUSH EBP
MOV EBP,ESP
PUSH -1
push 415448 -\___
PUSH 4021A8 -/ 在这段代码中类似这样的 *** 作数可以乱填
MOV EAX,DWORD PTR FS:[0]
PUSH EAX
MOV DWORD PTR FS:[0],ESP
ADD ESP,-6C
PUSH EBX
PUSH ESI
PUSH EDI
ADD BYTE PTR DS:[EAX],AL /这条指令可以不要!
jmp 跳转到程序原来的入口点
******************************************************************************************
2。跳转
somewhere:
nop /"胡乱"跳转的开始...
jmp 下一个jmp的地址 /在附近随意跳
jmp ... /...
jmp 原入口的地址 /跳到原始oep
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
新入口: push ebp
mov ebp,esp
inc ecx
push edx
nop
pop edx
dec ecx
pop ebp
inc ecx
loop somewhere /跳转到上面那段代码地址去!
3. 伪装 C
融合
把A的代码换成B的
push ebp
mov ebp,esp
push -1
push 111111
push 222222
mov eax,fs:[0]
push eax
mov fs:[0],esp
pop eax
mov fs:[0],eax
pop eax
pop eax
pop eax
pop eax
mov ebp,eax
jmp 老入口
4. c ++
push ebp
mov ebp,esp
push -1
push 111111
push 222222
mov eax,fs:[0]
push eax
mov fs:[0],esp
pop eax
mov fs:[0],eax
pop eax
pop eax
pop eax
pop eax
mov ebp,eax
5.Microsoft Visual C++ 6.0
PUSH -1
PUSH 0
PUSH 0
MOV EAX,DWORD PTR FS:[0]
PUSH EAX
MOV DWORD PTR FS:[0],ESP
SUB ESP,68
PUSH EBX
PUSH ESI
PUSH EDI
POP EAX
POP EAX
POP EAX
ADD ESP,68
POP EAX
MOV DWORD PTR FS:[0],EAX
POP EAX
POP EAX
POP EAX
POP EAX
MOV EBP,EAX
JMP 原入口
6.
在mov ebp,eax
后面加上
PUSH EAX
POP EAX
7:
防杀精灵一号防杀代码:
push ebp
mov ebp,esp
push -1
push 666666
push 888888
mov eax,dword ptr fs:[0]
push eax
mov dword ptr fs:[0],esp
pop eax
mov dword ptr fs:[0],eax
pop eax
pop eax
pop eax
pop eax
mov ebp,eax
jmp 入口
8:
防杀精灵二号防杀代码:
push ebp
mov ebp,esp
push -1
push 0
push 0
mov eax,dword ptr fs:[0]
push eax
mov dword ptr fs:[0],esp
sub esp,68
push ebx
push esi
push edi
pop eax
pop eax
pop eax
add esp,68
pop eax
mov dword ptr fs:[0],eax
pop eax
pop eax
pop eax
pop eax
mov ebp,eax
jmp 入口
9.
防杀精灵终极防杀代码
push ebp
mov ebp,esp
add esp,-0C
add esp,0C
push eax
jmp入口
10:
木马彩衣(金色鱼锦衣)花代码
push ebp
mov ebp,esp
add esp,-0C
add esp,0C
mov eax,原入口
push eax
retn
11:
木马彩衣(虾米披风)花代码
push ebp
nop
nop
mov ebp,esp
inc ecx
nop
push edx
nop
nop
pop edx
nop
pop ebp
inc ecx
loopd /跳转到下面那段代码地址去!
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
nop /"胡乱"跳转的开始...
jmp 下一个jmp的地址 /在附近随意跳
jmp ... /...
jmp 原入口的地址 /跳到原始oep
12.
VC++5.0代码(木马彩衣无限复活袍):
PUSH EBP
MOV EBP,ESP
PUSH -1
push 415448 -\___
PUSH 4021A8 -/ 在这段代码中类似这样的 *** 作数可以乱填
MOV EAX,DWORD PTR FS:[0]
PUSH EAX
MOV DWORD PTR FS:[0],ESP
ADD ESP,-6C
PUSH EBX
PUSH ESI
PUSH EDI
ADD BYTE PTR DS:[EAX],AL /这条指令可以不要!
jo 00401000 /原入口
jno 00401000 /原入口
db 0e8h /花代码
xxxxxx: nop \
/|\ POP EAX |看了,其实这两部分就是花指令
| POP EAX |
| POP EAX /
| JMP yyyyyy (跳回旧入口点:00100016DB )
|
|
| push ebp <-新入口点:
| mov ebp,esp
| inc ecx
| push edx
| nop
| pop edx
| dec ecx
| pop ebp
| inc ecx
| MOV DWORD PTR FS:[0],EAX \
| POP EAX |
| POP EAX \
| MOV DWORD PTR FS:[0],EAX |(注意了。。花指令)
| POP EAX /
| POP EAX |
| MOV DWORD PTR FS:[0],EAX /
| loop xxxxxx (这里我向上跳~地址也是自己选的~~)
|_________________++++++(转到地址:100036c3 往回跳)
--------------------------------------------------------------
代码如下: 神话
nop
nop
nop
mov ebp,esp
push -1
push 111111
push 222222
mov eax,dword ptr fs:[0]
push eax
mov dword ptr fs:[0],esp
pop eax
mov dword ptr fs:[0],eax
pop eax
pop eax
pop eax
pop eax
mov ebp,eax
mov eax,原入口
push eax
retn
代码如下: 无极
nop
mov ebp, esp
push -1
push 0A2C2A
push 0D9038
mov eax, fs:[0]
push eax
mov fs:[0], esp
pop eax
mov fs:[0], eax
pop eax
pop eax
pop eax
pop eax
mov ebp, eax
mov eax, 原入口
jmp eax
代码如下: 金刚
nop
nop
mov ebp, esp
push -1
push 415448
push 4021A8
mov eax, fs:[0]
push eax
mov fs:[0], esp
add esp, -6C
push ebx
push esi
push edi
add [eax], al
mov eax,原入口
jmp eax
代码如下: 杀破浪
nop
mov ebp, esp
push -1
push 0
push 0
mov eax, fs:[0]
push eax
mov fs:[0], esp
sub esp, 68
push ebx
push esi
push edi
pop eax
pop eax
pop eax
add esp, 68
pop eax
mov fs:[0], eax
pop eax
pop eax
pop eax
pop eax
mov ebp, eax
mov eax, 原入口
jmp eax
代码如下: 痴情大圣
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push ebp
mov ebp, esp
add esp, -0C
add esp, 0C
mov eax, 原入口
push eax
retn
代码如下: 如果*爱
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push ebp
mov ebp, esp
inc ecx
push edx
nop
pop edx
dec ecx
pop ebp
inc ecx
mov eax, 原入口
jmp eax
--------------------------------------------------------
灰鸽子万能文件捆绑器 VIP2005 ->葛军 *
push ebp
mov ebp,esp
add esp,-124
push ebx
push esi
push edi
xor eax,eax
mov dword ptr ss:[ebp-124],eax
jmp 入口
----------------------------------------------------------
PUSH EBP
MOV EBP,ESP
MOV EAX,0
PUSH EAX
CALL 下个指令 ↓
POP EAX
SUB EAX,0
MOV ECX,0
MOV EDX,0
MOV ESI,0
MOV EDI,0
MOV EBP,0
ADD EBP,EAX
POP EAX
POP EAX
POP EAX
POP EAX
POP EBP
PUSH 入口点
RETN
----------------------------------------------------------------
//Borland Delphi 6.0 - 7.0
PUSH EBP
MOV EBP,ESP
MOV ECX,6
PUSH 0 下面那个跳到这里
PUSH 0
DEC ECX
JNZ 往回跳
PUSH EBX
PUSH ESI
PUSH EDI
POP EDI
POP ESI
POP EBX
JMP 入口点
-----------------------------------------------------------------
push ebp
mov ebp,esp
inc edx
nop
pop edx
dec ecx
pop ebp
inc ecx
jmp 入口点
-----------------------------------------------------------------
push ebp
mov ebp,esp
push ebx
mov ebx,dword ptr ss:[ebp+8]
push esi
mov esi,dword ptr ss:[ebp+C]
push edi
mov edi,dword ptr ss:[ebp+10]
test esi,esi
jmp 入口
-----------------------------------------------------------------
0046D4BA pop eax
0046D4BB sub eax,7D
0046D4C0 push eax
0046D4C1 C3 retn
0046D4C2 call 0046D4BA
-------------------------------------------------------------------
伪装VC7。0花
最近抓的伪装VC7。0的花,很短
//---------------------------------
push 70
push 123456(数字随便)
call A(A为地址)
xor ebx,ebx
A地址:retn
2008-6-13 11:30 dazy
1.POP 0
POP 0
2.PUSH ebp
pop ebp
3.nop ----一般插在中间
4.jmp 一下jmp的地址
jmp ...
5.add esp,1 ----数字可以改变
sub esp,1
6. add esp,1
add esp,-1
7.sub esp,1
sub esp,-1
8.push esi
push edi
9.inc ecx
dec ecx
10 sub eax,-2
dec eax
dec eax
11.(该免杀花指令经典,压缩可运行,免卡巴)
push ebp
mov ebp,esp
pop esp
jmp 原入口点地址-
jmp XXXXXX等价于:
PUSH XXXXXX
RETN
12. 免杀卡巴的花指令:
push ebx
push ebx
push ebx
pop ebx
pop ebx
pop ebx
jmp 跳到下一个地址
add esp,1
add esp,-1
push 入口点地址
retn
*************
12.(同上)
push ebp
push esp
pop ebp
pop esp
jmp 原入口点地址
13.最新的一段万能免杀花指令:
push ebp
push esp
pop ebp
add esp,-0C
add esp,0C
push eax
jmp入口
14.免杀花指令
push ebp
mov ebp,esp
add esp,-0C
add esp,0C
push eax
mov eax,入口地址
jmp eax
nop
15.
jmp 改成:Jg(大于转移),JL(小于转移)
或改成:jb(小于转移),jnb(大于或等于转移)
16.写过卡巴花指令的跳不要直接用jmp来跳,不然,要被直接杀
jmp ---直接被杀
改成
jb
jnb
或改成:
push 入口地址
retn
或改成:
mov eax,入口地址
jmp eax
17.一段免杀卡巴的花指令:
push ebx
push ebx
pop ebx
pop ebx
add esp,1
add esp,-1
push 入口地址
retn
二。可以通过加壳工具,让别人识别不出来你用什么编写的。加壳工具分压缩壳和加密壳。我就不再列出了。
注意:因为有的人做木马或病毒通过加花或加壳来实现免杀。所以有的是会被杀毒软件认为是木马或病毒。
加壳:其实是利用特殊的算法,对可执行文件里的资源进行压缩,只不过这个压缩之后的文件,可以独立运行,解压过程完全隐蔽,都在内存中完成。附加在原程序上通过加载器载入内存后,先于原始程序执行,得到控制权,执行过程中对原始程序进行解密、还原,还原完成后再把控制权交还给原始程序,执行原来的代码部分。
加上外壳后,原始程序代码在磁盘文件中一般是以加密后的形式存在的,只在执行时在内存中还原,这样就可以比较有效地防止破解者对程序文件的非法修改,同时也可以防止程序被静态反编译。
加花:是在一些反汇编软件中加入一些花指令,花指令是利用了反汇编时单纯根据机器指令字来决定反汇编结果的漏洞。
去壳:顾名思义,就是对软件加壳的逆 *** 作,把软件上存在的壳去掉。在一些计算机软件里也有一段专门负责保护软件不被非法修改或反编译的程序。
一般都是先于程序运行,拿到控制权,然后完成它们保护软件的任务。由于这段程序和自然界的壳在功能上有很多相同的地方,基于命名的规则,大家就把这样的程序称为“壳”了。就像计算机病毒和自然界的病毒一样,其实都是命名上的方法罢了。
扩展资料:
加“壳”虽然增加了CPU负担,但是减少了硬盘读写时间,实际应用时加“壳”以后程序运行速度更快(当然有的加“壳”以后会变慢,那是选择的加“壳”工具问题)。
一般软件都加“壳”这样不但可以保护自己的软件不被破解、修改还可以增加运行时启动速度。
加“壳”不等于木马,平时的绝大多数软件都加了自己的专用“壳”。
RAR和ZIP都是压缩软件,不是加“壳”工具,解压时是需要进行磁盘读写,“壳”的解压缩是直接在内存中进行的。
加花指令的确没有改变特征码的位置,但是他改变了程序执行顺序,有的也能改变文件结构。使杀毒软件扫描的时候跳到花指令处,即判断没有病毒。通常情况下,在文件免杀的时候,加花指令是最简单、有效的方法,而且一般能通杀很多杀毒软件,所以一般文件免杀通用此法,前提是你的花指令不是常用的,最好能自己做出你个人的花指令,才会很有效。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)