一 mov 和 lea
mov:
mov eax , [ 00401000] --- 是取出裡面的值
eax=[00401000]
mov :把後面的值賦給 eax
lea eax, [ 00401000]
eax=00401000
二 push pop sub add
push(改變堆疊,存放資料):
push epb==> sub esp,4 + mov[esp],epb (mov[esp],epb 把epb值放到esp這個位址裡)
pop(彈出資料):
pop *** ==>mov ***,[esp] + add esp ,4 (mov ***,[esp] 陳esp位址裡的值給***)
sub(減): sub eax,1 ==>eax=eax-1
add(加): add eax ,1 ===> eax=eax + 1
三 call和堆疊的關係
eip暫存器:指令指標暫存器,**暫存器,儲存著我們將要執行的**
push了call這行**的下一行**。
push eip + jmp(某個位址)
本來是在51fcbc這個位置, 如何去到67d6a0 jmp無條件跳轉
return :
pop eip
逆向彙編基礎
1.1 cpu基本功能 1.1.1 目標 計算機系統中的cpu只能執行機器指令 由機器指令組成的程式,被稱為目標程式,也被稱為目標 計算機系統最終執行的是目標程式 int cf11 void 等價於 xor ecx,ecx xor eax,eax inc ecx ll3 cf11 mov edx,e...
逆向工程之彙編基礎
1.1 暫存器 以下是通用暫存器 除了非通用暫存器還有eip指令指標暫存器 多數字串指令通常把ecx用作計數器,把esi作為源指標,把edi作為目的指標,通常情況下棧操作會使用ebp和esp。除了通用暫存器和eip指令暫存器外還有6個16位段暫存器 段 cs 資料段 ds 棧段 ss 額外段 es ...
逆向基礎之彙編(一)
目錄 1.前言 2.進製 2.1 進製的簡寫 3.資料寬度 4.原始碼 反碼和補碼 4.1 有符號與無符號 4.1.1 無符號 4.1.2 有符號 4.2 編碼規則 4.2.1 原碼 4.2.2 反碼 4.2.3 補碼 5 位運算 5.1 與運算 5.2 或運算 5.3 異或運算 5.4 非運算 5...