Tavis Ormandy (
LoadLibrary se encarga de cargar la biblioteca en la memoria e importar los símbolos existentes, proporcionando a la aplicación Linux una API de estilo dlopen. El código del complemento se puede depurar utilizando gdb, ASAN y Valgrind. Es posible ajustar el código ejecutable durante la ejecución conectando ganchos y aplicando parches (parches en tiempo de ejecución). Admite el manejo y desenredado de excepciones para C++.
El objetivo del proyecto es organizar pruebas de fuzzing distribuidas escalables y eficientes de bibliotecas DLL en un entorno basado en Linux. En Windows, las pruebas de cobertura y fuzzing no son muy eficientes y a menudo requieren ejecutar una instancia virtualizada separada de Windows, especialmente cuando se intenta analizar productos complejos como software antivirus que abarcan el kernel y el espacio del usuario. Utilizando LoadLibrary, los investigadores de Google buscan vulnerabilidades en códecs de vídeo, escáneres de virus, bibliotecas de descompresión de datos, decodificadores de imágenes, etc.
Por ejemplo, con la ayuda de LoadLibrary pudimos portar el motor antivirus de Windows Defender para ejecutarlo en Linux. El estudio de mpengine.dll, que forma la base de Windows Defender, permitió analizar una gran cantidad de procesadores sofisticados en busca de diversos formatos, emuladores de sistemas de archivos e intérpretes de idiomas que potencialmente proporcionan vectores para
LoadLibrary también se utilizó para identificar
Fuente: opennet.ru