破解入門(一) 常用暫存器

2021-08-26 22:07:09 字數 2815 閱讀 1766

cpu大體上可以分成以下三部分 (1

)算術邏輯部分

alu(

arithmeticlogicunit

),用來進行算術和邏輯運算 (2

)控制邏輯。 (3

)工作暫存器,每個暫存器相當於運算器中的乙個儲存單元,但它訪問速度快。用來存放運算過程中的需要或得到的各種資訊,包括運算元位址、運算元及運算的中間結果。

在計算機中,乙個二進位制數占用一位,八位是乙個位元組。

在計算機記憶體中,就是以位元組為單位來儲存資訊的。計算機給每乙個位元組單元分配乙個唯一的儲存器位址,稱為實體地址。當需要訪問相應的記憶體的資料時,就是通過這個位址。

乙個二進位制可以表達所有的ascii

,即乙個記憶體單元可以儲存乙個英文本元或數字等。而中文要用

unicode

表示,也就是需要兩個位元組單元才能裝乙個漢字。

十六位就是兩個位元組,才能裝乙個漢字。三十二位能裝兩個漢字叫做雙字。六十四位能裝四個漢字叫做四字。

通用暫存器一共有八個: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

位數時可用:

moveax

則操作16

位數時可用:

movax

則操作8

位數時可用:

movah/moval

備註:從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聯用,分別達到在資料段和附加段中定址的目的。

專用暫存器,有兩個,乙個是eip

,乙個是

flags。

eip算是所有暫存器中最重要的乙個了。它的意思就是指令指標暫存器,它用來存放**段中的偏移位址。在程式執行的過程中,它始終指向下一條指令的首位址。它與段暫存器

cseip

eip暫存器來控制指令序列的執行流程的。那些跳轉指令,就是通過修改

eip的值來達到相應的目的的。

flags,標誌暫存器,又稱

psw(programstatusword)

,即程式狀態暫存器。這乙個是存放條件標誌碼、控制標誌和系統標誌的暫存器。

下面有個例子

cmpeax,ebx;用

eax與

ebx相減

jnz00470395;不相等的話,就跳到這裡

;這兩條指令很簡單,就是用eax

暫存器裝的數減去

ebx暫存器中裝的數。來比較這兩個數是不是相等,當

cmp指令執行過後,就會在

flags的zf

(zeroflag

)零標誌位上置相應值,如果結果為

0,也就是他們兩個相等的話,zf置

1,否則置

0。其它還有

of(溢位標誌)

sf(符號標誌)

cf(進製標誌)

af(輔助進製標誌)

pf(奇偶標誌)等。

段暫存器一共六個,分別是cs

**段,

ds資料段,

es附加段,

ss堆疊段,

fs以及

gs這兩個還是附加段。

暫存器入門

暫存器是cpu的組成部件之一,cpu在進行計算時,因為速度太快的原因,無法與記憶體 dram 直接進行操作。所以需要將所需的資料先從記憶體中提取到暫存器中,在對暫存器進行操作。為了緩解dram與cpu的速度差,計算機在cpu與dram之間還有乙個cache元件 sram 從記憶體中取出資料到暫存器中...

軟體破解入門教程和解密常用手冊

作為乙個電腦愛好者,相信手頭一定有不少酷軟,但往往這些軟體有各種限制,所以你是不是常常為了乙個小小的註冊碼,而經常頭痛呢?是不是為了找到乙個軟體的註冊碼而費盡心機呢?但大家是否想過自己來破解軟體得出註冊碼?你也許會說太難了,網上找乙個註冊碼得了,如果你是用自己的技術把軟體註冊了,一定會有另一番美妙感...

彙編基礎 常用暫存器及其用途

通用暫存器的主要用途 暫存器的分類 暫存器主 要 用 途 通 用暫存器 資料 暫存器 ax乘 除運算,字的輸入輸出,中間結果的快取 al位元組的乘 除運算,位元組的輸入輸出,十進位制算術運算 ah位元組的乘 除運算,存放中斷的功能號 bx儲存器指標 cx串操作 迴圈控制的計數器 cl移位操作的計數器...