【Windows 逆向】使用 CE 工具挖掘关键数据内存真实地址 ( CE 找出子弹数据内存地址是临时地址 | 挖掘真实的子弹数据内存地址 )
文章目錄
- 一、CE 找出子彈數(shù)據(jù)內(nèi)存地址是臨時(shí)地址
- 二、挖掘真實(shí)的子彈數(shù)據(jù)內(nèi)存地址
- 1、找出哪些指令訪問了子彈數(shù)據(jù)地址 0x21160114
- 2、查看 0x21160114 地址是如何計(jì)算出來的 ( ESI 寄存器的值 0x21160048 + 000000CC 立即數(shù) 相加得到 )
- 3、查詢指針基址 21160048
一、CE 找出子彈數(shù)據(jù)內(nèi)存地址是臨時(shí)地址
在上一篇博客 【W(wǎng)indows 逆向】使用 CE 分析內(nèi)存地址 ( 運(yùn)行游戲 | 使用 CE 工具分析游戲內(nèi)子彈數(shù)量對應(yīng)的內(nèi)存地址 | 內(nèi)存地址初步查找 | 使用二分法定位最終的內(nèi)存地址 ) 中 , 分析到子彈的數(shù)據(jù)對應(yīng)的地址是 019FFB48 地址 ;
上述 019FFB48 地址是一個(gè)臨時(shí)地址 , 這個(gè)臨時(shí)地址每次啟動(dòng)都會(huì)改變 ; 再次啟動(dòng) , 中廣核個(gè)地址又變成了 21160114 地址 ;
二、挖掘真實(shí)的子彈數(shù)據(jù)內(nèi)存地址
使用 CE 定位出了子彈數(shù)據(jù)的地址是 0x21160114 地址 ; 可以找到一個(gè)最終的子彈數(shù)據(jù)地址 , 查找方式如下 :
目的是為了計(jì)算 0x21160114 地址值 , 是由哪些值計(jì)算出來的 ;
1、找出哪些指令訪問了子彈數(shù)據(jù)地址 0x21160114
右鍵點(diǎn)擊找出的 子彈數(shù)據(jù) 臨時(shí)內(nèi)存地址 , 在彈出的菜單欄中選擇 " 找出是什么訪問了這個(gè)地址 " , 或者使用 F5 快捷鍵 ;
彈出提示對話框 , 選擇 " 是 " ;
彈出如下對話框 , 點(diǎn)擊 " 停止按鈕 " ,
調(diào)試就會(huì)暫停 ;
下圖中 , 左側(cè)的計(jì)數(shù) , 表示該指令被訪問的次數(shù) ,
下面的這些指令 , 訪問了 0x21160114 地址 ;
這些指令 , 都有一些規(guī)律 , 這些指令都是 esi 寄存器的值 加上 000000CC 十六進(jìn)制數(shù)值 ;
esi+000000CC2、查看 0x21160114 地址是如何計(jì)算出來的 ( ESI 寄存器的值 0x21160048 + 000000CC 立即數(shù) 相加得到 )
雙擊第一條指令 16B2C0ED - mov eax,[esi+000000CC] , 得到如下數(shù)據(jù) , 其中得到 EAX 和 ESI 兩個(gè)寄存器值 :
- EAX=00000061
- ESI=21160048
其中 ESI 寄存器的值 ( 0x21160048 ) + 000000CC 立即數(shù) , 計(jì)算結(jié)果如下 :
0x21160048+0x000000CC=0x21160114\rm 0x21160048 + 0x000000CC = 0x211601140x21160048+0x000000CC=0x21160114
0x21160114 地址就是子彈數(shù)據(jù)的真實(shí)地址 , 這個(gè)地址是 ESI 寄存器的值 加上 0xCC 立即數(shù) , 得到的地址 ;
具體的數(shù)據(jù)如下 :
EAX=00000061 EBX=0799BB70 ECX=00000000 EDX=00000001 ESI=21160048 ★ EDI=00000001 EBP=00000000 ESP=0019F2F0 EIP=16B2C0F3指針基址可能是 =2116004816B2C0E6 - je mp.CBasePlayerItem::DestroyItem+20D 16B2C0E8 - mov ecx,00000001 16B2C0ED - mov eax,[esi+000000CC] ★ 16B2C0F3 - mov edx,[esi+000000D0] 16B2C0F9 - cmp eax,edx查詢另外 3 個(gè)數(shù)據(jù) , 這 4 條指令 , 都是同樣的值 ;
3、查詢指針基址 21160048
ESI 寄存器 中有個(gè)值 0x21160048 , 這個(gè)值不知道是怎么來的 , 這里就需要在整個(gè)內(nèi)存中搜索該值 , 查找哪些內(nèi)存地址中保存了來值 ;
進(jìn)而查找 , 是哪條指令 , 計(jì)算出了該值 , 或者說是 訪問了該值 ;
勾選 " 十六進(jìn)制 " , 拷貝 21160048 值到搜索框中 , 左側(cè)搜索出來的就是存在 0x21160048 值的地址 ;
選擇查找結(jié)果的第一個(gè) , 復(fù)制到下方地址列表 , 按 F5 查看哪些指令訪問了 0x21160048 地址 , 這里的訪問指的是 讀取 , 寫出 操作 ;
開槍 , 沒有任何反應(yīng) ;
直到選擇查找結(jié)果的第二個(gè) , 復(fù)制到下方地址列表 , 按 F5 查看哪些指令訪問了 0x21160048 地址 , 這里的訪問指的是 讀取 , 寫出 操作 ;
開槍 , 才有反應(yīng) ;
指針基址可能是 =0799C144 ★
EAX=00000000 EBX=00000005 ECX=21160048 EDX=00000000 ESI=0799BB70 EDI=0799C144 EBP=00000000 ESP=0019F304 EIP=16B100F0指針基址可能是 =0799C144 ★16B100E3 - lea edi,[esi+000005D0] 16B100E9 - mov ebx,00000006 16B100EE - mov ecx,[edi] 16B100F0 - cmp ecx,ebp 16B100F2 - je mp.CBasePlayer::PlayerDeathThink+617D選擇查找結(jié)果的第三個(gè) , 復(fù)制到下方地址列表 , 按 F5 查看哪些指令訪問了 0x21160048 地址 , 這里的訪問指的是 讀取 , 寫出 操作 ;
開槍 , 才有反應(yīng) ;
指針基址可能是 =0799BB70 ★
拷貝的數(shù)據(jù)如下 :
EAX=00000001 EBX=00000001 ECX=21160048 EDX=16B463F8 ESI=0799BB70 EDI=16D40640 EBP=0000000E ESP=0019F320 EIP=16AFB378指針基址可能是 =0799BB70 ★16AFB36A - jne mp.info_map_parameters+4E42 16AFB36C - mov [esi+00000384],bl 16AFB372 - mov ecx,[esi+000005E8] 16AFB378 - test ecx,ecx 16AFB37A - je mp.info_map_parameters+4E76調(diào)試第 4 個(gè)內(nèi)存地址 , 得到的指針基址是 : 指針基址可能是 =0799BB70 ★
EAX=21160048 EBX=0799BB70 ECX=00000000 EDX=00000001 ESI=21160048 EDI=00000001 EBP=00000000 ESP=0019F2F0 EIP=16B2C0E6指針基址可能是 =0799BB70 ★16B2C0D8 - cmp esi,[ebx+000005EC] 16B2C0DE - jne mp.CBasePlayerItem::DestroyItem+20D 16B2C0E0 - cmp eax,[ebx+000005EC] 16B2C0E6 - je mp.CBasePlayerItem::DestroyItem+20D 16B2C0E8 - mov ecx,00000001調(diào)試第 5 個(gè)內(nèi)存地址 , 得到的指針基址是 : 指針基址可能是 =103508BC ★
EAX=103508BC EBX=15A3C194 ECX=21160048 EDX=00000002 ESI=00000000 EDI=16ACE3C0 EBP=00000014 ESP=0019FAD0 EIP=16ACE3CB指針基址可能是 =103508BC ★16ACE3C4 - test eax,eax 16ACE3C6 - je mp.GetNewDLLFunctions+8A4 16ACE3C8 - mov ecx,[eax+7C] 16ACE3CB - test ecx,ecx 16ACE3CD - je mp.GetNewDLLFunctions+8A4總結(jié)
以上是生活随笔為你收集整理的【Windows 逆向】使用 CE 工具挖掘关键数据内存真实地址 ( CE 找出子弹数据内存地址是临时地址 | 挖掘真实的子弹数据内存地址 )的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Windows 逆向】使用 CE 分析
- 下一篇: 【Windows 逆向】使用 CE 工具