LoadLibrary,用於將 Windows DLL 加載到 Linux 應用程序中的層

塔維斯·奧曼迪 (塔維斯·奧曼迪),谷歌的一名安全研究員,正在開發該項目 調用LoadLibrary,旨在移植為 Windows 構建的 DLL,以便在 Linux 應用程序中使用。 該項目提供了一個圖層庫,您可以使用它加載 PE/COFF 格式的 DLL 文件並調用其中定義的函數。 基於代碼的 PE/COFF 引導加載程序 恩迪斯包裝器. 項目代碼 分發者 在 GPLv2 下獲得許可。

LoadLibrary 負責將庫加載到內存中並導入現有符號,為 Linux 應用程序提供 dlopen 樣式的 API。 可以使用 gdb、ASAN 和 Valgrind 調試包含的代碼。 可以通過連接掛鉤和應用補丁(運行時補丁)在運行時更正可執行代碼。 支持 C++ 異常處理和展開。

該項目的目標是在基於 Linux 的環境中組織可擴展且高效的 DLL 分佈式模糊測試。 在 Windows 上,模糊測試和覆蓋測試效率不高,通常需要運行單獨的 Windows 虛擬化實例,尤其是在嘗試分析複雜產品(例如覆蓋內核和用戶空間的防病毒軟件)時。 使用 LoadLibrary,Google 研究人員正在尋找視頻編解碼器、防病毒掃描程序、數據解壓縮庫、圖像解碼器等方面的漏洞。

例如,使用 LoadLibrary,我們設法將 Windows Defender 反病毒引擎移植到 Linux 上運行。 對 Windows Defender 基礎 mpengine.dll 的研究使得分析大量各種格式的複雜處理程序、文件系統模擬器和語言解釋器成為可能,可能為 可能的 攻擊.

LoadLibrary也被用於檢測 遠程漏洞 在 Avast 防病毒包中。 在研究該防病毒軟件的 DLL 時,發現關鍵的特權掃描過程包括一個成熟的 JavaScript 解釋器,用於模擬第三方 JavaScript 代碼的執行。 該過程不隔離在沙箱環境中,不重置權限,分析來自 FS 的未經驗證的外部數據和攔截的網絡流量。 由於這個複雜且不受保護的過程中的任何漏洞都可能導致整個系統的遠程危害,因此基於 LoadLibrary 開發了一個特殊的 shell 腳本 用於在基於 Linux 的環境中對 Avast 防病毒掃描程序進行漏洞分析。

來源: opennet.ru

添加評論