花指令学习资料

原创 2007年09月29日 13:25:00
一.花指令概念:

★花指令是一堆汇编指令组成,对于程序来说,是一堆无用的代码,相当于在原地向左转然后向右转来把别人转晕了就是我们的成功.加不加花指令都不会影响程序的正常运行.编写的花指令要终始保持堆栈的平衡.比如我们的程序运行一半了突然跑去自定义计算个1+1=2,然后继续回来执行刚才的程序后半部分,这样看起来很弱智,但对杀毒软件来说,这会严重降低他们的查毒能力.

★堆栈的解释:相当于在仓库货物时先一件件堆放进去,但是取的的时候只能从最上面取出来,我们把这个原理用在编程上就叫做堆栈----也就是所谓的"先进后出,后进先出"原则』

二.写花指令的原则:

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

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

我们把一段花指令比喻成一道数学运算题,把汇编指令(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,入口地址 ------把入口地址转送到数据寄存器中. 

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

jb 入口地址

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



说明:必须对汇编语言有所了解才能更好地理解文中的概念.. 

Linux 初级学习资料\Linux 指令大

  • 2011年12月09日 13:14
  • 126KB
  • 下载

CPUID指令资料

CPUID指令   1.   CPUID指令代码:   0a20f       例:                 CPUID   MACRO                     dw   0a...
  • aasmfox
  • aasmfox
  • 2011年07月16日 14:21
  • 496

ARM指令集,ARM,ARM学习资料

  • 2009年06月08日 16:41
  • 942KB
  • 下载

unix指令学习参考资料

  • 2015年06月11日 14:32
  • 727KB
  • 下载

短信猫编程的一些资料1(At指令发送短信)

现在正在做TC35的项目, 下面分享一下这几天在网上找到的资料: 手机 SMS PDU 格式参考手册   1.相关的GSM   AT指令     与SMS有关的GSM   AT指令(fr...

latex学习资料,指令详解

  • 2013年06月19日 16:48
  • 137KB
  • 下载

关于短信收发 的at指令方面的资料

关于使用GSM MODEM设备利用AT指令处理短信的方法,网上有很多相关的内容,我也是遍览各家所长,再加上自己的实际试验、应用,在前人的基础上做下总结,添加点自己经验。也有很多问题还未解决,期望高手可...

linuex一些学习的资料指令很全

  • 2012年09月07日 11:29
  • 18.59MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:花指令学习资料
举报原因:
原因补充:

(最多只允许输入30个字)