今天覆習了一波彙編,學了點ida操作(學的亂七八糟就不寫了)
王爽的書上是16位,只能起到引導作用,已經不實用了,也就是說學完了那本之後連入門都不算,只能說了解了個大概。
32位系統下:
暫存器:
比16位的前面多了乙個e;
如ip–>eip
但其實,也可以用ip表示。
舉個例子:
eip:11111111
ip: 1111
eax:12345678
ax: 5678
al: 78
ah: 56
可以改變幾個計數暫存器的值,
但不能修改eip的值,
eip的值只能在程序那個視窗中修改,
用ctrl+g
跑到要修改的介面上面去,
右鍵設為新ip
顏色標誌:
最左邊的小塊上面的
顏色,灰底黑字就是正在處於位置,
反正就是那個與其他不一樣的那個。
用那個來判斷是否成功轉ip了。
標誌暫存器:
同樣只有 0,1兩個結果
o :溢位標誌
操作溢位了就會改變
-==乙個小點:
修改完程式後,再次開啟,修改處會變成灰色,可以用ctrl+a變為正常顏色。
p (cs) :
計算對應存在的數(二進位制形式)中1的個數。
偶數就為1
奇數就為0
z (ds) 常見於cmp中
某計算結果為0時成立。
為0時就為1
反之為0
s標誌 符號標誌(fs)
首位符號位:
負數就為1
正數為0
c:進製標誌:
就類似小學學的滿十進一。
按照進製看就歐克
說說RISC V的x0暫存器
risc v有32個通用暫存器,其中第1個暫存器x0硬編碼為0,即讀出來總是0,寫進去總是被丟棄。x0為risc v指令集的簡化可貢獻不少啊。mingdu.zhengatgmail dot com 搞過linux的都知道linux有兩個特殊的裝置 dev zero和 dev null。從 dev z...
x86常用彙編暫存器
32位 16位高8位 低8位eax axah alebx bxbh blecx cxch cledx dxdh dlesi siedi diesp spebp bpe extend,x 邏輯與算數 以上暫存器在物理硬體層表示為半導體,半導體容納01數值最大長寬度32位,也可以表示為乙個低16位,或者...
逆向 1 彙編 0x05 通用暫存器
0x00 暫存器 儲存資料 cpu 記憶體 硬碟 暫存器位數 32位cpu 8 16 32 64位cpu 8 16 32 64 80x86架構未改變,16 32 64位暫存器增加了暫存器的位數,彙編學習路線可以由16 32 64 0x01 通用暫存器 32位 eax ebx ecx edx esp ...