趣味でフックについて勉強しているのですが、フックを他アプリケーションに仕掛けようと思っても、そのアプリケーションの仕様がわかっていなければ効果的なフックを仕掛けることは無理だと思うのですが、世の中にはいろいろなアプリケーションに対して、フックを使ってその機能を強化したプログラムが多々あります。
それではどうやってそのアプリケーションの仕様を知るのでしょう。
力ない私なりに2つ考えてみました。
(1)考えた方法としては、自分で他プロセスにフックを仕掛けて、そのプロセスでどのようなメッセージのやりとりが行われているか調べる
(2)逆アセンブルしてそのプログラムがどのようなアルゴリズムなのかを推測する
(1)の方法は、私の力でもできないことはないとは思うのですが、自分作成したプログラムや一定のアプリケーションに対しては動作するのですが、マインスイーパに対して仕掛けても、メッセージを受け取ることができませんでした。(あれは1つ1つが小さなオーナー描画ボタンだと推測してWS_COMMANDを調べたけど、実は違うメッセージだったとか、他スレッドでメッセージ処理されてるのかな・・?)
そんなこんなで、なんだかこの方法は、片っ端から細かく仕様を調べようとすると、かなり疲れそうです。
(2)の方法も、アセンブルを解読するのはかなり疲れそうですが、この方法であれば可能な気がしてならないのです。(しかし私はまだアセンブルを学習していない)
(ところで、マインスイーパなどのゲームも、逆アセンブル禁止の対象なんですかね・・。)
そこで質問なのですが、対象の仕様を知るためには、(1)の方法がよいのか、(2)の方法か、それとも他に方法があるのか教えてください。
No.1ベストアンサー
- 回答日時:
(1)フックなどしなくても、例えば VC には spy++ というツールが付属しています。
これでメッセージの確認ができます。また、フックの際にはそのメッセージが Post されるのか Send なのか意識して区別する必要があります。
> (ところで、マインスイーパなどのゲームも、
> アセンブル禁止の対象なんですかね・・。)
提供元に直接確認するのが安全かと思います。
この回答への補足
探したところ、winspectorというものがありました。
http://www.windows-spy.com/
なんだかSpy++よりすごいということがいっぱい書いてあるので、これを使ってみようと思います。
ありがとうございました。
spy++がそんなにすごいツールだとは思っていませんでした。ただクラス名がわかるだけかと・・。
私は貧乏なので意地になって有償なものは極力使わないことにしているのですが、VC++は結構な値段でありました・・。
そこで、Spy++に換わる、無償で機能を同じくするツールはありませんか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- テレビ テレビ壁寄せスタンドの転倒防止方法は? 1 2022/04/17 23:11
- 仕事術・業務効率化 効率的な勉強方法(分野問わず)を教えてください 1 2023/08/16 01:33
- システム 古いWEBシステム。もう追加プログラムは作れない? それともできる? 6 2022/06/08 13:41
- その他(自然科学) 科学技術計算の仕事について 2 2023/02/04 18:09
- 大学受験 自己推薦書の添削や意見・アドバイスお願いします 2 2022/08/27 19:34
- その他(買い物・ショッピング) 壁掛け金具の内容について 1 2022/05/30 21:52
- DIY・エクステリア 和室の間仕切り方法について 10 2022/04/10 10:47
- その他(プログラミング・Web制作) Windows上のプログラム。「予め決められた時刻に自分で起動して処理して自分で終了する」って可能? 3 2023/01/04 14:29
- 会社・職場 30歳男です。転職1回経験あり。 仕事において頭が悪くて悩んでいます。 とある建設業で現場での作業員 4 2023/03/05 19:32
- その他(悩み相談・人生相談) 30歳男です。転職1回経験あり。 仕事において頭が悪くて悩んでいます。 とある建設業で現場での作業員 2 2023/03/07 10:20
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vbaから他のアプリを終了
-
メッセージボックスの選択ボタ...
-
msgboxの表示位置
-
他のウィンドウのボタンを自動...
-
メッセージハンドラ
-
VB.netでFindWindowExやると・...
-
SetWindowText関数について
-
VBAでコントロールのハンドルを...
-
デスクトップ上のアイコンの位...
-
WINAPI 他のウインドウを重ね...
-
windowsメールスロットについて...
-
マウスホイールをフックしたい
-
キーボード入力をHSPでさせたい...
-
DEVICECHANGE() の受け取り
-
Excel VBA で外部アプリケーシ...
-
フックをするなら逆アセンブル?
-
WM_CLEARなど使えないメッセー...
-
CloseHandle()
-
マウスの右クリック+Shiftキー...
-
エクセルで作った新しいウイン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vbaから他のアプリを終了
-
msgboxの表示位置
-
他のウィンドウのボタンを自動...
-
メッセージボックスの選択ボタ...
-
SetWindowText関数について
-
VBAでコントロールのハンドルを...
-
Excel VBA で外部アプリケーシ...
-
VB.netでFindWindowExやると・...
-
メッセージハンドラ
-
点滅で知らせる方法
-
CloseHandle()
-
システム例外のメッセージを変...
-
WM_NCLBUTTONUPについて
-
デスクトップ上のアイコンの位...
-
メッセージループについて
-
キーボード・フックのアプリを...
-
VBでRegisterWindowMessage関数...
-
WM_CTLCOLORDLG
-
windowsメールスロットについて...
-
マウスフックについて
おすすめ情報