2017-05-31 5 views
1

私は複雑なアプリケーションを持っています。最後のWM_MOUSEMOVEと同じ座標のどこかから来ているWM_MOUSEMOVEメッセージがあります。メッセージがどこから届いているか確認しようとしています

私は試してみる(MS Detours 3.0を使用して)任意の::PostMessageA()::PostMessageW()を呼び出すために、ロードされたすべてのモジュールを繰り返し処理しようとしました。私がこれをしたとき、これらの機能を持っていると表示された唯一のモジュールはC:\WINDOWS\SYSTEM32\USER32.dll(まあまあ!)でした。

私はそれ、その後、すべてのモジュールが、それは私が、私はモジュールごとに迂回できると思っていた理由は自分のコール・ジャンプテーブル、ですが、これはケースのように思われない、またはそれがある場合は持っているだろうと思っていた

DetourFindFunction()コマンドで認識されません。 C:\WINDOWS\SYSTEM32\USER32.dllからローカルモジュールを迂回すると、ローカルモジュールからの呼び出しだけが迂回されます(私は思う)。

一般的な実行可能ファイルからロードされる各モジュールで同じ機能を迂回する方法はありますか?

ロードされたモジュールのPOVからコードを実行することは可能でしょうか?

答えて

0

私が間違っていたようです。私はすべてのメッセージを傍受しているように見えますが、これは最高です!

ただし、メッセージはPostMessage()コマンドの結果ではありません。私は本当に知っておく必要がある、おそらくそこにメッセージキューに追加するために使用されるいくつかの他の内部Windowsのメカニズムがありますが、それはそれが原因でDLLをトリガしているように見えますSendMessage(hwnd, WM_MOUSEMOVE, 0, MAKELPARAM(-1, -1))。これにより、マウスが動いていることがシステムに表示され、同じ位置の別のWM_MOUSEMOVEが送信されます。

関連する問題