塔維斯·奧曼迪(),Google安全研究員,正在開發該項目 旨在移植編譯 Windows DLL庫在應用程式中的使用 Linux此專案提供了一個層庫,可用於載入 PE/COFF DLL 檔案並呼叫其中定義的函數。 PE/COFF 載入器基於以下程式碼。 . 專案程式碼 在 GPLv2 下獲得許可。
LoadLibrary 負責將庫載入到記憶體中並匯入現有符號,並提供 Linux- 為應用程式提供了一個類似 dlopen 的 API。包含的程式碼可以使用 gdb、ASAN 和 Valgrind 進行偵錯。運行時代碼可以透過鉤子和運行時補丁進行調整。支援 C++ 的異常處理和異常展開。
此專案的目標是在基於以下環境的條件下組織可擴展且高效的 DLL 庫分散式模糊測試: Linux。 在 Windows 進行模糊測試和覆蓋率測試無法達到所需的效率,而且通常需要啟動一個單獨的虛擬化實例。 Windows尤其是在分析複雜產品(例如防毒軟體)時,這類產品既包含核心空間功能也包含使用者空間功能。 Google研究人員利用 LoadLibrary 來搜尋視訊編解碼器、防毒掃描器、資料解壓縮庫、影像解碼器等中的漏洞。
例如,使用 LoadLibrary,可以將其移植到其他平台運行。 Linux 防毒引擎 Windows Defender。正在研究 mpengine.dll,它是基礎。 Windows Defender 使得分析大量各種格式的複雜處理器、檔案系統模擬器和語言解釋器成為可能,這些程式可能提供攻擊途徑。 .
LoadLibrary 也用於偵測 在 Avast 防毒軟體中。在研究該防毒軟體的 DLL 時,發現關鍵的特權掃描進程包含一個功能齊全的 JavaScript 解釋器,用於模擬第三方 JavaScript 程式碼的執行。此程序未隔離在沙盒環境中,不會重置權限,並且會分析來自檔案系統 (FS) 的未經驗證的外部資料和攔截的網路流量。由於這個複雜且不受保護的進程中的任何漏洞都可能導致整個系統的遠端入侵,因此基於 LoadLibrary 開發了一個特殊的 Shell。 在基於以下環境的條件下分析 Avast 防毒掃描器的漏洞 Linux.
來源: opennet.ru
