0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

可以将Windows DLL加载到Linux的开源loadlibrary

汽车玩家 来源:开源中国 作者:开源中国 2020-03-12 09:18 次阅读

Google 知名漏洞研究人员 Tavis Ormandy 开源了一个可以将 Windows DLL 加载到 Linux 的库loadlibrary,该库允许原生 Linux 程序从 Windows DLL 加载和调用函数。库中包含一个自 ndiswrapper 派生的自定义 PE/COFF 加载器。该库将处理重定位和导入,并提供类dlopenAPI

Tavis 表示,Windows上的分布式、可扩展的模糊测试可能具有挑战性且效率低下。对于使用跨内核和用户空间的复杂互连组件的端安全产品尤其如此。这通常需要颠覆整个虚拟化的 Windows 环境以对其进行模糊测试。但是在 Linux 上,这不是什么大问题,如果可以将 Windows 杀毒软件的组件移植到 Linux,那么就可以在最小的容器中运行测试代码,而开销却很小,并且可以轻松地扩展测试范围。

loadlibrary 的目的是允许在 Linux 上对自包含的 Windows 库进行可扩展和有效的模糊测试,包括视频编解码器、解压缩库、病毒扫描程序与图像解码器等。可以进行:

C++ 异常调度和释放。

从 IDA 加载其它字符。

使用 gdb、断点、堆栈跟踪等进行调试

运行时 hook 和补丁。

支持 ASAN 和 Valgrind 以检测细微的内存损坏错误。

作为演示,Tavis 目前已经将 Windows Defender 移植到了 Linux。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Google
    +关注

    关注

    5

    文章

    1713

    浏览量

    56790
  • Linux
    +关注

    关注

    87

    文章

    10990

    浏览量

    206734
收藏 人收藏

    评论

    相关推荐

    运行FPGA然后img加载到FX3时出现了黑屏是为什么?

    当我运行 FPGA 然后 img 加载到 FX3 时出现了黑屏,我使用了 amcap.exe。 FPGA 输出动态模式。 请帮我解决我的问题。 我附上了 chipscope 和 amcap.exe
    发表于 02-26 08:36

    linuxwindows的区别 linux系统一般用来干嘛

    Linux的设计理念 Linux是一个开源操作系统,其设计理念是自由、共享和开放。Linux系统遵循类Unix的设计原则,注重系统的稳定性、灵活性和安全性。它采用模块化的设计结构,用
    的头像 发表于 02-05 14:06 327次阅读

    反射DLL注入的工作原理和实现流程

    DLL 模块,可以通过一些 I/O 操作将所需的代码写入目标进程,但这大量的 I/O 操作对病毒引擎来说过于敏感,还有一个思路就是编写一段引导程序,这段引导程序用来模拟 Windows 映像
    的头像 发表于 01-20 10:04 723次阅读
    反射<b class='flag-5'>DLL</b>注入的工作原理和实现流程

    安装Linuxwindows在哪启动

    )是一个多操作系统引导加载程序,可以管理多个操作系统的启动。它允许用户在系统启动时选择要运行的操作系统。本文将详细介绍 Linux 安装后 Windows 的启动位置以及相关信息。 在
    的头像 发表于 11-28 15:02 507次阅读

    在单片机上实现动态加载功能的函数库介绍

    本项目是一个在单片机(如:STM32)上实现动态加载功能的函数库,与Windows中的dllLinux中的so类似,可以将代码动态地从其他
    的头像 发表于 11-09 10:55 708次阅读

    linuxwindows的区别

    LinuxWindows是两种不同的操作系统,它们之间的区别包括: 源代码开放性:Linux开源的,意味着任何人都可以获取并修改其源代码
    的头像 发表于 11-08 11:08 2450次阅读

    函数加载到Flash或SRAM指定地址的方法

    AT32 部分型号有零等待闪存和非零等待闪存,程序在零等待闪存执行速度比在非零等待闪存执行速度快,如果有函数对执行速度有要求,可以将该函数加载到零等待区执行。当零等待闪存使用完后,如果还有函数对执行速度有要求,可以将该函数
    发表于 10-20 06:10

    博途将HMI画面加载到HMI设备

    可将自己新建的项目加载到 HMI 设备并在运行系统中执行。 为此,组态设备和 HMI 设备之间必须建立连接。 如果您没有使用 HMI 设备,则可以在 TIA Portal 中仿真运行系统.
    的头像 发表于 08-31 16:21 2265次阅读
    博途将HMI画面<b class='flag-5'>加载到</b>HMI设备

    WindowsLinux为什么可以彼此ping的通呢?

    为什么 VMware 会给我多创建了两个网络呢?WindowsLinux 为什么可以彼此 ping 的通呢
    的头像 发表于 07-07 09:39 983次阅读
    <b class='flag-5'>Windows</b>和<b class='flag-5'>Linux</b>为什么<b class='flag-5'>可以</b>彼此ping的通呢?

    如何.bin文件加载到Huzzah ?

    文件夹中创建一个 .cpp.adafruit.bin 文件)但我不知道如何 .bin 文件加载到 Huzzah . 来自https://github.com/themadinventor/esptool
    发表于 06-09 06:01

    在单片机上实现动态加载功能

    本项目是一个在单片机(如:STM32)上实现动态加载功能的函数库,与Windows中的dllLinux中的so类似,可以将代码动态地从其他
    发表于 05-30 11:04 1220次阅读

    DLL简介

    DLL 文件就会被调用。一个应用程序可使用多个 DLL 文件,一个 DLL 文件也可能被不同的应用程序使用,这样的 DLL 文件被称为共享 DL
    的头像 发表于 05-22 15:51 873次阅读
    <b class='flag-5'>DLL</b>简介

    从单片机步入Linux之运行地址与加载地址

    在玩单片机(以stm32为例)的时候会有RAM空间和ROM空间,RAM空间主要是用于数据的访问,而ROM空间用于存放烧录的固件,当然固件也可以直接加载到RAM中运行,只是说每次上电都需要重新加载
    发表于 05-18 17:40 775次阅读
    从单片机步入<b class='flag-5'>Linux</b>之运行地址与<b class='flag-5'>加载</b>地址

    Linux (i.MX8M Plus) 中通过remoteproc固件加载到M7时出现挂起问题怎么解决?

    Linux 中通过 remoteproc 固件加载到 M7 时遇到挂起问题。 uboot中的初始设置 $ setenv fdtfile imx8mp-evk-rpmsg.dtb $ 保存环境
    发表于 05-17 07:25

    使用调试器程序加载到DRAM中,为什么配置工具会出现此错误?

    映像时报告以下错误: “无法 ELF 转换为 S-Record。确保 ELF 包含符号表并重建映像” 我正在使用配置工具版本 6 如果我使用调试器程序加载到 DRAM 中,我的程序确实会运行,所以我不明白为什么配置工具会出现
    发表于 04-28 07:02