2013-02-21 42 views
0

只是爲了好玩,我試圖破解我爲Ghostbusters iPhone應用程序(AppStore link)保存的遊戲數據。修改二進制保存遊戲數據(iPhone)

下列網站描述與-砍死前的版本替換Documents/save.dat

不過,我想修改自己的數據。使用我save.dat一個十六進制編輯器顯示出以下死角:

  1. 我無法找到的錢在以下任意組合的量的價值:(小端,大端),(無符號, (整數,浮點),(4,6,8,16字節值),(1到15字節偏移量)
  2. 任何小改動(即:item購買)似乎都會完全重寫和更改數據文件。
  3. 以ASCII格式對文件進行快速掃描不會顯示文件格式的文本線索。 地址:實際上,文件中的所有ASCII字符串看起來都是隨機的。
  4. linux命令file只是將該文件標識爲data
  5. 壓縮文件將其放大,因此文件可能被壓縮或加密。
  6. 我既沒有越獄,也沒有iOS開發人員,所以我無法訪問應用的內部內存。

這個文件如何編碼?有關如何手動修改它的任何建議?

回答

1

我已經做了類似的事情,只是爲了它的樂趣。在我的情況下,文件被壓縮幷包含一個帶有由遊戲可執行文件生成的salt值的散列簽名。在那種情況下,我使用了gdb,在所有哈希函數上設置斷點並檢查它們的參數。實際上我不確定如何去調試一個iPhone應用程序,但我懷疑這是不可能的,除非你越獄該設備,所以你可能卡住試圖分析文件。

通過下載HexField(或類似的工具)開始,這對於這類工作非常有用。嘗試根據非常小的變化找到一個模式(嘗試儘可能少地改變,並確保你在改變某些事情後殺死遊戲)。如果你幸運的話,分數,金錢和什麼都不會被混淆。

如果不容易看到文件中的模式,我會從調查已知的壓縮開始,例如gzip(無頭文件),deflate,lzma等(首先查看符號表並在遊戲中使用類轉儲二進制的一些想法)。由於file命令沒有提供任何內容,我假定該文件不是簡單地壓縮。

如果失敗了,您可能會開始懷疑該文件已加密(再次查看符號表)。確定文件是壓縮還是加密的一種好方法是嘗試壓縮文件。如果沒有算法可以進一步壓縮,很可能文件被壓縮或加密。

快樂黑客!:)

+0

好主意! 我既沒有越獄,也沒有iOS開發人員,所以我無法訪問內存。我也懷疑它是壓縮或加密的,因爲壓縮文件時會放大它。 – Steven 2013-02-21 20:55:52