逆向入門(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)需要訪問(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é)果或其他信息。除了直接訪問(wèn)外觅够,還可分別對(duì)其高十六位和低十六位胶背,它們的低十六位就是把它們前邊兒的E去掉,即EAX的低十六位就是AX喘先。而且它們的低十六位又可以分別進(jìn)行八位訪問(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)存地址,而真正要訪問(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ù)钠频刂罚鳨BP可作為堆棧區(qū)中的一個(gè)基地址以便訪問(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? ?;不相等的話寇窑,就跳到這里;?

這兩條指令很簡(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è)相等的話,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è)還是附加段。


接下來(lái)我們一起來(lái)認(rèn)識(shí)下逆向神器OllyDBG

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末踊跟,一起剝皮案震驚了整個(gè)濱河市踩验,隨后出現(xiàn)的幾起案子鸥诽,更是在濱河造成了極大的恐慌,老刑警劉巖箕憾,帶你破解...
    沈念sama閱讀 219,270評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件牡借,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡袭异,警方通過(guò)查閱死者的電腦和手機(jī)钠龙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)御铃,“玉大人碴里,你說(shuō)我怎么就攤上這事∩险妫” “怎么了咬腋?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,630評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)睡互。 經(jīng)常有香客問(wèn)我根竿,道長(zhǎng),這世上最難降的妖魔是什么湃缎? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,906評(píng)論 1 295
  • 正文 為了忘掉前任犀填,我火速辦了婚禮蠢壹,結(jié)果婚禮上嗓违,老公的妹妹穿的比我還像新娘。我一直安慰自己图贸,他們只是感情好蹂季,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著疏日,像睡著了一般偿洁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上沟优,一...
    開(kāi)封第一講書(shū)人閱讀 51,718評(píng)論 1 305
  • 那天涕滋,我揣著相機(jī)與錄音,去河邊找鬼挠阁。 笑死宾肺,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的侵俗。 我是一名探鬼主播锨用,決...
    沈念sama閱讀 40,442評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼隘谣!你這毒婦竟也來(lái)了增拥?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,345評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎掌栅,沒(méi)想到半個(gè)月后秩仆,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,802評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡猾封,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評(píng)論 3 337
  • 正文 我和宋清朗相戀三年逗概,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片忘衍。...
    茶點(diǎn)故事閱讀 40,117評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡逾苫,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出枚钓,到底是詐尸還是另有隱情铅搓,我是刑警寧澤,帶...
    沈念sama閱讀 35,810評(píng)論 5 346
  • 正文 年R本政府宣布搀捷,位于F島的核電站星掰,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏嫩舟。R本人自食惡果不足惜氢烘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望家厌。 院中可真熱鬧播玖,春花似錦、人聲如沸饭于。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,011評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)掰吕。三九已至果覆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間殖熟,已是汗流浹背局待。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,139評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留菱属,地道東北人钳榨。 一個(gè)月前我還...
    沈念sama閱讀 48,377評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像照皆,于是被迫代替她去往敵國(guó)和親重绷。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1.地址總線膜毁,數(shù)據(jù)總線昭卓,控制總線在哪里愤钾,它們有什么作用?答:它們都是cpu連接外部組件的線路。地址總線:地址總線A...
    MagicalGuy閱讀 1,457評(píng)論 0 1
  • Return-Oriented-Programming(ROP FTW) Author: Saif El-Sher...
    RealSys閱讀 3,322評(píng)論 0 2
  • 原文地址:C語(yǔ)言函數(shù)調(diào)用棧(一)C語(yǔ)言函數(shù)調(diào)用棧(二) 0 引言 程序的執(zhí)行過(guò)程可看作連續(xù)的函數(shù)調(diào)用候醒。當(dāng)一個(gè)函數(shù)執(zhí)...
    小豬啊嗚閱讀 4,616評(píng)論 1 19
  • 這篇文章主要針對(duì)eip,esp,ebp寄存器進(jìn)行介紹能颁,有關(guān)別的通用寄存器在很多匯編相關(guān)書(shū)籍中都有介紹,由于篇幅有限...
    Hello密斯托李閱讀 633評(píng)論 0 0
  • 6e1eefd32667閱讀 182評(píng)論 0 0