私の会社は新しいVPNソリューションの実装を検討していますが、接続をソフトウェアによってプログラムで維持する必要があります。VPNソリューションは、物理的な接続を管理しているように見えるバックグラウンドサービスと、接続/切断の要求を開始するコマンドライン/GUIユーティリティで構成されています。私は、フロントエンドユーティリティとバックエンドサービスの間のAPI呼び出しを「スパイ」して、ソフトウェアがサービスに対して同じ呼び出しを行えるようにする方法を探しています。これを行うための推奨ソフトウェアソリューションまたは方法はありますか?
4 に答える
通常、フロントエンドアプリケーションとバックエンドサービス間の通信は、何らかの形式のIPC(ソケット、名前付きパイプなど)を介して、またはサービスコントロールマネージャーを介して送信されるカスタムメッセージを介して行われます。おそらく、このソリューションがどの方法を使用しているかを調べ、そこから作業する必要があります。ただし、ソケットを介した暗号化通信の場合、これは難しい場合があります。
アプリケーションから単にユーティリティを実行するのではなく、ユーティリティを置き換えたい理由がわかりません。
とにかく、「dumpbin /imports anythingtheutilitynameis .exe」を実行して、ユーティリティがリンクされている API 関数名の静的リストを表示できます。これは、それらが呼び出された順序やパラメーター値を示していません。
その後、システム デバッガー (Winice などの最新の同等のもの) を使用して、これらの API にブレークポイントを設定し、ユーティリティがこれらの API を呼び出したときにデバッガーを中断します (その後、パラメーター値を調べることができます)。
Spy++などのツールを使用して Windows メッセージを調べて、いくつかの情報を収集できる場合があります。デバッグ/トレース ツール ( Windbgなど) を使用すると、処理中の API 呼び出しを確認できる場合があります。Sysinternalsツールは、システム情報を使用状況のある程度詳細に表示できます。
ほとんどの場合、これには反対することをお勧めしますが、ソリューション プロバイダーに連絡してドキュメントを入手することは可能ですか? その理由の 1 つは脆弱性です。ベンダーがユーザーにインターフェイスのその側面を利用することを期待していない場合、ユーザーは予告なしに変更する可能性が高くなります。