0

楽しみのために、Ghostbusters iPhoneアプリ(AppStoreリンク)用に保存したゲームデータをハッキングしようとしています。

Documents/save.dat次のサイトでは、ハッキング済みのバージョンへの置き換えについて説明しています。

ただし、自分でデータを変更したい。私の16進エディタを使用するとsave.dat、次の行き止まりが明らかになりました。

  1. 次の組み合わせで金額の値が見つかりませんでした:(リトルエンディアン、ビッグエンディアン)、(符号なし、符号付き)、(整数、浮動小数点)、(4、6、8、16バイト値)、 (1〜15バイトのオフセット)
  2. 小さな変更(つまり、アイテムの購入)は、データファイルを完全に書き換えて変更するようです。
  3. ASCIIでファイルをすばやくスキャンすると、ファイルの形式に関するテキストの手がかりは見つかりません。 追加:実際、ファイル内のすべてのASCII文字列は完全にランダムに見えます。
  4. linuxコマンドfileは、単にファイルを.として識別しましたdata
  5. NEWファイルを圧縮するとファイルが拡大されるため、ファイルは圧縮または暗号化されている可能性があります。
  6. NEW私は脱獄者でもiOS開発者でもないので、アプリの内部メモリにアクセスできません。

このファイルはどのようにエンコードされますか?手動で変更する方法について何か提案はありますか?

4

1 に答える 1

1

私はそれを楽しむためだけに似たようなことをしました。私の場合、ファイルは圧縮されており、ゲームの実行可能ファイルによって生成されたソルト値を持つハッシュ署名が含まれていました。その場合、私gdbはすべてのハッシュ関数にブレークポイントを設定し、それらの引数を調べました。iPhoneアプリケーションのデバッグ方法は実際にはわかりませんが、デバイスをジェイルブレイクしない限り不可能だと思われるため、ファイルの分析に行き詰まっている可能性があります。

HexField(または同様のツール)をダウンロードすることから始めます。これは、このタイプの作業に非常に適しています。非常に小さな変更に基づいてパターンを見つけるようにしてください(できるだけ変更を少なくして、何かを変更した後にゲームを強制終了するようにしてください)。運が良ければ、スコアやお金などがわかりにくくなります。

ファイル内のパターンが簡単に見つからない場合は、gzip(ヘッダーなし)、deflate、lzmaなどの既知の圧縮を調査することから始めます(シンボルテーブルを確認することから始めて、ゲームバイナリでクラスダンプを使用していくつかのアイデアを見つけます)。コマンドは何も与えなかったのでfile、ファイルは単にgzip圧縮されたものではないと思います。

これに失敗すると、ファイルが暗号化されているのではないかと疑うようになるかもしれません(ここでもシンボルテーブルを見てください)。ファイルが圧縮されているか暗号化されているかを判断する良い方法は、ファイルを圧縮することです。アルゴがそれをさらに圧縮できない場合は、ファイルが圧縮または暗号化されている可能性が非常に高くなります。

ハッピーハッキング!:)

于 2013-02-21T20:31:05.883 に答える