游戏辅助教程-地址篇 CE找地址技巧 找不可见数据和可见数据技巧 教程详解 常见搜索技巧列举 CE搜索入门教程详解
該教程為系列教程,后續教程程會持續更新
對當前教程有疑問請在下方留言,我會按照大家建議修改和完善課程內容。請大家多多關注支持。
?
CE找地址教程
目錄
CE找地址教程
1.講在前面
2.數值類型
3.搜索精確的數值
4.搜索模糊數值
技巧-模糊搜索法
5.搜索浮點數
技巧-二分排除法
6.模糊搜索的補充
7.常見游戲的數值特征
FPS人物坐標
FPS人物視角
1.講在前面
? ? 本問講的是找地址教程,并不是找基址教程,找基址教程會在本博客專欄后面的教程里講解。
? ? 課程從最簡單的找地址說起,逐漸深入。另外分享一個些主流游戲類型的關鍵數據搜索技巧,提高大家的搜索效率。
? ? 本文以植物大戰僵尸和cs1.6為示例。因為我發現大部分涉及的搜索技巧,這兩個游戲里面都會涉及到。
2.數值類型
? ? 游戲中的各種數據都是存在內存里面,我們在CE搜索的時候,首先要知道我們要搜索的是什么數據類型,這樣才不會走岔路,CE所列舉的數值類型是對所有數值通用的,這里我對每個數值類型做一下說明
| 字節 | 1 | -128 到 127 或 0 到 255 |
| 2 字節 | 2 | -32,768 到 32,767 或? 0 到 65,535 |
| 4字節 | 4 | -2,147,483,648 到 2,147,483,647 或 -2,147,483,648 到 2,147,483,647 |
| 8字節 | 8 | -2^32 到 2^32 -1? 或? ? 0 到2^64 - 1 |
| 單浮點 | 4 | 1.2E-38 到 3.4E+38? ? 精度6位小數 |
| 雙浮點 | 8 | 2.3E-308 到 1.7E+308 精度15位有效小數 |
?
?
?
?
?
?
?
?不同的數值有不同的范圍,我們搜索的時候,要先排除不可能的數值范圍。
? 比如人的生命值為1883 ,那就不可能是字節型。因為字節型最大能表示255
? 比如金錢為500000,那么就不可能是字節型,和2字節型。因為2字節最大能表示的數是65535
? 實際搜索中,常用2字節,4字節來搜索整數。常用單浮點來搜索小數。
3.搜索精確的數值
? ? 這種地址即,所見即所得。界面上寫著什么數值,內存中就是什么數值。這種也是最簡單的搜索法。
? ? 這里搜索是植物大戰僵尸的陽光數值。
?
? ??? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? 首次搜索75? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 再次搜索100
? ?
? ? 可以看到,這時候我們搜到這個地址就是陽光地址了,我們修改數值為2500
? ? 這時候我們看到陽光值已經變成2500了
?
4.搜索模糊數值
? ? 這里我們采取的例子是植物大戰僵尸金錢的數值(下左圖)
??
? ? 問題:
? ? 這里我們按照之前方法搜索54910,發現搜索結果為空(上右圖)。
? ? ?
? ? 即,游戲中金錢的數值,并不是以54910的數值存在的。
? ? 這時候,就需要我們的模糊搜索法了。
技巧-模糊搜索法
? ? 模糊搜索法是在不知道數據具體是多少,卻能知道數值的變化規律時,采用的的搜索方法。此時,我們依據數據的變化去定位數值的基址。
? ????
? ? 首先,我們選擇未知初始值,單擊首次掃描。這時候我們可以搜索到4794w個地址
?
? ????
? ? 我們買個化肥,金幣減少,這時候我們 再次掃描? 減少的數值。
? ? 重復? ?買物品,搜減少數值? ?操作
?
? ??
? ? 經過多次篩選,剩下992個數值。這時我們停止消費金錢,多次再次掃描未變動的數值。剩下3個地址,
?
? ?
? ? 我們對這三個數值進行依次修改嘗試,發現第二個地址為正確數值,顯示數值= 實際數值*10
? ? 至此,我們通過模糊搜索找到了金錢的基址已經顯示數值和實際數值的對應關系。
? ? 附注:模糊搜索掃描類型的解釋
? ? ? ? 部分模糊搜索條件需要用戶輸入數值,以x,y代替
? ? 1.值大于....(x):? 在當前掃描結果中,篩選出值大于x的地址。
? ? 2.值小于....(x):在當前掃描結果中,篩選出值小于x的地址。
? ? 3.值介于....(x,y)兩者之間: 在當前掃描結果中,篩選出? ? >=x 并且 <= y的地址。
? ? 4.增加的數值: 相當于上次掃描結果,數值增加了。如 先前值 25,當前值 28;先前值1000,當前值2234。
? ? 5. 數值增加了....(x):??相當于上次掃描結果,數值增加了x。當x輸入為2時,先前值 25,當前值 27 滿足條件;先前值1000,當前值2234不滿足條件。
? ? 6.減少的數值: 相當于上次掃描結果,數值減少了。如 先前值 25,當前值 12;先前值1000,當前值834。
? ? 7. 數值減少了....(x):??相當于上次掃描結果,數值減少了x。當x輸入為2,先前值 25,當前值23 滿足條件;先前值1000,當前值834不滿足條件。
? ? 8.變動的數值:相對于上次掃描結果,數值發生了改變。
? ? 9.未變動的數值:相對于上次掃描結果,數值未發生改變。
5.搜索浮點數
? ? 這里類型不一致主要是,浮點數和整數。浮點數可以表示帶小數的數值,而整數不行。在絕大部分游戲中,浮點數是必不可少的數據類型。
? ? 因內存中浮點數和整數的表示方法不一樣(具體詳細參照浮點數在內存中的存儲方式),以整數形式的值去搜索浮點數,是不可能搜到結果的。我們用CE寫一個浮點數100,看看他對應的整數是多少
? ?可以看到,浮點數100,對應的整數值為 1120403456。
? ? 注:這里說明一下,CE中類型為 2字節,4字節,8字節均為整數型。單浮點,雙浮點均為浮點型。具體類型定義,請參數C語言數據類型定義。
? ? 下面就是實戰環節了。
? ? CS1.6人物生命值為浮點數(Valve后續作品求生之路生命值卻是整數,摸摸頭)。
? ? 這里不講解以整數型搜索的錯誤示范,網友們可自行嘗試。修改后即使顯示的生命值變成了自己想要的數值,但實際扣血中并不生效。如你現在生命值為85,你通過整數值搜索出的地址改為100,下次扣血依然從85開始算。
??
? ? 這里我們看到目前的生命值,是100 。我們搜索浮點數 99 到101。
? ? 這里為什么會搜索99 到101,而不是直接搜索100?
? ? 這里是經驗之談,比如很多游戲內存里面生命值是80.4,界面上顯示的是80,有的游戲內存里生命值是79.1,他界面上依然顯示80。由此可見,內存中數值和界面上顯示的數值可能有1的誤差,誤差的原因是把浮點數轉整數,根據不同的取整方式,造成不同的顯示結果。但是,cs1.6這款游戲你直接搜精確數值浮點數100就好了,也能搜索出來。
? ? 因此,當我們發現目標數值是浮點數的時候,我推薦用范圍搜索,因為這個能適用所有游戲。
?
? ? 這里我們改變一下生命值,當前生命值為80 ,的我們搜索79 到 81
? ? 重復? 減少生命值,再次搜索? ?操作
? ? 問題,無論如何重復搜索,都會剩下將近兩百個地址。按照之前的方法,一個一個算是不可能的?,F在就介紹一種排除方法。
技巧-二分排除法
? ? 這里,我們先把搜索的結果都添加到地址欄里。
按住shift選中第一條和中間的一條,選中差不多一半的地址,按space,或者右鍵菜單鎖定地址
?
? ?鎖定后,激活欄會變成,這表示值被鎖定,鎖定表示CE自動寫入固定數值。比如鎖定的時候這個數值,是100,那么每隔一定時間(默認0.5秒),都會朝這個地址寫入100。
? ?鎖定地址之后,
? ? ?1??如果發現我們在游戲中消耗的生命值會自動回復,則表明,我們要找的地址在鎖定的地址中。
? ? ?2? 如果我們游戲中的生命值正???#xff0c;則我們要找的地址不在鎖定地址中。
?
?此時,我們發現生命值變成了94,則我們要搜索的地址不在目標范圍內。這時,我們應該刪除當前鎖定地址。并在鎖定剩下的一半的地址。?
?
?
判斷生命值是否正常扣除,重復之前判斷。
? ? 1 如果鎖定的地址,不能對人物的生命產生影響,刪除當前鎖定的地址,鎖定剩下地址的一半的地址。
? ? 2 如果鎖定的地址,能鎖住任務生命。刪除未鎖定的地址,把當前地址鎖定的地址解鎖一半,看生命值是否影響。
我們的思路是,通過鎖定,排除掉不對生命值影響的地址。
? ??
? ? 通過一段時間的嘗試,我們發現只留下四個地址,我們就依次修改生命值,看哪個生效,最終,找到地址0x080B1D5C為任務的生命值。鎖定該地址后,人物生命任何形式的消耗都講自動回復。
? ?修改成100 后,生命值變成100。
6.模糊搜索的補充
? ? 模糊搜索的先決條件是,你知道數值是按照什么規律變化。
? ? 要是你不知道數值如何變化,那怎么搜索呢。
? ? 比如消耗金錢,可以搜索,減少的數值。獲得金錢可以搜索增加的數值。但是,比如槍械的后坐力,很多同學可能無從入手,不知道后坐力數值的特征。
? ? 這里我給大家提供一種解決辦法,或者說一種思路。解決這類問題主要是兩種思路,
? ? 一種是來源于自己推測,如果你是個游戲開發人員,你自己實現后坐力如何測試。比如說冷卻時間,一個魔方的冷卻時間是5秒,那么我會搜索一個計時器,記錄當前距離上次釋放的時間,從0 漲到5000ms。
? ? 一種來源是經驗,可以從其他地方收集,或者你自己的經驗。比如fps游戲人物的位置是浮點數類型的,不是整數型,等等。
? ? 文章最后一節會補充一些游戲的數值特征,并且會根據情況持續更新完善。
7.常見游戲的數值特征
FPS人物坐標
x,y,z均為單浮點浮點數。并且數值響相鄰,如 x地址 + 4 = y地址? ?x地址+ 8 = z地址。
FPS人物視角
游戲中人物視角主要包括水平視角和垂直視角。
cs1.6 :
垂直視角最頂部為-89.0? 最底部為89.0。
水平視角范圍 為 0.0-360.0 ,垂直視角地址-4 = 水平視角地址
天際起源:? ? ? ?垂直視角最頂部為89.0? 最底部為271。
? ? ? ? ? ? ? ? ? ? ? 水平視角范圍 為 0.0-360.0 ,垂直視角地址-4 = 水平視角地址
?
總結
以上是生活随笔為你收集整理的游戏辅助教程-地址篇 CE找地址技巧 找不可见数据和可见数据技巧 教程详解 常见搜索技巧列举 CE搜索入门教程详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 拟合sigmoid曲线_使
- 下一篇: 【中断篇】中断控制器及中断检测时序