2008-03-07

来源:互联网 发布:家庭网络打印机共享 编辑:程序博客网 时间:2024/06/12 00:03
可执行数据区:这一区域常常即包括预初始化数据也包括全局变量,预初始化数据指的是程序中的各种常量、硬编码信息,一些预初始化数据直接置于代码中,但 是,在数据量非常大的情况下,编译器会将这些数据存放在程序可执行部分中的某一个特殊区域,并生成通过地址引用这些数据的代码,另一种常见情况是,当程序 定义了全局变量时,数据就存放在可执行数据区,全局变量提供长时间的存储,对于预初始化数据,为了访问全局变量,编译器必须使用硬编码内存地址,这就是为 什么在逆向程序时全局变量很容易被识别的原因

源操作数与目的操作数中最多只能有一个存储器地址,多数指令只能接收一个存储器操作数,也有少数意外

CMP OPT1, OPT2:实际上CMP指令只是简单的将操作数OPT1减去OPT2并放弃结果,而将能正确反映该剑法运算结果的所有相关标志位设置好

CALL指令将当前指令指针压入堆栈,并跳转到规定的地址

RET指令弹出CALL压入堆栈的指令指针,并从该处开始执行,另外,RET指令中可以明确给出字节数来指示弹出指令后ESP的增量,这会在恢复ESP到在当前函数被调用以及参数压入堆栈之前的初始位置的时候用到

 
原创粉丝点击