- ベストアンサー
バイナリデータから意味の解るデータに変換したい
素人発想なので不可能な質問かもしれませんがお付き合いください。 (質問者はhtml,cssの意味が解る程度のレベルです) 今良く遊んでいるPCのゲームのゲームデータがテキストで入手できればいいなと考えています。 具体的には多数いるキャラクターのデータです。テキストデータで抽出できればエクセルなどを使い数値の合計や平均を出せるのでとてもありがたいな、という使用目的です。 元々のアプリケーションファイル(.exe)とは別にdataというフォルダの中に拡張子が.datのキャラクターデータがあるようです。キャラクター数と同じでファイル名もそれに該当するであろう名前だったのでこれは間違いないかなと思っています。 色々調べた結果Stirlingというバイナリエディタで開く、というところまではやってみたのですがもちろんこれでもまた意味が解りません。 キャラクター数は数百、該当するファイルが30位あります。このデータはセーブデータではなく数値が書き換わらないので差分?を取って変更された値と変更された箇所を見比べる事もできません。 できるとすればファイル同士の比較となるのではないかと思っています。 色々調べてみましたが、現状の私の力ではここまでが限界でしたので識者の方々にお知恵をお借りできればと思っております。 調べた限りの情報をお伝えしたつもりですがもし不足している情報があれば追記いたしますのでよろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ゲーム名がないことには知ってる人がいてもコメントできないのではないでしょうか? ソフトによってはゲームデータの不正改ざんを防止するために暗号化されているものもあると思います。
その他の回答 (2)
- sha-girl
- ベストアンサー率52% (430/816)
なんの暗号化もされていないデータファイルなら、おっしゃるように バイナリエディタで差分をみればある程度推測できるものもあります。 (ちなみに.datは基本的にメーカーによる独自定義です。) 私が使っているバイナリエディタはBzエディタというフリーのものですが ファイル比較機能があるので2つのファイルの差分を楽に調べる事が可能です。 http://www.zob.ne.jp/~c.mos/soft/bz.html 具体的にはRPGだと少しだけキャラのデータを変更します。 例えば経験値0を10にして、すぐに保存します。 で差分をみるとどっかの箇所が0→10になっている箇所があればそこを255に書き換えれば 経験値も255になっているだろうという具合です。 テキストデータについてはバイナリエディタでテキストに変換して表示できます。 テキストデータもSJISだったりEUCだったりUNICODE等、様々ありますが Bzエディタでは切り替える機能を持っています。 ただ普通はそういう改造を簡単に出来ないようにファイルは暗号化しているものが多いです。 より詳しい人ならメモリダンプツールを使ってメモリの変更部分を検索し、 直接その値を書き換えたりするようですね。さらに玄人になるとアセンブラレベルで解析する人もいます。 ただ私自身ゲームの開発者ですし、あまりお勧めしませんけどね。 自己責任でお願いします。またソフトによっては利用規約で逆アセンブルやデータ改変を禁止しているものもあるので 注意してください。
お礼
まさか開発側の方からご回答いただけるとは思っていませんでした。 今回調べているデータはRPGのようなキャラを育成すると言うものではないのでデータの変化は現状では見受けられません。 イメージ的にはただそのdatファイルを参照しているだけなのかな、と思っています。 数百のキャラクターが数十のファイルとして分けられているのでそれを比較する事が一つ方法としてあるのかな、とは思っています。 自分で調べていたものとご紹介いただいているツール、先日初めて知った単語など共通項が多かったのでまずは自分が調べている事の方向性は間違っていないのだなと認識できました。 今回はありがとうございました。
- temtecomai2
- ベストアンサー率61% (656/1071)
一般的に言えば、ですが 開発者側にしてみれば、そういった内部データを解析されたり改造されたりしたくないはずですので、その方法をココで質問するのはマズイんじゃないでしょうかね。 自力でやるヒントとしては、 同じキャラのテンプレートでキャラの名前を変えた場合にファイルのどの部分が変化するのか。 どの数値が何から何に変化するとファイルのどの部分が変化するのか。 などを地道に解析してください。 しかし #1 さんも言っている通り暗号化されてる可能性が高いです。 一般人がやるもんじゃないですので一部の神に頼むしかないでしょうね。
お礼
元々ゲーム内で普通に見る事ができる数値データをテキストで欲しかっただけなのですが、やりようによっては悪用もできるのでしょう。 数百のキャラクターは自分で名前をつけるものではなく、またデータも基本データのまま変化がないので比較ができないのが今回の難点ともいえます。 ご回答ありがとうございました。
お礼
ゲーム名はさすがにマズイとおもいまして記載しませんでした。 代理で行って欲しいわけではなく、一般的な手順があればあとは自分でやってみようと思ったからです。 暗号化の可能性は高いかもしれませんね。 ありがとうございました。