2011-04-10 38 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來執行此操作。