破解入门(一)-----常用寄存器介绍(图文)脚本之家dongfang - 众发娱乐

破解入门(一)-----常用寄存器介绍(图文)脚本之家dongfang

2019-01-31 07:34:59 | 作者: 宣朗 | 标签: 寄存器,地址,指令 | 浏览: 2977

1 CPU构成
CPU大体上能够分红以下三部分
(1) 算术逻辑部分ALU(arithmetic logic unit),用来进行算术和逻辑运算
(2) 操控逻辑。
(3) 作业寄存器,每个寄存器相当于运算器中的一个存储单元,但它存取速度快。用来寄存运算过程中的需求或得到的各种信息,包含操作数地址、操作数及运算的中心成果。
2 核算机中数据存储方法
在核算机中,一个二进制数占用一位,八位是一个字节。
在核算机内存中,就是以字节为单位来存储信息的。核算机给每一个字节单元分配一个仅有的存储器地址,称为物理地址。当需求拜访相应的内存的数据时,就是经过这个地址。
一个二进制能够表达一切的ASCII,即一个内存单元能够存储一个英文字符或数字等。而中文要用Unicode表明,也就是需求两个字节单元才干装一个汉字。
十六位就是两个字节,才干装一个汉字。三十二位能装两个汉字叫做双字。六十四位能装四个汉字叫做四字。
3 根本寄存器
3.1通用寄存器(32位)
通用寄存器总共有八个:EAX、EBX、ECX、EDX、ESP、EBP、EDI、ESI
其间EAX、EBX、ECX、EDX称为数据寄存器,用于寄存核算过程中所用操作数、成果或其他信息。除了直接拜访外,还可别离对其高十六位和低十六位,它们的低十六位就是把它们前边儿的E去掉,即EAX的低十六位就是AX。并且它们的低十六位又能够别离进行八位拜访,也就是说,AX还能够再进行分化,即AX还可分为AH(高八位)AL(低八位)。
高16位
EAX 高8位(AH)
低16位(AX)
低8位(AL)
则操作32位数时可用:MOV EAX
则操作16位数时可用:MOV AX
则操作8位数时可用: MOV AH / MOV AL
补白:从386今后,一切寄存器都能够用来存储内存地址。在破解的时分是不是看到过[EBX]这样的方法呢?这就是说此刻EBX中装的是一个内存地址,而真正要拜访的,就是那那个内存单元中所存储的值。
ESP、EBP、EDI、ESI四个寄存器主要用途就是在存储器寻址时,供给偏移地址。因而,它们能够称为指针或变址寄存器。
ESP称为仓库指针寄存器。仓库是以“后进先出”方法作业的一个存储区,它有必要存在于仓库段中,因而其段地址寄存于SS寄存器中。它只要一个出入口,所以只要一个仓库指针寄存器。ESP的内容在任何时分都指向当时的栈顶。
当向仓库中压入数据时,ESP会向上移动,运用PUSH指令,ESP变化为:ESP - 数据位数。
当向仓库中压出数据时,ESP会向下移动,运用POP指令,ESP变化为:ESP + 数据位数
EBP,它称为基址指针寄存器,它们都能够与仓库段寄存器SS联用来断定仓库中的某一存储单元的地址,ESP用来指示段顶的偏移地址,而EBP可作为仓库区中的一个基地址以便拜访仓库中的信息。
ESI(源变址寄存器)和EDI(意图变址寄存器)一般与数据段寄存器DS联用,用来断定数据段中某一存储单元的地址。这两个变址寄存器有主动增量和主动减量的功用,能够很方便地用于变址。在串处理指令中,ESI和EDI作为隐含的源变址和意图变址寄存器时,ESI和DS联用,EDI和附加段ES联用,别离到达在数据段和附加段中寻址的意图。
3.2 专用寄存器
专用寄存器,有两个,一个是EIP,一个是FLAGS。
EIP算是一切寄存器中最重要的一个了。它的意思就是指令指针寄存器,它用来寄存代码段中的偏移地址。在程序运转的过程中,它一直指向下一条指令的首地址。它与段寄存器CS联用断定下一条指令的物理地址。当这一地址送到存储器后,操控器能够获得下一条要履行的指令,而操控器一旦获得这条指令就立刻修正EIP的内容,使它一直指向下一条指令的首地址。可见,核算机就是用EIP寄存器来操控指令序列的履行流程的。 那些跳转指令,就是经过修正EIP的值来到达相应的意图的。
FLAGS,标志寄存器,又称PSW(program status word),即程序状况寄存器。这一个是寄存条件标志码、操控标志和体系标志的寄存器。
下面有个比如
Cmp EAX,EBX ;用EAX与EBX相减
JNZ 00470395 ;不持平的话,就跳到这儿;
这两条指令很简单,就是用EAX寄存器装的数减去EBX寄存器中装的数。来比较这两个数是不是持平,当Cmp指令履行往后,就会在FLAGS的ZF(zero flag)零标志位上置相应值,假如成果为0,也就是他们两个持平的话,ZF置1,不然置0。其它还有OF(溢出标志)SF(符号标志)CF(进位标志)AF(辅佐进位标志)PF(奇偶标志)等。
3.3 段寄存器
段寄存器总共六个,别离是CS代码段,DS数据段,ES附加段,SS仓库段,FS以及GS这两个仍是附加段 

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表众发娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章