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

1 CPU構(gòu)成
CPU大體上可以分成以下三部分
(1) 算術(shù)邏輯部分ALU(arithmetic logic unit),用來(lái)進(jìn)行算術(shù)和邏輯運(yùn)算
(2) 控制邏輯。
(3) 工作寄存器,每個(gè)寄存器相當(dāng)于運(yùn)算器中的一個(gè)存儲(chǔ)單元,但它存取速度快。用來(lái)存放運(yùn)算過(guò)程中的需要或得到的各種信息,包括操作數(shù)地址、操作數(shù)及運(yùn)算的中間結(jié)果。
2 計(jì)算機(jī)中數(shù)據(jù)存儲(chǔ)方式
在計(jì)算機(jī)中,一個(gè)二進(jìn)制數(shù)占用一位,八位是一個(gè)字節(jié)。
在計(jì)算機(jī)內(nèi)存中,就是以字節(jié)為單位來(lái)存儲(chǔ)信息的。計(jì)算機(jī)給每一個(gè)字節(jié)單元分配一個(gè)唯一的存儲(chǔ)器地址,稱(chēng)為物理地址。當(dāng)需要訪(fǎng)問(wèn)相應(yīng)的內(nèi)存的數(shù)據(jù)時(shí),就是通過(guò)這個(gè)地址。
一個(gè)二進(jìn)制可以表達(dá)所有的ASCII,即一個(gè)內(nèi)存單元可以存儲(chǔ)一個(gè)英文字符或數(shù)字等。而中文要用Unicode表示,也就是需要兩個(gè)字節(jié)單元才能裝一個(gè)漢字。
十六位就是兩個(gè)字節(jié),才能裝一個(gè)漢字。三十二位能裝兩個(gè)漢字叫做雙字。六十四位能裝四個(gè)漢字叫做四字。
3 基本寄存器
3.1通用寄存器(32位)
通用寄存器一共有八個(gè):EAX、EBX、ECX、EDX、ESP、EBP、EDI、ESI
其中EAX、EBX、ECX、EDX稱(chēng)為數(shù)據(jù)寄存器,用于存放計(jì)算過(guò)程中所用操作數(shù)、結(jié)果或其他信息。除了直接訪(fǎng)問(wèn)外,還可分別對(duì)其高十六位和低十六位,它們的低十六位就是把它們前邊兒的E去掉,即EAX的低十六位就是AX。而且它們的低十六位又可以分別進(jìn)行八位訪(fǎng)問(wèn),也就是說(shuō),AX還可以再進(jìn)行分解,即AX還可分為AH(高八位)AL(低八位)。
高16位
EAX 高8位(AH)
低16位(AX)
低8位(AL)
則操作32位數(shù)時(shí)可用:MOV EAX
則操作16位數(shù)時(shí)可用:MOV AX
則操作8位數(shù)時(shí)可用: MOV AH / MOV AL
備注:從386以后,所有寄存器都可以用來(lái)存儲(chǔ)內(nèi)存地址。在破解的時(shí)候是不是看到過(guò)[EBX]這樣的形式呢?這就是說(shuō)此時(shí)EBX中裝的是一個(gè)內(nèi)存地址,而真正要訪(fǎng)問(wèn)的,就是那那個(gè)內(nèi)存單元中所存儲(chǔ)的值。
ESP、EBP、EDI、ESI四個(gè)寄存器主要用途就是在存儲(chǔ)器尋址時(shí),提供偏移地址。因此,它們可以稱(chēng)為指針或變址寄存器。
ESP稱(chēng)為堆棧指針寄存器。堆棧是以“后進(jìn)先出”方式工作的一個(gè)存儲(chǔ)區(qū),它必須存在于堆棧段中,因而其段地址存放于SS寄存器中。它只有一個(gè)出入口,所以只有一個(gè)堆棧指針寄存器。ESP的內(nèi)容在任何時(shí)候都指向當(dāng)前的棧頂。
當(dāng)向堆棧中壓入數(shù)據(jù)時(shí),ESP會(huì)向上移動(dòng),使用PUSH指令,ESP變化為:ESP - 數(shù)據(jù)位數(shù)。
當(dāng)向堆棧中壓出數(shù)據(jù)時(shí),ESP會(huì)向下移動(dòng),使用POP指令,ESP變化為:ESP + 數(shù)據(jù)位數(shù)
EBP,它稱(chēng)為基址指針寄存器,它們都可以與堆棧段寄存器SS聯(lián)用來(lái)確定堆棧中的某一存儲(chǔ)單元的地址,ESP用來(lái)指示段頂?shù)钠频刂?,而EBP可作為堆棧區(qū)中的一個(gè)基地址以便訪(fǎng)問(wèn)堆棧中的信息。
ESI(源變址寄存器)和EDI(目的變址寄存器)一般與數(shù)據(jù)段寄存器DS聯(lián)用,用來(lái)確定數(shù)據(jù)段中某一存儲(chǔ)單元的地址。這兩個(gè)變址寄存器有自動(dòng)增量和自動(dòng)減量的功能,可以很方便地用于變址。在串處理指令中,ESI和EDI作為隱含的源變址和目的變址寄存器時(shí),ESI和DS聯(lián)用,EDI和附加段ES聯(lián)用,分別達(dá)到在數(shù)據(jù)段和附加段中尋址的目的。
3.2 專(zhuān)用寄存器
專(zhuān)用寄存器,有兩個(gè),一個(gè)是EIP,一個(gè)是FLAGS。
EIP算是所有寄存器中最重要的一個(gè)了。它的意思就是指令指針寄存器,它用來(lái)存放代碼段中的偏移地址。在程序運(yùn)行的過(guò)程中,它始終指向下一條指令的首地址。它與段寄存器CS聯(lián)用確定下一條指令的物理地址。當(dāng)這一地址送到存儲(chǔ)器后,控制器可以取得下一條要執(zhí)行的指令,而控制器一旦取得這條指令就馬上修改EIP的內(nèi)容,使它始終指向下一條指令的首地址??梢?jiàn),計(jì)算機(jī)就是用EIP寄存器來(lái)控制指令序列的執(zhí)行流程的。 那些跳轉(zhuǎn)指令,就是通過(guò)修改EIP的值來(lái)達(dá)到相應(yīng)的目的的。
FLAGS,標(biāo)志寄存器,又稱(chēng)PSW(program status word),即程序狀態(tài)寄存器。這一個(gè)是存放條件標(biāo)志碼、控制標(biāo)志和系統(tǒng)標(biāo)志的寄存器。
下面有個(gè)例子
Cmp EAX,EBX ;用EAX與EBX相減
JNZ 00470395 ;不相等的話(huà),就跳到這里;
這兩條指令很簡(jiǎn)單,就是用EAX寄存器裝的數(shù)減去EBX寄存器中裝的數(shù)。來(lái)比較這兩個(gè)數(shù)是不是相等,當(dāng)Cmp指令執(zhí)行過(guò)后,就會(huì)在FLAGS的ZF(zero flag)零標(biāo)志位上置相應(yīng)值,如果結(jié)果為0,也就是他們兩個(gè)相等的話(huà),ZF置1,否則置0。其它還有OF(溢出標(biāo)志)SF(符號(hào)標(biāo)志)CF(進(jìn)位標(biāo)志)AF(輔助進(jìn)位標(biāo)志)PF(奇偶標(biāo)志)等。
3.3 段寄存器
段寄存器一共六個(gè),分別是CS代碼段,DS數(shù)據(jù)段,ES附加段,SS堆棧段,F(xiàn)S以及GS這兩個(gè)還是附加段
相關(guān)文章
- “CMOS密碼”就是通常所說(shuō)的“開(kāi)機(jī)密碼”,主要是為了防止別人使用自已的計(jì)算機(jī),設(shè)置的一個(gè)屏障2023-08-01
QQScreenShot之逆向并提取QQ截圖--OCR和其他功能
上一篇文章逆向并提取QQ截圖沒(méi)有提取OCR功能, 再次逆向我發(fā)現(xiàn)是可以本地調(diào)用QQ的OCR的,但翻譯按鈕確實(shí)沒(méi)啥用, 于是Patch了翻譯按鈕事件, 改為了將截圖用百度以圖搜圖搜索.2023-02-04- QQ截圖是我用過(guò)的最好用的截圖工具, 由于基本不在電腦上登QQ了, 于是就想將其提取出獨(dú)立版目前除了屏幕錄制功能其他都逆出來(lái)了, 在此分享一下2023-02-04
非系統(tǒng)分區(qū)使用BitLocker加密導(dǎo)致軟件無(wú)法安裝的解決方法
很多電腦用戶(hù)在考慮自己電腦磁盤(pán)分區(qū)安全時(shí)會(huì)采用 Windows 自帶的 BitLocker 加密工具對(duì)電腦磁盤(pán)分區(qū)進(jìn)行加密。但有些人加密后就會(huì)忘記自己設(shè)置的密碼從而導(dǎo)致在安裝其它軟2020-11-25防止離職員工帶走客戶(hù)、防止內(nèi)部員工泄密、避免華為員工泄密事件的發(fā)生
這篇文章為大家詳細(xì)介紹了如何才能防止離職員工帶走客戶(hù)、防止內(nèi)部員工泄密、避免華為員工泄密事件的發(fā)生,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-27徹底防止計(jì)算機(jī)泄密、重要涉密人員離職泄密、涉密人員離崗離職前防范舉
近些年企業(yè)商業(yè)機(jī)密泄漏的事件屢有發(fā)生,這篇文章主要教大家如何徹底防止計(jì)算機(jī)泄密、重要涉密人員離職泄密、告訴大家涉密人員離崗離職前的防范舉措,具有一定的參考價(jià)值,2017-06-27量子計(jì)算機(jī)輕松破解加密算法 如何破解加密算法?
最近有電腦用戶(hù)反應(yīng)量子計(jì)算機(jī)可以破解下載的所有的加密算法嗎?其實(shí)也不是不可以,下面虛擬就為大家講解買(mǎi)臺(tái)量子計(jì)算機(jī),如何分分鐘破解加密算法2016-09-26怎么破解Webshell密碼 Burpsuite破解Webshell密碼圖文教程
webshell是以asp、php、jsp或者cgi等網(wǎng)頁(yè)文件形式存在的一種命令執(zhí)行環(huán)境,一種網(wǎng)頁(yè)后門(mén)。黑客通常會(huì)通過(guò)它控制別人網(wǎng)絡(luò)服務(wù)器,那么怎么破解webshell密碼呢?一起來(lái)看看吧2016-09-19針對(duì)Linux系統(tǒng)全盤(pán)加密的啟動(dòng)攻擊
本文討論了針對(duì)Linux系統(tǒng)全盤(pán)加密的冷啟動(dòng)攻擊,大家都認(rèn)為這種攻擊是可行的,但執(zhí)行這么一次攻擊有多難?攻擊的可行性有多少呢?需要的朋友可以參考下2015-12-28防止泄露公司機(jī)密、企業(yè)數(shù)據(jù)防泄密軟件排名、電腦文件加密軟件排行
面對(duì)日漸嚴(yán)重的內(nèi)部泄密事件,我們?nèi)绾问刈o(hù)企業(yè)的核心信息,如何防止內(nèi)部泄密也就成了擺在各個(gè)企業(yè)領(lǐng)導(dǎo)面前的一大問(wèn)題。其實(shí),針對(duì)內(nèi)網(wǎng)安全,防止內(nèi)部信息泄漏早已有了比較2015-12-17