質問: ある.netアプリケーションのAPIをフックしてSSLで暗号化されている通信の内容を見たいです。 CのWin32 APIを使っているものであれば、`bcrypt.dll`などの関数をdll injectionして書き換えればいいのですが、.net frameworkを使っている場合はどうすればいいのでしょうか? SSLを見る方法として中間サーバを使う方法もありますが、APIをフックしてやってみたいと考えています。 Windows 10 1709 Visual Studio 2017
回答: .NET Frameworkでは暗号化処理はほとんど実装されておらず、大抵はWindows APIを呼び出しています。ですのでネイティブアプリケーションと同じ方法でフック可能です。 なおかつ、.NET Frameworkでは全てのDLL読み込みは遅延ロードで実装されているため、関係するメンバー呼び出しがなければDLLは読み込まれていません。ネイティブアプリケーションよりもフックは容易かと思います。 参考までにSslStreamクラス.aspx)はSSPI.aspx)のSecure Channel.aspx)が提供するTLS/SSL.aspx)を使用しています。