本章導言#
分析網路協定本身可以是目的,但多數時候,你之所以分析它,是為了能動手實作這個協定,進而測試它有沒有安全漏洞。本章介紹幾種「以測試為目的」的協定實作方式,核心思路只有一個:盡可能重用既有的程式碼,把自己要寫的部分壓到最低。
我們會從最省力的做法開始——直接重放(replay)擷取下來的流量;接著把第 5 章的分析用代理程式(proxy)改造成用戶端與伺服器;再進一步討論如何直接呼叫目標程式裡既有的執行碼(.NET、Java 與非託管的動態函式庫);最後處理最常見的障礙:TLS 加密。
本章沿用作者的 SuperFunkyChat 應用程式作為測試資料與收發對象,但你也可以換成任何自己感興趣的協定,基本原理是一樣的。