• ベストアンサー

バイナリの検索について

ほぼ同じある二つのデータに10進数で4072という数値があるはずなのですが、一致する箇所が見つかりません。どうしたら良いでしょう。 もちろん16進数に直してE80Fとして検索しました。 ソフトはStirlingです。

質問者が選んだベストアンサー

  • ベストアンサー
  • zwi
  • ベストアンサー率56% (730/1282)
回答No.7

PSのゲームセーブデータですか? それなら圧縮している可能性は、あまり無いかもしれません。 PSは、通常リトルエンディアンで数値データが格納されているはずですので、発見できるはずですけどねぇ。 「デバッガ ゲームデータ 書き換え」 「プロセスメモリエディタ」 はPCゲームにしか使えないテクニックですので、PSだと無理です。 間違ったデータを改造しているか、一部データが予想外の形式なのかも知れません。4702の値をだけ変えてみて、変える前とセーブデータ中から変化する部分を探し出せば何らかのヒントが掴めるかも知れませんよ。 アドバイスできるのは、このぐらいです。 はまってみたもんの例で書かれているチェックサムやパリティとは、データの破損や書き換えをチェックする簡単な仕組みです。 http://ja.wikipedia.org/wiki/%E3%83%91%E3%83%AA%E3%83%86%E3%82%A3%E3%83%93%E3%83%83%E3%83%88 http://ja.wikipedia.org/wiki/%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%82%B5%E3%83%A0 ちゃんと理解するならプログラムの勉強をしたほうが良いでしょう。

asdf4n4
質問者

お礼

遅くなりましたが、お二人とも回答ありがとうございました。 まぁしつこくやってみようと思います。必ずできるはずですので! 勉強します。

すると、全ての回答が全文表示されます。

その他の回答 (6)

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.6

たまたま見つけたのは、Oh-Orangeさんと同様に私も偶然な気がしますね。 圧縮や暗号化されているデータの一部を書き換えることは、ほとんど不可能です。書き換えたら間違いなくロード時にエラーになるでしょう。まぁ、偶然動くこともあるでしょうが。 こうなるとデバッガでゲーム実行中に書き換えるしかないかと思います。 「デバッガ ゲームデータ 書き換え」 「プロセスメモリエディタ」 辺りのキーワードで検索してみてください。 私こちらの方面の知識はあまりありません。 セーブデータの書き換えは法律的には?ですが、確かPSゲームで出版社が訴えられたこともあったはず。 しかし、今も出ているので出版社が勝った可能性が高いですけど。 個人的に書き換える分には、何も気にしなくて大丈夫だと思います。

asdf4n4
質問者

補足

暗号化・圧縮されていれば不可能なら恐らく暗号化・圧縮はされていないと思います。 実際にできている人がいますので。↓ http://www.nda.co.jp/memo/gsdedit.html はまってみたもんの例の一番最初のソフトです。 ここに書いてあることはよくわかりませんでした。 判りました。調べてみます。

すると、全ての回答が全文表示されます。
  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.5

★特定するのは難しい気がします。 ・ゲームのセーブデータは『改変』しない方がいいですよ。  あまり法律には詳しくないですけど。  そういう意味でお勧めしませんが…。 ・ただアイディアを1つ出すとゲームの進行により2つのゲームデータを  バイナリデータで比較すれば場所がある程度は絞れませんかね。  もちろん生のデータの場合です。もしも改変、改ざんなどが出来ないように  暗号化とかされていれば無理ですけど。分かりますか?そのデータ? >一つだけ見つかったんです。  ↑  これは偶然だと思います。  たまたま一致しただけの可能性が高いと思う。  バイナリデータなら偶然見つかったりしますよ。 zwi さんへ。 >ソフトはStirlingです。  この1行の意味が分かりませんでした。 ・ネット検索したら Vector さんのところにあるバイナリエディタでした。  使ったことがないですが定番で人気マークが付いていました。  知らなかったのでちょっと恥ずかしいです。  有り難うございました。 ・以上。

asdf4n4
質問者

補足

