2011-12-21 19 views
0

我正在逆向工程專有協議以創建一個自由開放的客戶端。通過運行專有的客戶端程序和觀看流量,到目前爲止,我已經制定了大部分協議。但是,身份驗證使用SSL加密。這是我的下一個目標。運行時在內存中搜索並替換SSL證書

我知道一個常見的方式是通過我的控制下的代理路由所有流量,基本上是在中間人攻擊中執行一個人。出於這個原因,我需要有問題的程序來接受我的自簽名SSL證書。不過,這裏是我冒險進入未知領域的地方:該程序使用Adobe Flash編寫,並使用AIR運行時。我還沒有成功找到程序文件中的SSL指紋,即使我能做到這一點,我也不知道任何有關Flash的問題,並且可能在二進制修補程序時搞砸了一些東西。因此我可以選擇在運行時更改內存。傾倒程序的記憶證實了簽名機構的名字在幾個地方存在。

有誰知道一種技術,可以自動查找內存中看起來像SSL證書的所有內容嗎?有沒有人對我有任何提示?

我使用Linux,所以我到目前爲止一直運行Wine下的程序,並使用GDB,以及檢查/ proc/n/mem,但Windows特定的提示也表示讚賞。

回答

1

驗證服務器端證書通常不是通過比較證書二進制文件(您可以替代),而是通過對提供的證書執行復雜分析來完成。因此,最簡單的方法是找到證書有效性最終判定的地方(它很可能在AIR運行時而不是在腳本中)並修補該地點。