我最近在玩 dll 注入(inject)(主要是 easyhook ),我开始想知道 - 是否可以用 .net 类做类似的事情?
例如,覆盖 TcpStream 和 SslStream 来监视应用程序的通信。 Hoop 应用程序会将自身注入(inject)到另一个应用程序中,并显示发送和接收的流量日志。
我知道有更简单的方法来监视应用程序的流量,但这仍然是一个非常好的工具。
最佳答案
这很有可能。如果您可以将 DLL 注入(inject)到应用程序中,则可以self host the CLR在该应用程序中。 This website如果你能忍受巨幅照片,提供了详细的教程。
但是,您所详细描述的内容比 DLL 注入(inject)稍微复杂一些;这确实是一个不同的问题。您需要克服 .NET 中程序集的强命名,替换计算机上相应的 .NET 程序集,然后编写新的 SslStream 类以向您报告。但这需要大量工作,因为您需要从头开始为您计划修补的每个类重新构建每个程序集。
另一种方法是 Hook .NET 将使用的底层套接字提供程序。您可以使用 Easyhook 拦截 Winsock 通信,然后要解密 SSL 流,您需要分析目标应用程序的内存以提取密码和 key 信息。
关于c# - "hook"类是否可以运行 .net 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17393045/