4

デバッグ目的で、.net 実行可能ファイル (ソース コードにアクセスできないサード パーティの実行可能ファイル) で CLR 関数呼び出しをインターセプトしたいと考えています。私はいくつかのフック API (deviare、easyhook、mhook) などを見てきましたが、それらは xxx.dll!functionname などの dll 内の単純な関数へのフックのみをサポートし、オブジェクトなどのコンストラクター呼び出しをログに記録することはできないと思います。プロセスが関数を呼び出す場合など、.net実行可能ファイルで関数呼び出しを簡単にログに記録できるライブラリであるかどうかを知るにはFile.ReadAllText(@"C:\name.txt");、関数File.ReadAllTextを引数c:\name.txtでログに記録します。

ここに私が試した/見たが、私が望んでいたことをしなかったことがいくつかあります。

デビアレ

ムフック

イージーフック

マイクロソフトモグラ

Redgate Ants Profiler (これは非常に近いものです。すべての clr 関数の呼び出しをログに記録します。引数をログに記録するために必要なだけです。それが私の問題をほとんど解決する方法を知っていれば)

4

2 に答える 2

1

それが .net 実行可能ファイルであり、それを変更する法的権利を持っている場合は、変更プラグインでリフレクターを使用して、ソース コード内のすべてを変更し、再コンパイルすることができます。

于 2013-04-04T02:50:50.587 に答える