查看原文
其他

将Windows DLL加载到Linux,谷歌知名研究员开源loadlibrary

21CTO 2021-10-22
导读:作者通过Load Libray,可以解决Windows系统的分布式环境效率低下等问题,还可以将一些产品组件移植到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。LoadLibrary不能代替Wine或类似产品,而只是允许Windows DLL库被加载,然后可以由本机Linux代码调用,不是在Linux上运行Windows程序等,只是加载库。


LoadLibrary的GitHub地址:

https://github.com/taviso/loadlibrary


来源:Michael Larabel,开源中国



疫情过后,21CTO学院PHP全栈工程师招生啦,毕业即获得一线互联网公司就业机会!


相关阅读:


GitHub:如何构建一个股票市场知识图谱?(附代码&链接)

GitHub收购npm!要为1200万JS开发者提供更安全的开源包

微软试用 Rust 重写 Windows 底层组件


: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存