2011-07-12 84 views
4

(我問在賭博這個問題,但被關閉,PPL建議我問#2。如果這不適合在這裏,請提出一個更好的地方,你關閉它。謝謝你了。)二進制文件修改遊戲設置

在遊戲中作弊

一種通用的方法是使用一個內存掃描工具來追蹤你想改變的值。然而,另一種常見的作弊方式是修改二進制文件。

例如,在一個遊戲中,當你殺死一個敵人時,你獲得+5 exp,並且通過改變以二進制存儲的5到50,你可以得到+50 exp。據我所知,許多iPhone遊戲祕籍的工作方式,這需要你打補丁二進制文件或使用十六進制編輯器。

我感興趣的是那些黑客是如何定位的設置。 什麼是一般的方法/工具來找出哪個二進制文件的特定值和相應的偏移量?如果它是一個非常獨特的數字或ASCII字符串,如3219google.com,你可以搜索十六進制值,但如果它是一個共同的價值是什麼,像1?

回答

4

你可以拆卸的遊戲可執行文件,這樣你可以在原則上知道每一個內存位置一樣。這對大多數遊戲來說可能都不實用。更直接地針對特定的值

兩個其他方法:

  • 暫停使用調試遊戲權獲得經驗之前和單步執行代碼,看看內存位置受到影響。
  • 雖然有必然是含有相同數量的經驗,你可以很快縮小範圍許多地方:假設你有50 EXP,自卸*含50所有內存位置的列表,然後獲得一些更多的EXP(比方說20 )現在,您可以排除所有未更改爲70的位置。

*您可能會搜索32/64位整數而非單個字節位置。

+0

這將是我首先提到的內存掃描工具。我知道如何追蹤內存中的地址。但我真正想要的是修改二進制文件,而不是在內存中加載的值。 –

+2

哦,對不起,誤讀。但是您可以使用完全相同的技巧:保存遊戲,獲得EXP,再次保存,與舊遊戲進行比較(差異)並查看更改內容。 – user786653

+0

當您找到內存位置以及當時正在執行的代碼時,您可以反向查找二進制文件以查找指令序列或偏移量。二進制文件可能被壓縮或加密,但你必須一次一步地找到位置和代碼。還要注意,值可能會留在寄存器中,直到一段時間後才被驅逐到內存中,特別是如果它打印在某處,例如他們計算了+20,然後進入某些代碼以在屏幕上打印新分數並保存該值在一個寄存器中,然後在顯示後將其驅逐至RAM。 –

0

試着通過反覆試驗找出文件格式。程序員通常不會故意讓事情變得困難,除非這款遊戲是一款MMO遊戲,或者是一款容易被欺騙的巨型大片。如果您正在玩一款可以讓您用來殺死slu Exp的遊戲,請參考以下基本步驟:

  1. 找到「Monster」文件或數據庫表。這包含所有怪物的信息。
  2. 搜索一些已知信息。在這種情況下,怪物的名字是「Slug」。
  3. 使用十六進制編輯器檢查怪物名稱附近的字節。查找包含值'50'的DWORD,WORD或BYTE。
  4. 將50更改爲51並保存更改。殺死一個「Slug」,看看exp是否改變了。
  5. 如果仍然獲得50 exp,請在「Slug」附近嘗試其他值並重復。

有了足夠的時間和耐心,你最終會弄清楚整個文件格式,並且能夠隨意更改任何內容。