3

外部 DLL を使用する Win32 アプリケーション (コンソール アプリケーション) があります。DLL は 2 つの関数 (Run と SecretFunction) をエクスポートするため、DLL が SecretFunction に入るときを知る必要があります。実行時に DLL をロードします (コマンド ライン引数を介してパスを取得します)。

共有イベントを使用できません。

私が得た 2 つのヒントは、例外メソッドに類似したロジックを使用することと、おそらく VirtualQuery/VirtualProtect を使用することです。

誰かが私を正しい方向に向けることができますか?

説明:

私のプログラムは Run 関数を呼び出します。Run 関数は、SecretFunction を呼び出す場合と呼び出さない場合があります。SecretFunction が呼び出されたかどうかをプログラム内から知りたいです。

私は次のコードを持っているので、関数のアドレスを持っています:

pfn_SecretFunction pfnSecretFunction = (pfn_SecretFunction)GetProcAddress(pluginDLLModule, "SecretFunction");
4

2 に答える 2

1

DLL を挿入し、トレース (監視) する関数にコードを追加します。

于 2012-05-27T10:21:48.943 に答える
0

(SecretFunction) 関数に到達したときに DLL で例外をスローし、exe (コンソール) で例外をキャッチ (および飲み込み) します。

于 2012-05-27T10:09:24.710 に答える