随笔 - 4  文章 - 0 评论 - 0 
<2007年11月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678

常用链接

留言簿(1)

随笔分类

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜

我的QQ空间一.花指令概念: 

花指令是一堆汇编指令组成,对于程序来说,是一堆废话,加不加花指令都 

不影响程序的正常运行.编写的花指令要终始保持堆栈的平衡. 

二.写花指令的原则: 

写花指令的基本原则就是要保持堆栈的平衡. 

写花指令细细品味下面一段比喻: 

我们把一段花指令比喻成一道数学运算题,把汇编指令(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 

inc ecx -----计数器加1 

dec ecx -----计数器减1 

sub esp,1 ----指针寄存器加1 

sub esp,-1----指针寄存器加-1 

jmp 入口地址----跳到程序入口地址 

push 入口地址---把入口地址压入堆栈 

retn  ------ 反回到入口地址,效果与jmp 入口地址一样. 

mov eax,入口地址 ------把入口地址转送到数据寄存器中. 

jmp eax  ----- 跳到程序入口地址 

jb 入口地址 

jnb 入口地址 ------效果和jmp 入口地址一样,直接跳到程序入口地址. 

四.免杀花指令编写手册: 

注:以后编写花指令,都可以参考本手册,灵活组合,快速写出自己的花指令. 

******************************************************************* 
push ebp 

pop ebp 

push eax 

pop eax 

push esp 

pop esp 

push 0 

push 0 

push 10 -------其中数字可以任意,注意与下面对应 

push -10 

nop -----------可任意在中间添加 

move edi,edi ----效果与nop一样 

add esp,1 -------其中数字可以任意,注意以下面对应 

add esp,-1 

add esp,1 --------其中数字可以任意,注意以下面对应 

sub esp,1 

inc ecx 

dec ecx 

sub eax, -2 ----------其中数字可任意,与inc的个数对应 

inc eax 

inc eax 

add eax -2 ----------其中数字可任意,与inc的个数对应 

inc eax 

inc eax 

jmp 下一个jmp地址 

jmp 下一个地址 

push ebp 

mov ebp,esp -------可做为花指令的开头句 

jmp 入口地址 ------跳到程序入口地址 

与它效果一样的还有(以下三个): 

push 入口地址 

retn 

jb 入口地址 

jnb 入口地址 

mov eax,入口地址 

jmp eax 

******************************************************************** 
五.分析一段简单的花指令: 
push eax 

push eax 

nop 

pop eax 

pop eax 

sub eax,1 

inc eax 

push 入口地址
posted on 2007-11-20 17:20 古藤 阅读(80) 评论(0)  编辑 收藏 引用
只有注册用户登录后才能发表评论。