免責聲明:內容僅供學習參考,請合法利用知識,禁止進行違法犯罪活動!
本次游戲沒法給
內容參考于:微塵網絡安全
工具下載:
鏈接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd=6tw3
提取碼:6tw3
復制這段內容后打開百度網盤手機App,操作更方便哦
上一個內容:9.x86游戲實戰-匯編指令mov
上一個內容寫的是mov指令的用法與作用,本次的lea與mov差不多,mov是把右邊的值給左邊,lea是把右邊的地址給左邊,也就是說lea會把右邊的值當成內存地址
如果按f8之后OD會卡死,嘗試使用下圖的菜單
如下圖的四行代碼為例
![]()
執行第一行 mov eax, ecx
![]()
執行第二行 lea eax,[ecx],還會把ecx的值給eax,它與mov eax, ecx一樣
![]()
執行第三行lea eax, [ecx+30]
![]()
執行第四行 lea eax, [233]
![]()
這樣lea與mov的區別不明顯,接下來使用_asm,使用_asm就會很清晰,lea把右邊的值的內存地址給左邊,mov把右邊的值給左邊
![]()
然后有個反匯編
![]()
我們寫的匯編代碼,編譯器會給我們做修改,如下圖
#include <iostream> #include "Windows.h"int main() {int a = 1;int b = 2;int c = 3;int d = 4;_asm {mov eax,amov c,eaxlea ecx, [b]mov d,ecx}printf("%d, %x", c, d);printf("====");//跨進程讀內存();//跨進程寫內存(); }