转九种常用的花指令 去除花指令

花指令是一堆汇编指令组成,对于程序来说,是一堆废话,加不加花指令都
不影响程序的正常运行.编写的花指令要终始保持堆栈的平衡.


花指令:(junk code)意思是程序中有一些指令,由设计者特别构思,希望使反汇编的时候出错,让破解者无法清楚正确地反汇编程序的内容,迷失方向。经典的是一些跳转指令,目标位置是另一条指令的中间,这样在反汇编的时候便会出现混乱。花指令有可能利用各种jmp, call, ret, 一些堆栈技巧,位置运算,等等

去除花指令,跟去除混淆不一样,花指令只是一些迷惑的语句,混淆可能包含的更多一些。

所以还是有必要去实现一个代码分析器。

找不到Microsoft Visual C++ 6.0 SPxMethod 1
1。伪装 vc++5.0
PUSH EBP
MOV EBP,ESP
PUSH -1
push415448-___
PUSH4921A8-/在这段代码中类似这样的操作数可以乱填
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 PTRDS:[EAX],AL/这条指令可以不要!
jmp 跳转到程序原来的入口点

(2)无效PE文件
往回跳转0040639B00db 00
xxxxxx:
nop
POPEAX---
POPEAX|--这部分是花指令!
POPEAX|
JMPyyyyyy/(跳回旧入口点:)
新入口点 --->
push ebp
mov ebp,esp
inc ecx
push edx
nop
pop edx
dec ecx
pop ebp
inc ecx
MOV DWORD PTRFS:[0],EAX
POPEAX|
POPEAX
MOV DWORD PTRFS:[0],EAX|(注意了。。花指令)
POPEAX/
POPEAX|
MOV DWORD PTRFS:[0],EAX/
loop xxxxxx.....(转到地址)
(3)伪装Microsoft Visual 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) 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 原入口
(5)
在mov ebp,eax
后面加上
PUSH EAX
POP EAX
(6)
防杀精灵终极防杀代码
push ebp
mov ebp,esp
add esp,-0C
add esp,0C
push eax
jmp入口

(7)木马彩衣(金色鱼锦衣)花代码
push ebp
mov ebp,esp
add esp,-0C
add esp,0C
mov eax,原入口
push eax
retn
(8)木马彩衣(虾米披风)花代码
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

(9)VC++5.0代码(木马彩衣无限复活袍)
PUSH EBP
MOV EBP,ESP
PUSH -1
push415448-___
PUSH4021A8-/在这段代码中类似这样的操作数可以乱填
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 PTRDS:[EAX],AL/这条指令可以不要!
jo00401000/原入口
jno00401000/原入口
db0e8h/花代码

。。。。。。。。。 。。。。花指令。。。。。。。。。。。。。。。。。。。

一.花指令概念:
花指令是一堆汇编指令组成,对于程序来说,是一堆废话,加不加花指令都
不影响程序的正常运行.编写的花指令要终始保持堆栈的平衡.
二.写花指令的原则:
写花指令的基本原则就是要保持堆栈的平衡.
写花指令细细品味下面一段比喻:
我们把一段花指令比喻成一道数学运算题,把汇编指令(push pop等)比喻成加减
乘除,把寄存器或数据(eax,ebx,1等)比喻成
数字(1,2,3等),那么要保持花指令堆栈的平衡,等于保持这道数学题的结果是0 .
三.解释一些指令含意
push ebp ----把基址指针寄存器压入堆栈
pop ebp----把基址指针寄存器弹出堆栈
push eax ----把数据寄存器压入堆栈
pop eax----把数据寄存器弹出堆栈
nop-----不执行
add esp,1-----指针寄存器加1
sub esp,-1-----指针寄存器加1
add esp,-1--------指针寄存器减1
sub esp,1-----指针寄存器减1
inc ecx-----计数器加1
dec ecx-----计数器减1
sub esp,1 ----指针寄存器-1
sub esp,-1----指针寄存器加1
jmp 入口地址----跳到程序入口地址
push 入口地址---把入口地址压入堆栈
retn------ 反回到入口地址,效果与jmp 入口地址一样.
mov eax,入口地址------把入口地址转送到数据寄存器中.
jmpeax----- 跳到程序入口地址
jb 入口地址
jnb 入口地址------效果和jmp 入口地址一样,直接跳到程序入口地址.
四.免杀花指令编写手册:
注:以后编写花指令,都可以参考本手册,灵活组合,快速写出自己的花指令.
转九种常用的花指令 去除花指令
*******************************************************************
我加上的可利用的命令:
xor eax,eax寄存器EAX清0
CALL 空白命令的地址无效call


  

爱华网本文地址 » http://www.413yy.cn/a/25101018/370826.html

更多阅读

脸上疤痕怎么去掉 脸上的斑如何去除

孩子小的时候都非常淘气,难免有一些磕磕碰碰,但就是这些磕磕碰碰让那些不幸运的人脸上留下了疤痕,长大了感到非常的后悔,在这里,小编介绍下几种常用的面部祛疤方法,希望能够帮助到大家。方法/步骤单纯切除缝合法:单纯切除缝合法

常用的治疗心悸心慌、失眠少寐的中成药 心悸少寐

在遇到心慌心悸、失眠多梦等神志不安的病症时,西医多以镇静剂和安眠药等来治疗;但这些药物的不良反应往往比较大,并且可能产生依赖作用。而中医应对此类疾病时,往往可采用效果明显且不良反应较小的药物。下面就来介绍几种常用的治疗心悸

介绍一种不错的治痔疮的外用方法 有不错的人就介绍下吧

这是我们家乡的一种常用的治痔疮的方法,临床用之多例,全部有效,最差的也是痔疮变小,不痛不痒。大部分完全消失了。有的两年内没有再犯(我使用此方法也就是两年左右),听告诉我方子的人说有不少人用此方治愈了痔疮。但痔疮手术过的人没有用过

常用的小儿止咳化痰中成药有哪些? 止咳化痰中成药

中成药具有疗效好、服用方便、副作用少的优点,深受病儿欢迎。现介绍几种常用的小儿止咳化痰药物:(1)咳清灵(2)小儿止咳金丹处方组成:苦杏仁(炒)、胆南星、紫苏子、焦槟榔、桔梗、玄参、麦冬、桑白皮、川贝、瓜蒌仁、知母、竹叶等。功用:清热润

议论文几种常用的结构及例文分析 议论文 详略结合 例文

总分式结构安徽卷满分作文 带着感动出发暴雨之中,是谁,为你撑起一把伞?漫漫长夜,是谁,为你点亮一盏灯?怀着一颗感动的心,你会发现,暴雨后总有美丽的彩虹,黑夜里总有星星在闪烁,带着感动出发吧,让你的人生温馨而美好!② 感动,珍藏在我们心中,又时时

声明:《转九种常用的花指令 去除花指令》为网友少女的范儿分享!如侵犯到您的合法权益请联系我们删除