免責聲明:內容僅供學習參考,請合法利用知識,禁止進行違法犯罪活動!
本次游戲沒法給
內容參考于:微塵網絡安全
上一個內容:7.x86游戲實戰-C++實現跨進程讀寫-跨進程寫內存
工具下載:下載 OllyICE_wc.zip這個
鏈接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd=6tw3
提取碼:6tw3
復制這段內容后打開百度網盤手機App,操作更方便哦
打開OD
用管理員啟動NewOd.exe
![]()
下圖菜單欄里的打開和附加,打開的意思是用OD運行一個程序,附加是自己運行一個程序(雙擊exe文件運行程序)讓OD附加上,一般都會使用附加
![]()
然后點擊附加,然后隨便找一個程序附加,附加窗口里面顯示的是進程(程序運行起來就被稱為進程),然后想附加的進程可能會沒有,這時重啟電腦試試,如果還沒有后面會有解決辦法
![]()
附加完之后,會有下圖的四個區域,代碼區域、寄存器區域、內存區域、棧區域
![]()
下圖紅框位置是當前程序狀態
![]()
停止的狀態,效果就是附加的程序卡死
![]()
停止狀態點擊下圖紅框位置就會讓程序運行起來
![]()
有時候它的窗口會變成下圖紅框的樣子
![]()
如下圖鼠標放到邊緣變成箭頭,然后鼠標左鍵按住左、右、上、下拖動一下就能明白了
![]()
或者點擊下圖紅框位置的C
![]()
如下圖有時會彈出其它的窗口搞的很亂,然后按C也沒有用
![]()
這時雙擊下圖紅框位置就可以了
![]()
代碼區
代碼區為了好理解可以稱它是代碼段(就是程序中專門用來放代碼的內存空間),如下圖它有4列,從左往右分別是 代碼的內存地址、硬編碼、匯編代碼、注釋
![]()
代碼的內存地址,就是內存地址所代表的空間里的內容視作代碼
硬編碼是cpu看的(英特爾、AMD、蘋果的m系列)不同處理器用的指令集不一樣,然后就會導致硬編碼不一樣
匯編代碼,匯編是通過硬編碼翻譯的(老前輩們就是用硬編碼寫程序,后面使用硬編碼實現匯編語言,又通過匯編實現c語言)
注釋是給人說明這段代碼什么意思
內存區:
內存區又稱數據區(為了區分數據是代碼還是數據(數據這倆字很抽象,這里可以理解成除了代碼以外的所有東西)),如下圖紅框,首先ctrl+G彈出下圖里的彈框,然后輸入0x77166C1C,輸入完點擊ok,0x77166C1C是代碼的內存地址
![]()
然后可以看到下圖紅框,可以通過數據區來看代碼,但是通過數據區看代碼就只能看硬編碼了,然后在代碼區看代碼它會自動給翻譯匯編代碼
![]()
同理在代碼區看數據區的內容,可以看到它翻譯的匯編代碼是亂的(后面就知道為什么說它是亂的了)
![]()
到這應該可以明白一件事,同樣是數字(數據)對它的不同看法會有不同的樣子,數據本身沒有任何意義,有意義的是我們如何去解析,有一個東西叫數據結構,通過上方的例子帶入數據結構應該可以很好理解
OD菜單的說明
![]()
看這位大哥寫的(寫的有點官方主要了解了解,看不懂也沒事,后面用的時候會用白話寫):OD窗口介紹_od界面介紹-CSDN博客
?