【Windows 逆向】使用 CE 工具挖掘关键数据内存真实地址 ( 查找子弹数据的动态地址 | 查找子弹数据的静态地址 | 静态地址分析 | 完整流程 ) ★
文章目錄
- 前言
- 一、查找子彈數(shù)據(jù)臨時內(nèi)存地址
- 二、查找子彈數(shù)據(jù)的靜態(tài)地址
- 1、調(diào)試內(nèi)存地址 05A59544 獲取基址 05A59478
- 2、通過搜索基址 05A59478 獲取內(nèi)存地址 0E1DC144
- 3、調(diào)試內(nèi)存地址 0E1DC144 獲取基址 0E1DBB70
- 4、搜索基址 0E1DBB70 獲取內(nèi)存地址 1032FC50
- 5、調(diào)試內(nèi)存地址 1032FC50 獲取基址 1032FBD4
- 6、搜索基址 1032FBD4 獲取內(nèi)存地址
- 三、靜態(tài)地址分析
前言
在博客 【W(wǎng)indows 逆向】使用 CE 工具挖掘關(guān)鍵數(shù)據(jù)內(nèi)存真實(shí)地址 ( CE 找出子彈數(shù)據(jù)內(nèi)存地址是臨時地址 | 挖掘真實(shí)的子彈數(shù)據(jù)內(nèi)存地址 ) 中 , 沒有找到真實(shí)地址 , 本篇博客重新開始一個完整流程 ;
在博客 【W(wǎng)indows 逆向】使用 CE 工具挖掘關(guān)鍵數(shù)據(jù)內(nèi)存真實(shí)地址 ( 完整流程演示 | 查找臨時內(nèi)存地址 | 查找真實(shí)指針地址 ) 中 , 找到的地址是界面中顯示的子彈地址 , 并不是實(shí)際的子彈地址 , 查找比較簡單 ;
本篇博客嘗試查找真實(shí)子彈地址 , 這個地址查找起來比較麻煩 ;
一、查找子彈數(shù)據(jù)臨時內(nèi)存地址
子彈個數(shù) 100 時 , 首次掃描 , 找到 4938 個內(nèi)存值為 100 的地址 ;
開一槍以后 , 再次掃描 99 值 , 就剩下 196 個地址了 , 之后再次減少子彈個數(shù) , 繼續(xù)掃描 , 仍然是 196 個地址 ;
參考 【W(wǎng)indows 逆向】使用 CE 分析內(nèi)存地址 ( 運(yùn)行游戲 | 使用 CE 工具分析游戲內(nèi)子彈數(shù)量對應(yīng)的內(nèi)存地址 | 內(nèi)存地址初步查找 | 使用二分法定位最終的內(nèi)存地址 ) 博客 , 使用二分法定位真實(shí)子彈數(shù)據(jù) ;
最終結(jié)果為 : 子彈個數(shù)的動態(tài)地址是 05A59544 ;
二、查找子彈數(shù)據(jù)的靜態(tài)地址
1、調(diào)試內(nèi)存地址 05A59544 獲取基址 05A59478
選中 05A59544 地址 , 按 F5 調(diào)試按鈕 , 得到基址 05A59478 ;
指針基址可能是 =05A59478 05C1C0ED - mov eax,[esi+000000CC] EAX=00000051 EBX=0E1DBB70 ECX=00000000 EDX=00000001 ESI=05A59478 EDI=00000001 EBP=00000000 ESP=0019F2F0 EIP=05C1C0F3指針基址可能是 =05A5947805C1C0E6 - je mp.CBasePlayerItem::DestroyItem+20D 05C1C0E8 - mov ecx,00000001 05C1C0ED - mov eax,[esi+000000CC] 05C1C0F3 - mov edx,[esi+000000D0] 05C1C0F9 - cmp eax,edx2、通過搜索基址 05A59478 獲取內(nèi)存地址 0E1DC144
搜索 05A59478 , 勾選 " 十六進(jìn)制 " 選項(xiàng) , 然后點(diǎn)擊 " 新的掃描 " 選項(xiàng) , 選擇 " 首次掃描 " , 掃描出 444 個結(jié)果 ;
3、調(diào)試內(nèi)存地址 0E1DC144 獲取基址 0E1DBB70
選擇第 1 個找到的地址 0E1DC144 , 雙擊該地址 , 將其拉下來 , 選中該地址 , 按 F5 快捷鍵調(diào)試 ;
剛開始顯示
開一槍之后 , 多了一行指令 , 這個指令就是子彈個數(shù)相關(guān)的指令 ;
分析多出的 05C03A42 - mov eax,[esi+000005D4] 指令 ; 得到基址 0E1DBB70 ;
指針基址可能是 =0E1DBB70 05C03A42 - mov eax,[esi+000005D4] EAX=05A59478 EBX=00000000 ECX=0E1DBB70 EDX=00000000 ESI=0E1DBB70 EDI=05C3F74D EBP=00000000 ESP=0019FA28 EIP=05C03A48指針基址可能是 =0E1DBB7005C03A36 - cmp [esi+00000948],bl 05C03A3C - jne mp.info_intermission+16A9 05C03A42 - mov eax,[esi+000005D4] 05C03A48 - mov ecx,[esi+000005D8] 05C03A4E - cmp eax,ebx4、搜索基址 0E1DBB70 獲取內(nèi)存地址 1032FC50
搜索基址 0E1DBB70 , 搜索到如下幾個內(nèi)存地址 , 選擇最后一個 , 將其拉下來按 F5 調(diào)試 ;
( 至于為什么選最后一個調(diào)試 , 前幾個都測試過了 , 全部失敗 , 這是經(jīng)過幾個小時反復(fù)試錯 , 找到的路徑 )
5、調(diào)試內(nèi)存地址 1032FC50 獲取基址 1032FBD4
調(diào)試內(nèi)存地址 1032FC50 獲取基址 1032FBD4 ;
指針基址可能是 =1032FBD4 05C13D3C - mov eax,[eax+7C] EAX=0E1DBB70 EBX=1524EC14 ECX=0E1DBB70 EDX=00000002 ESI=00000000 EDI=05BC61B0 EBP=05E60918 ESP=0019FA14 EIP=05C13D3F指針基址可能是 =1032FBD405C13D37 - cmp dword ptr [eax],00 05C13D3A - jne mp.func_rain+4A1 05C13D3C - mov eax,[eax+7C] 05C13D3F - pop esi 05C13D40 - ret6、搜索基址 1032FBD4 獲取內(nèi)存地址
此時找到了 綠色的 靜態(tài)地址 ;
這里有 2 個靜態(tài)地址 , 數(shù)值都是基址 1032FBD4
-
靜態(tài)地址 1 : pcawwclconfig_mm.dll+10A40 ;
-
靜態(tài)地址 2 : cstrike.exe+1100ABC ;
這里使用靜態(tài)地址 2 , 因?yàn)殪o態(tài)地址 2 是以程序名開始的 ;
三、靜態(tài)地址分析
搜索到的動態(tài)地址為 05A59544 ;
調(diào)試 05A59544 內(nèi)存地址 , 得到 05A59478 基址 ;
指針基址可能是 =05A59478 05C1C0ED - mov eax,[esi+000000CC]搜索 05A59478 基址 , 得到 0E1DC144 內(nèi)存地址 ;
調(diào)試 0E1DC144 內(nèi)存地址 , 得到 0E1DBB70 基址 ;
指針基址可能是 =0E1DBB70 05C03A42 - mov eax,[esi+000005D4]搜索 0E1DBB70 基址 , 得到 1032FC50 內(nèi)存地址 ;
調(diào)試 1032FC50 內(nèi)存地址 , 得到 1032FBD4 基址 ;
指針基址可能是 =1032FBD4 05C13D3C - mov eax,[eax+7C]搜索 1032FBD4 基址 , 得到 cstrike.exe+1100ABC 靜態(tài)地址 ;
構(gòu)造如下指針 , 指向了子彈數(shù)據(jù)所在的動態(tài)地址 05A59544 ;
總結(jié)
以上是生活随笔為你收集整理的【Windows 逆向】使用 CE 工具挖掘关键数据内存真实地址 ( 查找子弹数据的动态地址 | 查找子弹数据的静态地址 | 静态地址分析 | 完整流程 ) ★的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Windows 逆向】内存地址分析 (
- 下一篇: 【Windows 逆向】使用 CE 工具