我最近在玩 dll 注入(主要是easyhook),我开始想知道 - 是否可以用 .net 类做类似的事情?
例如,覆盖 TcpStream 和 SslStream 以监控应用程序的通信。箍应用程序会将自己注入另一个应用程序并显示发送和接收的流量日志。
我知道有更简单的方法来监控应用程序的流量,但这仍然是一个非常好的工具。
这是很有可能。如果可以将 DLL 注入应用程序,则可以在该应用程序中自行托管 CLR。如果你能忍受巨大的照片,这个网站提供了一个详细的教程。
但是,您要详细说明的内容比 DLL 注入要复杂一些;这真的是一个不同的问题。您需要在 .NET 中取消对程序集的强命名,替换计算机上相应的 .NET 程序集,然后编写新的 SslStream 类以向您报告。不过,这将需要大量工作,因为您需要从头开始为您计划修补的每个类重新构建每个程序集。
另一种方法是连接到 .NET 无论如何都会使用的底层套接字提供程序。您可以使用 easyhook 拦截 winsock 通信,然后解密 SSL 流,您需要分析目标应用程序的内存以提取密码和密钥信息。