谷歌知名研究員開源loadlibrary:將Windows DLL加載到Linux
Google知名漏洞研究人員Tavis Ormandy開源了一個可以將Windows DLL加載到Linux的庫loadlibrary,該庫允許原生Linux程序從Windows DLL加載和調用函數。庫中包含一個自ndiswrapper派生的自定義PE/COFF加載器。該庫將處理重定位和導入,並提供類dlopen API。
Tavis表示,Windows上的分佈式、可擴展的模糊測試可能具有挑戰性且效率低下。對於使用跨內核和用戶空間的複雜互連組件的端安全產品尤其如此。這通常需要顛覆整個虛擬化的Windows環境以對其進行模糊測試。但是在Linux上,這不是什麼大問題,如果可以將Windows殺毒軟件的組件移植到Linux,那麼就可以在最小的容器中運行測試代碼,而開銷卻很小,並且可以輕鬆地擴展測試範圍。
loadlibrary 的目的是允許在Linux 上對自包含的Windows 庫進行可擴展和有效的模糊測試,包括視頻編解碼器、解壓縮庫、病毒掃描程序與圖像解碼器等。可以進行:
- C++ 異常調度和釋放。
- 從IDA 加載其它字符。
- 使用gdb、斷點、堆棧跟踪等進行調試
- 運行時hook 和補丁。
- 支持ASAN 和Valgrind 以檢測細微的內存損壞錯誤。
作為演示,Tavis 目前已經將Windows Defender 移植到了Linux。