1. 程式人生 > 實用技巧 >FPS 遊戲快速找基址方法

FPS 遊戲快速找基址方法

找本人座標資料: 通常情況下(X,Y)座標的浮動較大不好定位,我們可以找Z座標因為Z座標控制人物的高低引數比較好找。

1.首先搜尋未知初始值(浮點數),然後找到一個梯子,向上走搜尋增加的數值,向下搜尋減少的數值。
2.重複這個過程最後就能找到Z軸的座標,在遊戲中(X,Y,Z)座標是緊挨著的結構(+0,+4,+8) 找到了Z座標相應的就可以每次減4計算出(X,Y)座標。

本人座標x = server.dll+4F2FEC + 288 - 8
本人座標y = server.dll+4F2FEC + 288 - 4
本人座標z = server.dll+4F2FEC + 288

找敵人座標資料: 上方我們找到了自己的XYZ座標,接著我們可以通過自己的Z座標定位到隊友的Z座標。

sv_cheats 1 開啟創造模式 bot_stop 1 暫停機器人運動 bot_add-ct 新增反恐精英隊友

1.首先開啟遊戲控制檯輸入命令,新增一個隊友,然後暫停其走動,此時我們和隊友站在一個高度上。
2.搜尋未知初始值(浮點數),然後緊接著使用精確掃描,掃描地址為我的座標z的地址。
3.繼續搜尋,比如說我在下坡,隊友在上坡,此時我的Z座標資料肯定是隊友小,那麼相對的他的座標比我大,大出來的部分就是我的座標資料。

所以我們搜尋浮點數,選擇【值大於】大於的數值就是我們自己的座標z,然後讓自己比隊友高,並搜尋【值小於】,依次遍歷最後可確定座標資料。

敵人x = server.dll+4F2FFC + 288 - 8
敵人y = server.dll+4F2FFC + 288 - 4
敵人z = server.dll+4F2FFC + 288

找自己的滑鼠角度: 通常FPS遊戲滑鼠的準心Y座標向上抬會減少,鼠標準心向下會增加,不斷的遍歷(浮點數)就可以搜尋到滑鼠的準心Y座標,得到了滑鼠的Y座標之後然後+4就能得到滑鼠的X的座標引數。

1.開啟CE進入遊戲,將滑鼠放置在螢幕的中心位置,直接搜尋【未知初始化資料】(浮點數),然後將遊戲滑鼠向上微抬,回到CE搜尋【減少的數值】多次向上抬並搜尋減少的數值。
2.接著將滑鼠逐步向下微壓,回到CE然後搜尋【增加的數值】這裡要重複十幾次,最後不要動滑鼠直接搜尋【未變動的數值】即可找到以下結果,這裡都是基地址選哪一個都可以。

只可以讀出座標資料
滑鼠 x = engine.dll+61D254 + 4
滑鼠 y = engine.dll+61D254
滑鼠 x = client.dll+4C0300 + 4
滑鼠 y = client.dll+4C0300

可設定滑鼠位置
滑鼠 x = engine.dll +4622CC +4
滑鼠y = engine.dll + 4622CC

找FOV視場角: 視場角又稱FOV,視場角的大小決定了攝像機的視野範圍,簡單來說FOV就是螢幕與攝像機之間的夾角,我們可以通過狙擊槍的狙擊鏡來找到遊戲的視場角度,

當未開鏡狀態時搜尋未知初始化資料(浮點數),開鏡後搜尋改變的數值(浮點數),依次遍歷即可找到該遊戲的視場角度,一般的FPS遊戲視場角為90度的居多。

1.直接開找,開啟CE和遊戲,購買一把狙擊槍,然後在CE中搜索【未知的初始值】,注意這裡要選擇浮點數搜尋。
2.回到遊戲,開啟狙擊槍的一倍狙擊鏡,在CE中搜索【變動的數值】,接著開啟二倍狙擊鏡,繼續搜尋【變動的數值】,最後關閉狙擊鏡搜尋【變動的數值】,該過程要重複10次左右。
3.此時狙擊鏡處於關閉狀態,直接搜尋【未變動的數值】,然後拔出你的手槍,搜尋【未變動的數值】因為手槍的視野與未開鏡狀態下的狙擊槍是一樣的,這樣搜尋能夠儘量排除干擾,從而更精確的篩選到我們所需要的資料。
4.經過了上方的遍歷以後,結果已經不多了,我們可以猜測這個角度應該在【0-180度】之間,所以通過【介於兩者之間】再次篩選一下結果,之後就可以看到有兩個90度的角,而且是綠色的基址,一般情況下開發人員預設會將這個角設定為45,75或90度。

