破碎型
BrokenType 是一組工具,旨在測試字體光柵化軟體的穩健性和安全性,特別是容易出現記憶體損壞問題的程式碼庫(以 C/C++ 和類似語言編寫)。它由以下組件組成:
- TrueType 程式產生器- 用於產生隨機但有效的 TrueType 程式的 Python 腳本。
- TTF/OTF 變異器- 用 C++ 編寫的半「智慧型」二進位字體檔案變異器。
- Windows GDI 的 TTF/OTF 載入程式- 用於使用 Windows GDI / Uniscribe 載入和測試自訂字型的實用程式。
- DirectWrite 的 TTF/OTF 載入程式- 用於使用 Microsoft DirectWrite API 載入和測試自訂字體的實用程式。
- Windows FontSub.dll 的 TTF 載入程式- 用於使用字型子設定庫載入和測試自訂字型的實用程式。
- Linux PE loader for FontSub.dll - 適用於 Linux 的最小 PE 載入程序,專為模糊 Windows 子集而自訂。
- PDF 字體嵌入器- 用於產生嵌入指定字體並顯示其所有字形的 PDF 文件的 Python 腳本。
這些實用程式的描述和使用說明可以在其相應的自述文件中找到。
這些程式和腳本在 2015 年至 2019 年期間成功發現並報告了 Windows 核心中存在的字體光柵化程式碼中的 20 個漏洞( win32k.sys
和atmfd.dll
驅動程式)、用戶模式Microsoft Uniscribe 庫中的19 個安全漏洞、以及FontSub.dll
庫中的 9 個錯誤和 DirectWrite 中的幾個問題。以下 Google 零專案部落格文章討論了模糊測試工作:
- Windows 核心字型模糊測試一年 #1:結果(2016 年 6 月)
- Windows 核心字型模糊測試一年 #2:科技(2016 年 7 月)
- Windows Uniscribe 模糊測試注意事項(2017 年 4 月)
以及 2015 年 9 月在倫敦舉行的 44CON 會議上發表的「逆向工程和利用字體光柵化器」演講。該工具發現的兩個最值得注意的問題是 CVE-2015-2426 和 CVE-2015-2455 - OTF 錯誤與 Hacking Team 洩漏中發現的漏洞發生衝突,以及 TTF 錯誤與 KeenTeam 的 pwn2own 2015 漏洞發生衝突。
免責聲明
這不是 Google 官方產品。