※ ChatGPTを利用し、要約された質問です(原文:フックをするなら逆アセンブル?)
フックをするなら逆アセンブル?
このQ&Aのポイント
フックを他アプリケーションに仕掛けるためには、そのアプリケーションの仕様を知る必要があります。
仕様を知るための方法としては、自分で他プロセスにフックを仕掛けてメッセージのやりとりを調べる方法や、逆アセンブルしてプログラムのアルゴリズムを推測する方法があります。
ただし、どちらの方法も疲れることがあり、他にも仕様を知る方法があるかもしれません。
趣味でフックについて勉強しているのですが、フックを他アプリケーションに仕掛けようと思っても、そのアプリケーションの仕様がわかっていなければ効果的なフックを仕掛けることは無理だと思うのですが、世の中にはいろいろなアプリケーションに対して、フックを使ってその機能を強化したプログラムが多々あります。
それではどうやってそのアプリケーションの仕様を知るのでしょう。
力ない私なりに2つ考えてみました。
(1)考えた方法としては、自分で他プロセスにフックを仕掛けて、そのプロセスでどのようなメッセージのやりとりが行われているか調べる
(2)逆アセンブルしてそのプログラムがどのようなアルゴリズムなのかを推測する
(1)の方法は、私の力でもできないことはないとは思うのですが、自分作成したプログラムや一定のアプリケーションに対しては動作するのですが、マインスイーパに対して仕掛けても、メッセージを受け取ることができませんでした。(あれは1つ1つが小さなオーナー描画ボタンだと推測してWS_COMMANDを調べたけど、実は違うメッセージだったとか、他スレッドでメッセージ処理されてるのかな・・?)
そんなこんなで、なんだかこの方法は、片っ端から細かく仕様を調べようとすると、かなり疲れそうです。
(2)の方法も、アセンブルを解読するのはかなり疲れそうですが、この方法であれば可能な気がしてならないのです。(しかし私はまだアセンブルを学習していない)
(ところで、マインスイーパなどのゲームも、逆アセンブル禁止の対象なんですかね・・。)
そこで質問なのですが、対象の仕様を知るためには、(1)の方法がよいのか、(2)の方法か、それとも他に方法があるのか教えてください。
お礼
spy++がそんなにすごいツールだとは思っていませんでした。ただクラス名がわかるだけかと・・。 私は貧乏なので意地になって有償なものは極力使わないことにしているのですが、VC++は結構な値段でありました・・。 そこで、Spy++に換わる、無償で機能を同じくするツールはありませんか?
補足
探したところ、winspectorというものがありました。 http://www.windows-spy.com/ なんだかSpy++よりすごいということがいっぱい書いてあるので、これを使ってみようと思います。 ありがとうございました。