FOV = client.dll+5046F0
FOV = client.dll+504628
FOV = client.dll+5047B8
FOV = client.dll+50489C
FOV = engine.dll+3C1720

取當前玩家數量: 玩家數量的查詢非常簡單,大部分的FPS遊戲都有人物統計選單,按下TAB鍵則可看到,我們可以通過檢視人物數量來查詢。

第一次搜尋1(4位元組),然後按下+號新增1個機器人搜尋2,再次新增一個機器人搜尋3,不斷遍歷即可得到玩家數量。

算上我自己的人機數量: server.dll+4EEFE8
算上我自己的人機數量: engine.dll+5D29BC

不算我自己的人機數量: server.dll+4EEFE0
不算我自己的人機數量: server.dll+588878

找敵人血量: 找敵人血量的目的是為了判斷敵人是否死亡,這裡找血量有兩種方式,第一種是找自己的血量,由於我們知道敵人的基地址,所以找到自己血量的偏移就可以通過敵人的基地址定位到敵人血量上。

第二種找法是預設搜尋100,然後打敵人一槍搜尋減少的數值,然後搜尋未變動的數值,再次打敵人一槍搜尋減少的數值,不斷的遍歷最後就能找到我們想要的敵人的血量

自己血量偏移 = e4

自己血量: server.dll + 54B6C8 + e4
自己血量: server.dll + 54A82C + e4
自己血量: server.dll + 4F2FEC + e4

找到自己血量偏移,配合敵人基地址,即可得到敵人的血量,當血量等於1時表示敵人已經死亡。

敵人血量: server.dll + 4F2FFC + e4

找陣營: 首先進入遊戲,按下M鍵可以切換陣營,通過不斷地切換,然後搜尋即可找到標識本人陣營的基地址與偏移地址,然後通過其他人的基地址加我們自己的偏移,即可得到其他人的陣營資料,一般陣營會用(1,2,3,4)這些數字來表示。

1.首先選擇搜尋未知初始值(4位元組),然後搜尋未變動的數值,此時切換陣營,搜尋變動的數值,以此迴圈最終即可找到本人陣營。

本人陣營: server.dll+4F2FEC + 1F4
敵人陣營: server.dll+4F2FFC + 1F4

本人陣營: server.dll+54A82C + 1F4
本人陣營: server.dll+54B6C8 + 1F4

找相機矩陣: 找矩陣的方法就是不斷移動自己相機位置,最好拿把狙擊槍,然後開鏡搜尋變動的數值,移動身體搜尋變動數值,或者是開鏡移動身體搜尋變動的數值,這樣配合來找,最終可以鎖定在2000個數值左右,然後就可以開找。

----------------------------------------------------------------------
【4x4 豎矩陣】

0.74      -0.09         0.00        -124.05
0.07       0.54         1.22         -1924. 48
0.11       0. 91       -0. 41       -2700. 54
0.11       0.91        -0. 41       -2692. 87

【4x4  橫矩陣】

0.74         -0.09             0. 00              0.91
0.07          0.54              1.22             -0.41
0.11          0.91             -0.41             -0.41
-124.05    -1924. 48    -2700. 54       -2692. 87

----------------------------------------------------------------------
【3x4  橫矩陣】

0.74          -0.09           0.00            0.0
0.07           0.54            1.22            0.0 
0.11           0.91            -0.41          0.0 
-124.05     -1924.48    -2700.54     1.00

【3x4  豎矩陣】

0.74          -0.09          0.00          -124.05
0.07          0.54           1.22           -1924.48
0.11          0.91           -0.41          -2700.54
0.0            0.0              0.0             1.0
----------------------------------------------------------------------

找敵人之間的陣列偏移: 在前面我們已經找到了第一個敵人的資料【server_css.dll+3D24E4】指向的就是第一個敵人的地址,通過與偏移【15B8】相加就能得到X座標,在此基礎上加4就能得到Y座標,顯然該遊戲並不會將玩家資料放到偏移中,很有可能每個敵人分別佔用一個地址,我們可以通過使用記憶體遍歷工具,找到第二個敵人的地址,然後用第2個敵人的地址減去第1個敵人的地址就能得到敵人與敵人之間的差值。