人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

破解入門(一)-----常用寄存器介紹(圖文)

發(fā)布日期:2022-01-01 08:19 | 文章來源:CSDN

1 CPU構成
CPU大體上可以分成以下三部分
(1) 算術邏輯部分ALU(arithmetic logic unit),用來進行算術和邏輯運算
(2) 控制邏輯。
(3) 工作寄存器,每個寄存器相當于運算器中的一個存儲單元,但它存取速度快。用來存放運算過程中的需要或得到的各種信息,包括操作數(shù)地址、操作數(shù)及運算的中間結果。
2 計算機中數(shù)據存儲方式
在計算機中,一個二進制數(shù)占用一位,八位是一個字節(jié)。
在計算機內存中,就是以字節(jié)為單位來存儲信息的。計算機給每一個字節(jié)單元分配一個唯一的存儲器地址,稱為物理地址。當需要訪問相應的內存的數(shù)據時,就是通過這個地址。
一個二進制可以表達所有的ASCII,即一個內存單元可以存儲一個英文字符或數(shù)字等。而中文要用Unicode表示,也就是需要兩個字節(jié)單元才能裝一個漢字。
十六位就是兩個字節(jié),才能裝一個漢字。三十二位能裝兩個漢字叫做雙字。六十四位能裝四個漢字叫做四字。
3 基本寄存器
3.1通用寄存器(32位)
通用寄存器一共有八個:EAX、EBX、ECX、EDX、ESP、EBP、EDI、ESI
其中EAX、EBX、ECX、EDX稱為數(shù)據寄存器,用于存放計算過程中所用操作數(shù)、結果或其他信息。除了直接訪問外,還可分別對其高十六位和低十六位,它們的低十六位就是把它們前邊兒的E去掉,即EAX的低十六位就是AX。而且它們的低十六位又可以分別進行八位訪問,也就是說,AX還可以再進行分解,即AX還可分為AH(高八位)AL(低八位)。
高16位
EAX 高8位(AH)
低16位(AX)
低8位(AL)
則操作32位數(shù)時可用:MOV EAX
則操作16位數(shù)時可用:MOV AX
則操作8位數(shù)時可用: MOV AH / MOV AL
備注:從386以后,所有寄存器都可以用來存儲內存地址。在破解的時候是不是看到過[EBX]這樣的形式呢?這就是說此時EBX中裝的是一個內存地址,而真正要訪問的,就是那那個內存單元中所存儲的值。
ESP、EBP、EDI、ESI四個寄存器主要用途就是在存儲器尋址時,提供偏移地址。因此,它們可以稱為指針或變址寄存器。
ESP稱為堆棧指針寄存器。堆棧是以“后進先出”方式工作的一個存儲區(qū),它必須存在于堆棧段中,因而其段地址存放于SS寄存器中。它只有一個出入口,所以只有一個堆棧指針寄存器。ESP的內容在任何時候都指向當前的棧頂。
當向堆棧中壓入數(shù)據時,ESP會向上移動,使用PUSH指令,ESP變化為:ESP - 數(shù)據位數(shù)。
當向堆棧中壓出數(shù)據時,ESP會向下移動,使用POP指令,ESP變化為:ESP + 數(shù)據位數(shù)
EBP,它稱為基址指針寄存器,它們都可以與堆棧段寄存器SS聯(lián)用來確定堆棧中的某一存儲單元的地址,ESP用來指示段頂?shù)钠频刂?,而EBP可作為堆棧區(qū)中的一個基地址以便訪問堆棧中的信息。
ESI(源變址寄存器)和EDI(目的變址寄存器)一般與數(shù)據段寄存器DS聯(lián)用,用來確定數(shù)據段中某一存儲單元的地址。這兩個變址寄存器有自動增量和自動減量的功能,可以很方便地用于變址。在串處理指令中,ESI和EDI作為隱含的源變址和目的變址寄存器時,ESI和DS聯(lián)用,EDI和附加段ES聯(lián)用,分別達到在數(shù)據段和附加段中尋址的目的。
3.2 專用寄存器
專用寄存器,有兩個,一個是EIP,一個是FLAGS。
EIP算是所有寄存器中最重要的一個了。它的意思就是指令指針寄存器,它用來存放代碼段中的偏移地址。在程序運行的過程中,它始終指向下一條指令的首地址。它與段寄存器CS聯(lián)用確定下一條指令的物理地址。當這一地址送到存儲器后,控制器可以取得下一條要執(zhí)行的指令,而控制器一旦取得這條指令就馬上修改EIP的內容,使它始終指向下一條指令的首地址??梢姡嬎銠C就是用EIP寄存器來控制指令序列的執(zhí)行流程的。 那些跳轉指令,就是通過修改EIP的值來達到相應的目的的。
FLAGS,標志寄存器,又稱PSW(program status word),即程序狀態(tài)寄存器。這一個是存放條件標志碼、控制標志和系統(tǒng)標志的寄存器。
下面有個例子
Cmp EAX,EBX ;用EAX與EBX相減
JNZ 00470395 ;不相等的話,就跳到這里;
這兩條指令很簡單,就是用EAX寄存器裝的數(shù)減去EBX寄存器中裝的數(shù)。來比較這兩個數(shù)是不是相等,當Cmp指令執(zhí)行過后,就會在FLAGS的ZF(zero flag)零標志位上置相應值,如果結果為0,也就是他們兩個相等的話,ZF置1,否則置0。其它還有OF(溢出標志)SF(符號標志)CF(進位標志)AF(輔助進位標志)PF(奇偶標志)等。
3.3 段寄存器
段寄存器一共六個,分別是CS代碼段,DS數(shù)據段,ES附加段,SS堆棧段,F(xiàn)S以及GS這兩個還是附加段

版權聲明:本站文章來源標注為YINGSOO的內容版權均為本站所有,歡迎引用、轉載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網站,禁止在非www.sddonglingsh.com所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內容來源于網友推薦、互聯(lián)網收集整理而來,僅供學習參考,不代表本站立場,如有內容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。

相關文章

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務

7x24全年不間斷在線

專屬顧問服務

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務熱線

關注
微信

關注官方微信
頂部