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

    文章

    1819

    浏览量

    60693
  • Linux
    +关注

    关注

    88

    文章

    11854

    浏览量

    219822
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何在Windows上安装最新的deepin 25 WSL版本

    在日常的开发与测试中,许多用户希望能在 Windows 环境下便捷地使用 Linux 工具链。此时,WSL(Windows Subsystem for Linux,适用于
    的头像 发表于 05-08 14:31 218次阅读
    如何在<b class='flag-5'>Windows</b>上安装最新的deepin 25 WSL版本

    恢复引导加载程序错误怎么解决?

    的问题。 因此,当连接到调试引脚并按住启动时,初始加载器会提供一小部分命令列表。load 命令应该为 XMODEM 连接打开以接收二进制数据并将其加载到给定地址。在恢复指令中,这用于恢复加载
    发表于 03-26 07:18

    使用Labview建立的TCP Custom Device加载到NI上面后,数据收发不了?

    建立的Custom Device的每个VI组件都能独立运行,其中RT Driver这个VI组件在使用数据抓包脚本测试的时候,在前面板及脚本的页面都能看到数据的传输。 但是整个Custom Device加载到NI上之后,NI上的接口变量就收发不到数据了?请问这是哪个环节出错了呢?
    发表于 02-09 17:30

    使用TinyFPGA-Bootloader将比特流加载到FPGA

    在 FPGA 设计中,一个常见但略显繁琐的环节是:如何方便地新的比特流加载到 FPGA。尤其是在没有专用 USB-JTAG/编程芯片或者在低成本板卡中,传统的编程方式可能需要额外硬件或较复杂流程。
    的头像 发表于 12-19 15:20 5254次阅读
    使用TinyFPGA-Bootloader将比特流<b class='flag-5'>加载到</b>FPGA

    FLASH中的代码是如何得到运行的呢

    以ARM为例: ARM-cortex-M3/4的单片机(比如STM32 等):该类单片机的代码在nor flash中,cortex内核可以直接运行,不需要将代码加载到ram中运行
    发表于 12-04 08:06

    MCU代码需要搬到RAM中才能运行吗?不这样做会有什么不妥嘛?

    大部分单片机的代码直接在nor flash中运行,少部分需要加载到ram中。 nor flash可以直接寻址一个字节,可以找到一个指令的具体地址,因此可以直接运行。 nand flas
    发表于 12-04 07:39

    Linux内核模块的加载机制

    内核模块是什么? 内核模块是动态加载到内核中的代码,可以在不重启系统的情况下扩展功能,比如设备驱动或者文件系统支持。这样用户不需要把所有功能都编译进内核,节省了资源,提高了灵活性。 模块的文件格式
    发表于 11-25 06:59

    WindowsLinux环境下分别使用Olimex和蜂鸟调试器下载程序

    程序时,可以使用Windows+Olimex+cmd的方式开发和运行程序。 在Windows/Linux系统下使用蜂鸟调试器时,可以
    发表于 10-31 08:26

    进迭时空K1 Linux kernel upstream进展 | 取之于开源,贡献于开源

    秉承“取之于开源,贡献于开源”的理念,进迭时空坚持在开源协作的模式中创新,将自研RISC-VK1芯片更深度地融入Linux生态,从而为开发者提供更便捷的RISC-V算力支持,助力RIS
    的头像 发表于 10-30 18:06 9078次阅读
    进迭时空K1 <b class='flag-5'>Linux</b> kernel upstream进展 | 取之于<b class='flag-5'>开源</b>,贡献于<b class='flag-5'>开源</b>

    飞凌嵌入式ElfBoard-Vim编辑器之windows与ubuntu系统互传文件

    共享文件夹ubuntu和Windows主机之间的文件传输有很多种,安装VMware Tools后,可以设置虚拟机共享文件夹,Windows主机的文件目录挂
    发表于 10-20 08:46

    N9H30如何从SPI闪存应用程序加载到RAM地址0x0?

    无法利用 uboot 从 SPI 闪存0x0应用程序加载到 RAM 地址。SF 读取0x0 0x100000 0x700000这是 uboot 限制
    发表于 09-01 06:06

    如何源地址 FCANFDx FiF 0 加载到 DMA 线的 SRC 寄存器中?

    您能否提供一个示例,说明如何源地址 FCANFDx FiF 0 加载到 DMA 线的 SRC 寄存器中? 我不想使用固定地址加载,例如: cy_stc_dma_descriptor_t
    发表于 07-18 08:06

    CX3无法固件加载到SPI闪存如何解决?

    我无法固件加载到 SPI 闪存。 步骤如下: 1. 开机,运行 USB 控制中心, 2.点击boot loader,点击FX3,然后选择“SPI flash”。然后USB控制中心显示“未找到
    发表于 07-16 07:37

    WindowsLinux 系统切换:聚徽工控一体机的系统迁移避坑经验

    开源、稳定、安全等特性,在实时控制、嵌入式系统等领域备受青睐。然而,在实际应用中,企业可能因业务需求变化、系统升级等原因,需要在 WindowsLinux 系统之间进行切换。聚徽工控一体机在系统迁移过程中,积累了丰富的避坑
    的头像 发表于 06-24 16:09 1044次阅读

    CY7C68013A无法加载EEPROM中的程序是为什么?

    我通过cycontrol.IIC文件下载到24lc64中,但是再次启动时无法加载到CY7C68013A中,必须再使用cycontrolhex文件下
    发表于 06-03 14:07