数据分析之CE找数据大法
一.基本介紹
CE的全稱為Cheat?Engine,是一款內存修改編輯工具,其官網是http://www.cheatengine.org,可以在其官網下載到最新的CE工具,目前最新版本是Cheat?Engine6.5。CE同時也是一款開源的工具,使用者可以在git中下載源代碼:?https://github.com/cheat-engine/cheat-engine。
CE的功能包括有16進制編輯,反匯編程序,內存查找工具。與同類修改工具相比,它具有強大的反匯編功能及調試功能,可以附加到游戲中進行調試,所以是分析游戲的工具之一。
?
二.CE內存搜索功能的使用
1.?精確搜索:
CE的主界面如下圖所示,使用CE搜索游戲數(shù)據(jù),首先需要將CE附加到游戲進程中。
點擊左上角菜單下發(fā)的綠色方框的按鈕,打開進程列表對話框。
選擇相應的游戲并點擊打開,此時,就可以在數(shù)值搜索框中輸入需要搜索的數(shù)據(jù)。比如搜索游戲中顯示角色血量值的存放地址:
?
如上圖血量所示,在CE的搜索數(shù)值輸入框中輸入“生命值”12393,選擇掃描類型為“精確數(shù)值”,點擊“新的掃描”開始第一次掃描。
搜索出的匹配值有98個,由于結果較多,這個時候不能確定正確的存放地址,需要再次搜索。
這個時候被怪打一下(使血量變化),輸入新的生命值,點擊“再次搜索”,此時的搜索值可以縮小到3個。
此時經過測試就可以發(fā)現(xiàn)第一個地址就是存放游戲界面中血量顯示的地址。
2.?模糊搜索
如果搜索數(shù)值不確定的話,就需要使用模糊搜索的方法。使用模糊搜索的情況主要有具體數(shù)值不顯示在游戲界面上,比如血量用百分比表示。模糊搜索的類型比較多,如下圖所示:
同樣以搜索生命值為例,首次掃描時選擇“未知的初始值”
點擊“首次掃描”,這個時候會出現(xiàn)非常多的掃描結果。這個時候去被怪物打一下減少血量后,由于此時數(shù)值是減小的,所以在掃描類型中選擇“減少的數(shù)值”,然后點擊再次掃描:
重復多次掃描后,即可找到存放的生命值的地址。
三.代碼跟蹤
代碼跟蹤比較常見的用途是找基址,游戲中任何數(shù)據(jù)都在內存中存在,比如角色的血,藍,等級等數(shù)據(jù),這些數(shù)值存放的方式一般是對象+偏移,在C++就是以指針的方式表示,如果需要知道對象在內存中的存放地址,就需要找到對象的基址。
需要知道對象的地址或數(shù)據(jù)的偏移,常見的方法就是找到訪問或改變這個值的指令,可以使用Cheat?Engine的反匯編及調試功能。
如上例的數(shù)據(jù)搜索找到的生命值存放的地址,將其放到CE最下方地址列表中,右鍵點擊列表中的地址項,如下圖所示,“找出是什么訪問了這個地址”和“找出是什么改下了這個地址”分別可以跟蹤生命值在代碼的什么地方被讀取和改寫。
例如需要找到在血量被改寫的地方,先在地址列表中右鍵點擊“找出是什么改寫了這個地址”,此時CE會附加到其內置的調試器,并自動列入對生命值進行寫入的代碼。
此時,ecx=0x22B96D34是對象的地址,血量通過eax賦值到+41Ch的地址漂移處。如上圖所示,所以一級指針ecx的偏移+41Ch地址處。Ecx的賦值為上一條指令mov?ecx,?[esi+10],其二級指針是esi的偏移+10h地址處,再往上一條指令mov?esi,?[esi+4FA0],可以確定三級指針為esi,偏移為+4FA0h,以此類推,就可以找到血量存放的基址。
?
*轉載請注明來自游戲安全實驗室(GSLAB.QQ.COM)
轉載于:https://www.cnblogs.com/nothx/p/8537303.html
總結
以上是生活随笔為你收集整理的数据分析之CE找数据大法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 江湖悠悠宠物心情怎么提升?
- 下一篇: maven工程插件配置