c# - "hook"类是否可以运行 .net 程序?

标签 c# .net hook

我最近在玩 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/

相关文章:

c# - 未找到 MySQL Connector/Net 6.0.2 路径

c# - 4.6 新UI 如何更改按钮图像?

.net - 在哪里可以找到System.ComponentModel.Composition.Initialization.dll?

python - PyTorch 警告关于在前向包含多个 autograd 节点时使用非完整后向钩子(Hook)

C# 终结器不释放非托管内存

javascript - 关闭模态后清除模态字段

.net - 使用具有相同名称但不同路径的 DLL

asp.net - 将 ASP.NET 从 RC1 升级到核心后出现 Razor 异常

c++ - 使用 MHook 的系统范围的钩子(Hook)

visual-c++ - Hook Windows API 函数以拦截 dll 加载(仅限 Windows)