もちろん作ったデータを売ろうなんて思っていません。 個人で楽しむつもりです。 というかゲームを楽しむというより「このゲーム」を解くのが楽しかったりします。かなり時間かけて調べてますので。 はい。やってみました。 例えば2個の※殆ど同じファイル(A、B)と、もう1個パラメータが違うファイル(C)用意します。 AとB、AとCを「比較」をつかって相違箇所を調べます。 色分けされるので、キャプチャしペイントツールに貼り付けます。 AとBで違う箇所は必要ないのでABC全てその箇所を削除し、AとBで一致する部分だけ残します。 そして、3個全てに一致する箇所も削除すれば調べる箇所が判明します。 ※パラメータは同じです。ただBGM等細かい所が違います。 と色々やってみましたが、全て駄目でした。 暗号化されていると不可能なのですか? それなら恐らく暗号化はされていないと思います。 実際にできている人がいますので。

すると、全ての回答が全文表示されます。
  • zwi
  • ベストアンサー率56% (730/1282)
回答No.4

Oh-Orangeさんへ。 最初に質問者がソフトは、Stirlingだと断っていますのでそれ以外のソフトは使っていないと思われます。 では、質問者さんへ。 E80Fと0FE8で探して見つからないのであれば、次の3つの場合が考えられます。 ・そもそも4072という数値は格納されてない。 ・文字として格納されているので、0x34303732である。 ・ゲームのセーブデータなどで、暗号化あるいは圧縮されている、

asdf4n4
質問者

補足

文字として格納されているとは思いもつきませんでした! が、見つかりませんでした。(涙) 暗号化、圧縮...そうかもしれませんね。 その場合どうすればよいのでしょう?

すると、全ての回答が全文表示されます。
  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.3

★『0x』は16進数を表す接頭語。 ・ここは C/C++ のカテゴリですから 0x の意味を知らないとなると一体どうやって  バイナリデータを検索しているのか心配になります。 >リトルなら「0x0F0xE8」 >ビックなら「0xE80x0F」  ↑  『0x』は除いて下さい。文字列ではないので。  バイナリエディタで検索しているのなら  『F0E8』か『E80F』ですかね。 ・そもそもどんなバイナリデータを検索しているのですか?  それとデータはリトル・エンディアン用の CPU で動かすものですか?  あるいはビッグ・エンディアン用の CPU で使うのか? ・補足要求です。

参考URL:
http://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%B3%E3%83%87%E3%82%A3%E3%82%A2%E3%83%B3
asdf4n4
質問者

補足

すみません。初心者なもので... バイナリエディタを使って検索していますが... 『F0E8』か『E80F』どちらでも調べても駄目でした。 他に10進数そのままの値、それを入れ替えた値でも駄目でした。 ただ一度だけエディタの新規作成でアスキー領域に10進数の値を入れてダンプ領域に表示された値を検索したら、 一つだけ見つかったんです。 そしてそこの場所を合計を考慮して書き換えて見たのです。 そしたら失敗ですが今まで〈エラーが起こる〉とは違うアクションが起こりました。 しかし一回こっきりです。その後は検索にも引っかかりません。 そのダンプ領域表示された値は16進数では無い様ですが... ゲームのセーブデータです。 CPUはAMD Athlon64です。

すると、全ての回答が全文表示されます。
  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.2

★バイナリデータならバイトで検索。 ・整数データとして 10 進数で 4072、16進数では 0xE80F ならば  最初に 0x0Fのバイト次に 0xE8 のバイトを検索すべきだと思います。  文字列ではないので。 ・また、上記のはリトル・エンディアンの場合です。  ビッグ・エンディアンのバイナリデータでは  最初に 0xE8のバイト次に 0x0F のバイトを検索する事になります。 ・以上。

asdf4n4
質問者

補足

0xE80Fの「0x」 とは何でしょう?特に「x」です。 つまり検索する値を入力する所に リトルなら「0x0F0xE8」 ビックなら「0xE80x0F」 ということですか? 10進数4072の16進数はFE8、 それにゼロをつけて0FE8、 入れ替えてE80F で合っていますよね?

すると、全ての回答が全文表示されます。
  • zwi
  • ベストアンサー率56% (730/1282)
回答No.1

ファイルの内容がリトルエンディアンの前提のようですが、ビックエンディアンのデータという可能性は大丈夫ですか? 日ごろTSXBINの人なので、違っていたらすいません。

asdf4n4
質問者

補足

リトルエンディアン...(^_^;) つまり昇べきの順ということでしょうか? 初心者なのでファイルがリトルかビックか判りませんが、 E80Fだけでなく、入れ替えしない値、10進数の値、10進数を入れ替えた値を検索しましたが、どれもだめでした。

すると、全ての回答が全文表示されます。

関連するQ&A