実行中のプログラムは,メモリ上に存在する。 そのメモリ上のデータを読み取れば,アプリケーションが扱っている生のデータを,そっくりそのまま取得できてしまう。 ユーザがどのような値を入力したか,アプリケーションがどこと通信してどういうデータを取得したか,全て丸見えである。 逆アセンブルの場合,プログラムの「実行前」のスタティックな姿しかわからない。 しかしメモリ上のイメージをダンプすれば,まさに「実行中」のプログラムの姿がわかる。これが逆アセンブルとダンプの大きな違いだ。 下記では,Windows上で実行中のプロセスをダンプし,プログラムにユーザが入力した値をメモリ上から実際に読み取る。 利用するフリーソフトは User Mode Process Dumper バイナリエディタ WinDbg の3つ。(これに加え,適当なC言語コンパイラがあるとよい。) ちなみに,ソフトウェアの利用承諾書に「無
![メモリの中身を読んでみよう (プロセスをダンプ+解析する方法) - 主に言語とシステム開発に関して](https://cdn-ak-scissors.b.st-hatena.com/image/square/ee6b8ebb5c2a9fc0e773696ade0e613a85723b48/height=288;version=1;width=512/http%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fl%2Flanguage_and_engineering%2F20081018%2F20081018234631.png)