0

ソースコードのないアプリケーション(win32 exeファイル)があります。

C#アプリケーションを作成し、そのwin32 .exeファイルで一部の関数を再利用することは可能ですか?

4

2 に答える 2

2

あなたが実行することができます

dumpbin.exe /exports [your-win32.exe]

エクスポートする関数を確認してください。次に、(C#に相当するものは何でも)LoadLibrary()GetProcAddress()を使用してこれらの関数を呼び出すことができます。

もちろん、これらの関数を正しく呼び出すには、これらの関数のシグネチャを知っている必要があります。すなわち、パラメータの数と順序など。

于 2009-09-28T16:30:19.343 に答える
1

これが探しているものかどうかはわかりませんが、他の exe に GUI がある場合は、それにメッセージを送信することで何らかの操作を実行できる可能性があります。Spy++ を実行し、他のアプリで必要なことを行い、完了したらログを確認します。特別なコントロールを使用しない場合は、必要なコントロールのハンドルを取得し、適切なメッセージを送信することで、その GUI を操作できます。他のアプリを実行していることをユーザーに知られたくない場合は、別のデスクトップで実行できます。

悪用できる別のオプションは、他の exe のプロセス内で独自のスレッドを実行し、利用可能なさまざまな IPC 手法のいずれかでアプリに通信することです。ここでは、リモート スレッド インジェクションについて多くの質問が寄せられています。

最後に、運が良ければ、必要な機能が実際には exe によって使用される DLL の 1 つに、エクスポートされた関数または COM インターフェイスとして含まれています。Process Explorer などを使用してランタイムを調べ、興味深いモジュールがあるかどうかを確認します。他のモジュールを使用する限り、DLL は明らかにはるかに簡単です。

于 2009-09-28T21:05:06.083 に答える