JT Ormandy, a Google biztonságkutatója, tudtára adta néhány nappal ezelőtt a projekt kidolgozása LoadLibrary, ami célja a Windows DLL könyvtárak betöltése Linux alkalmazásokhoz. A projekt egy többrétegű könyvtárat biztosít, amellyel egy DLL-t PE / COFF formátumban tölthet be, és meghívhatja az abban meghatározott függvényeket.
LoadLibrary átveszi a könyvtár memóriába töltését és a meglévő karakterek importálását, a Linux alkalmazás dlopen stílusú API-val való ellátása. A kód hibakereshető a gdb, az ASAN és a Valgrind segítségével. Futtatható kódot futás közben hangolhat horgok csatolásával és javítások (futásidejű javítások) alkalmazásával. Nem kívánt kivételek megengedettek a C ++ esetében.
A LoadLibrary projekt nem a jelenlegi projektek helyettesítésére szolgál amelyek hasonló munkát végeznek, mint például a Wine. A LoadLibrary célja, hogy lehetővé tegye a Windows DLL könyvtárak betöltését és elérését, mivel ezek natív Linux kódok lesznek, nem a Windows futtatását próbálja futtatni Linuxon és más hasonló programokon, hanem egyszerűen betölti a könyvtárakat.
A projekt célja skálázható elosztott fuzzing tesztek szervezése és hatékony DLL fájlok Linux alapú környezetben.
Windows rendszeren az összevonás és a lefedettség tesztelése nem teszi lehetővé a megfelelő teljesítményt, és gyakran megköveteli a Windows külön virtualizált példányának elindítását, különösen akkor, ha olyan kifinomult termékek elemzésére van szükség, mint például a víruskereső szoftverek, amelyek a kernelen és a felhasználói térben dolgoznak.
A projekt továbbfejlesztésének célja az önálló Windows könyvtárak skálázható és hatékony terjesztése a Linux rendszeren.
- C ++ kivétel küldése és kikapcsolása.
- További IDA szimbólumok betöltése.
- Hibakeresés a gdb-vel (beleértve a szimbólumokat), töréspontokat, verem nyomokat stb.
- Futásidejű horog és folt.
- Támogatás az ASAN és a Valgrind számára a finom memóriasérülési hibák felderítéséhez.
- Ha bármilyen külső importáláshoz támogatást kell hozzáadnia, akkor a dolgok írása általában gyors és egyszerű.
A LoadLibrary segítségével, A Google kutatói biztonsági réseket keresnek a videokodekekben, víruskeresők, adat dekompressziós könyvtárak, kép dekóderek stb.
„Az elosztott és skálázható streaming a Windows-ban kihívást jelenthet és nem hatékony, ez különösen igaz a végpont biztonsági termékekre, amelyek összetett, egymással összekapcsolt összetevőket használnak, amelyek átfedik a mag és a felhasználói teret.
Ehhez általában egy teljes virtualizált Windows környezet forgatása szükséges a sugárzáshoz. ez kevésbé jelent problémát a linuxon, és azt tapasztaltam, hogy gyakran lehet komponenseket portolni a Windows víruskereső termékektől a linuxig, ami lehetővé teszi számomra, hogy futtassam a tesztelt kódot minimális konténerekben, nagyon kevés rezsivel, és könnyebben kibővíthessem a teszteket .
Pl. a LoadLibrary használatával lehetőség nyílt a Windows Defender antivírus portolására hogy Linuxon fusson. Az mpengine.dll tanulmánya, amely a Windows Defender alapját képezi, lehetővé tette számunkra, hogy elemezzük a különféle formátumok bonyolult illesztőprogramjait, az FS-emulátorokat és a nyelvi tolmácsokat, amelyek potenciálisan vektorokat kínálnak a lehetséges támadásokhoz.
LoadLibrary az Avast víruskereső csomag távoli biztonsági résének azonosítására is használták.
Ennek az antivírusnak a DLL-jét tanulmányozva kiderült, hogy a legfontosabb privilegizált vizsgálati folyamat tartalmaz egy teljes JavaScript-tolmácsot, amelyet a harmadik féltől származó JavaScript-kód futtatásához használnak.
Ez a folyamat nincs elkülönítve a homokozó környezetben, nem állítja vissza a jogosultságokat, és elemzi a nem ellenőrzött külső FS-adatokat és az elfogott hálózati forgalmat.
Mivel ennek a bonyolult és bizonytalan folyamatnak a sérülékenysége az egész rendszer távoli kompromisszumához vezethet, a LoadLibrary alapján egy speciális avscript héjat fejlesztettek ki az Avast víruskereső biztonsági réseinek Linux alapú környezetben történő átvizsgálására.
A PE / COFF betöltő az ndiswrapper kódon alapul. A projekt kódja a GPLv2 licenc alatt kerül terjesztésre. A kód megtekinthető A következő linken.
Mindenki, hogy szar dlls mondta, ne felejtsd el a WC-papírt