2011-04-10 103 views
0

我正在尝试从协议(AIM 7)读取具有SSL加密的数据包,如何使用C#关闭SSL?C#SSL 3.0(TCP)协议解密?

谢谢。

我不希望额外的DLL在我的应用程序,这就是为什么我试图从头开始写它。这样做很复杂,但我想通过分析数据包来创建一个客户端,目标7通过网络(使用代理)发送并解码它们,然后重新编码它们并创建自己的客户端,而不使用它们创建的dll。

回答

0

这在理论上是可能的,但不是很实用。您需要访问仅在AIM过程中可用的数据(当前对称密钥持续变化)。如果您试图解密您的计算机未参与的SSL对话,那么认为它不可能(这是使用SSL的全部要点)。无论哪种方式,你要么试图破解一些东西,要么尝试错误的方式。也许你可以告诉我们你想要完成什么?按照预期使用AIM API或使用Windows API来控制AIM实例是编写“说”AIM的应用程序的一种更简单的方法。

+0

我不想在我的应用程序中有额外的dll,这就是为什么我试图从头开始编写它。这样做很复杂,但我想通过分析数据包来创建一个客户端,目标7通过网络(使用代理)发送并解码它们,然后重新编码它们并创建自己的客户端,而不使用它们创建的dll。 – Eric 2011-04-10 21:10:37

+0

啊,我明白了。这恐怕会是一个巨大的痛苦。对于不同的AIM协议,有很多(非官方的)文档,但是因为它没有什么专利,所以完美。要解密SSL流,您需要在更改时使用对称密钥对,或者从不通过线路传输的AOL SSL证书的私钥。有一些不错的SSL解密工具可用于故障排除,但与Wireshark协同工作,但没有私钥的原始证书无用。 – MDaubs 2011-04-10 21:28:28

1

您可以使用SslStream。用它包装TcpClient.GetStream()

+0

我认为@Eric想拦截和解密他的应用程序没有建立的SSL对话。 SslStream真的可以做到吗? – MDaubs 2011-04-11 13:13:17

+0

没有。我认为@Eric希望充当伪装成AIM客户端的代理。因此它是可能的。 – jgauffin 2011-04-11 13:29:27

0

如果您唯一的担心是运送额外的DLL,您可以合并程序集,然后使用与应用程序合并的第三方SSL库,并将其作为单个程序集发布。

您可以使用ILMerge来执行此操作。