【Windows 逆向】使用 CE 工具挖掘关键数据内存真实地址 ( 完整流程演示 | 查找临时内存地址 | 查找真实指针地址 )
文章目錄
- 前言
- 一、查找子彈數據臨時內存地址
- 二、查找子彈數據真實地址
前言
在上一篇博客 【Windows 逆向】使用 CE 工具挖掘關鍵數據內存真實地址 ( CE 找出子彈數據內存地址是臨時地址 | 挖掘真實的子彈數據內存地址 ) 中 , 沒有找到真實地址 , 本篇博客重新開始一個完整流程 ;
一、查找子彈數據臨時內存地址
使用 【Windows 逆向】使用 CE 分析內存地址 ( 運行游戲 | 使用 CE 工具分析游戲內子彈數量對應的內存地址 | 內存地址初步查找 | 使用二分法定位最終的內存地址 ) 博客中的方法 , 找出子彈數據的臨時地址 ;
子彈個數 50 , 先進行首次掃描 ;
找出 3000 多地址 ;
開一槍 , 子彈個數變量 49 , 再次掃描 49 , 這次就剩下 197 個地址 ;
( 此處要點擊 " 再次掃描 " 按鈕 , 不要點成首次掃描 )
再開一槍 , 子彈變成 48 , 此時再次掃描 , 變成 196 個地址 ; 之后無論如何改變子彈個數 , 都是 196 個地址 ;
開始使用二分法篩選子彈個數 , 鎖定一部分 , 開一槍 ,
- 如果子彈個數改變 , 說明鎖定的這部分中 , 沒有子彈個數數據 , 刪除這部分 鎖定的數據 ;
- 如果子彈個數沒有改變 , 說明鎖定的這部分中 , 有子彈個數數據 , 刪除另外一部分的 沒有鎖定的數據 ;
鎖定上半部分 , 開一槍 , 發現子彈個數沒有減少 , 說明子彈數據在鎖定的數據中 , 刪除底部沒有鎖定的所有數據 ; 選中后按 delete 鍵即可刪除 ;
將剩余數據的后半部分解除鎖定 , 選中后 , 點擊空格 , 切換 鎖定 / 未鎖定 狀態 , 開一槍后 , 發現子彈個數仍然不變 , 刪除 未鎖定部分數據 ;
再次解除后半部分數據鎖定 , 開一槍 , 數據仍然不變 , 說明子彈數據在鎖定的這部分中 , 刪除沒有鎖定的數據 ;
按照上述方法 , 最終只剩下一個數據 ; 給該地址設置 " 子彈數據地址 " 描述 , 將內存地址值改為 888 , 此時游戲內顯示的子彈個數也變成了888 ;
二、查找子彈數據真實地址
尋址注意事項 : 尋址時 , 盡量找
MOV 寄存器1 , [寄存器2 + 立即數]樣式的指令 ;
子彈數據地址為 0x019FFB48 , 這是個臨時地址 , 每次啟動該地址值都不同 ;
選中子彈數據地址 , 按 F5 , 使用 Cheat Engine 調試器載入目前進程 ;
如下指令 , 訪問了 0x019FFB48 地址 ,
核心數據 :
指針基址可能是 =019FFAA8 019386B2 - mov edi,[edi+000000A0]完整數據 :
EAX=00000090 EBX=00000014 ECX=00000078 EDX=019FFAA8 ESI=000001BB EDI=00000378 EBP=01A0032C ESP=0019FA88 EIP=019386B8指針基址可能是 =019FFAA8019386A6 - mov eax,[edx+000000D8] 019386AC - mov ecx,[edx+000000D4] 019386B2 - mov edi,[edi+000000A0] 019386B8 - sub eax,ecx 019386BA - test edi,edi查找 019FFAA8 值 , 找到 2 個綠色的地址值 , 綠色的地址值就是我們需要找的值 ;
把第一個綠色地址拉下來 , 雙擊查看該地址值 , 為
cstrike.exe+5FFD58點擊手動添加地址 , 勾選 " 指針 " 選項 ,
在下面的地址欄中 , 輸入 cstrike.exe+5FFD58 ,
在上面的立即數欄中輸入 A0 , 這是根據 019386B2 - mov edi,[edi+000000] 指令來的 ,
此時可以看到 , 該指針指向 0x019FFB48 地址 ;
最終得到子彈的真實數據地址 , cstrike.exe+5FFD58 + A0 ; 每次啟動 , 子彈數據都是在這個指針指向的內存中 ;
總結
以上是生活随笔為你收集整理的【Windows 逆向】使用 CE 工具挖掘关键数据内存真实地址 ( 完整流程演示 | 查找临时内存地址 | 查找真实指针地址 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Windows 逆向】使用 CE 工具
- 下一篇: 【Windows 逆向】内存地址分析 (