- ベストアンサー
ゲームの解析の用語について
色々な解析のサイトを回ってみましたが、どれもあまり的を得ていなくて困っています。 デバッガと逆アセンブラの違いはなんなんでしょうか?使いどころが分かりません。 どこか初心者にもわかりやすいゲーム解析のサイトがあったらご紹介願います。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
逆アセンブラは、その名の通り実行ファイルをアセンブラ言語のファイルに戻すものです。 デバッガは、プログラムを実行しながら1、 1プログラムの実行を特定の場所で中断する「ブレークポイント」とか、 一命令ずつ実行する「ステップ実行」機能、 プログラム実行中のメモリやレジスタの内容を見る「トレース」機能なんかがあります。 デバッガは逆アセンブラの機能(の縮小版)も持っています。 結局、デバッガと逆アセンブラの違いは、 デバッガが実際にプログラムを実行しながら操作できるのに対して、逆アセンブラは実行する機能は持っていないということです。 実際に使ってみれば、すぐにわかります。 OllyDbg、DisWinなど。 実際の解析では、デバッガを主に使うことが多いと思います。 いろんなサイトを回られたとのことですので知っておられるかもしれませんが、 windowsアプリであれば基本的な流れとしては、 まず、対象アプリ全体のおおまかな情報を集める ・リソースとか依存DLLを調べる。 ・逆アセンブルしてながめる。(どの言語で組まれているか推測) 解析したい挙動のだいたいの場所を探す。 ・その前後で呼び出されていそうなAPIにブレークポイントを設定する。 ・その前後で参照されていそうな文字列を検索。 ・ゲーム中の特定の設定の数値が分かっているなら、その数字を検索。 といった手段です。 そこから、コールスタックを上にたどりながら、トレースしていくといったところですが。 otaksさんは自分でプログラムを組んだりしますか? アプリを作った経験があると解析もしやすいと思います。 #ちなみに、たいていの市販ソフトでは、逆アセンブルしたり、解析したりすることはライセンス違反です。
その他の回答 (1)
- dai_k
- ベストアンサー率37% (3/8)
アセンブラとは、簡単に言うとコンピュータ言語です。 C言語や、C++言語は人間言語と言ったらちょっと難しいですが、C言語で書かれたソースをコンパイラーを使ってアセンブラコードにコンバートをかけてから、EXEファイルなどになります。 ここでは、逆アセンブラですが、コンピュータ言語までにしかなりません。それを一目見て分析できるのはハッキングや、クラッカーと言われる人々だと思います。 VCのデバッカもC言語のソースがないと普通にアドレスしか乗ってないので、これで分析しようとしても難しいですね。あと、参考程度ですが、実行中のメモリ上のアドレスを見て分析する人も居ます。
補足
ご解答ありがとうございました。 まだ自分は勉強不足なので、わかならいことばかりです。もうちょっと勉強してみようと思います。
補足
OllyDbgはインストールして日本語化しました。でも使い方は分かりません。 いろんなサイトを廻りましたが、基本的な流れなどはぜんぜんしりませんでした。 対象アプリのおおまかな情報を集めるという所からすでに力不足でできません… もって勉強しないとだめですね、どこにいったら勉強できるんだろう。プログラムはDOSで動く簡単なのしか作ったことがありません。WINアプリを作るようにならないとだめですよね