2013-06-30 31 views
2

我最近在玩dll注射(主要是easyhook),我开始想知道 - 是否可以用.net类做类似的事情?是否有可能“钩”类来运行.net程序?

例如,重写TcpStream和SslStream来监视应用程序的通信。 hoop应用程序会注入到另一个应用程序中,并显示发送和接收的流量日志。

我知道有更简单的方法来监视应用程序的流量,但这仍然是一个非常好的工具。

回答

2

这是完全有可能的。如果您可以将DLL注入到应用程序中,则可以在该应用程序中使用self host the CLRThis website提供了一个详细的教程,如果你可以容忍巨大的照片。

但是,您所详述的内容比DLL注入稍微复杂一点;这真的是一个不同的问题。你需要在.NET中打败强大的程序集命名,替换你的机器上相应的.NET程序集,然后编写新的SslStream类来报告给你。但是这需要很多工作,因为你需要为每个你打算修补的每个类重新构建每个程序集,从头开始。

另一种方法是将底层套接字提供程序挂接到.NET将要使用的地方。您可以使用easyhook拦截winsock通信,然后解密您需要分析目标应用程序内存以提取密码和密钥信息所需的SSL流。

+0

更改核心.net程序集像系统等是不可能的或至少非常非常困难。你可以自己尝试。 –

+0

@ArsenZahray这很难但并非不可能。我之前就已经完成了,它是以.NET验证程序集强名称的方式利用漏洞的问题。它在线发布,并且可以通过一些搜索找到它。这不是我可以轻松评论的细节。但作为参考,更改mscorlib其实很简单,Visual Studio中有一个选项甚至不会将其包含在自己的代码中,但是必须实现自己的代码。复制并粘贴新程序集,只要您强烈地命名它并将其信任在您的系统上即可。你可以链接到一个方法来更改System.dll的 –

+0

?我试过用反射器做一些事情,但它不起作用。 –

相关问题