Windows 图元文件 (.wmf)
[MS-WMF]: 标准Windows 图元文件(WMF)是微软传统的 16 位矢量和栅格容器格式,在 Windows 3.0 时代设计,用于在 Windows 应用程序之间共享可缩放的剪贴画和图形。
将 WMF 转换为 SVG
免费的浏览器端 WMF 转 SVG 转换器。在您的设备上即时转换文件。
检查与元数据
操作系统和文件分析器通过检查开头的二进制字节序列来识别 WMF 文件:
字节级文件头签名 (Magic Bytes)
操作系统和文件分析器通过检查开头的二进制字节序列来识别 WMF 文件:
十六进制签名 (偏移量 0):
D7 CD C6 9A / 01 00 09 00ASCII 表示形式: ×ÍÆš / ....
标准化: [MS-WMF]: Windows Metafile Format Specification
技术规格
| 容器架构 | 16-bit GDI metafile records optionally preceded by a 22-byte Aldus placeable header |
| 压缩方式 | Uncompressed 16-bit vector and raster drawing command records |
| 字节序 | Little-Endian (Intel x86) |
| 色彩空间 | Device Dependent RGB |
| 通道与结构 | Vector paths, polygons, text strings, and embedded 16-bit/24-bit DIB bitmaps |
| 最大尺寸 | 16-bit integer coordinate space (-32,768 to +32,767 units) |
| 透明度 | Binary raster operation (ROP2) transparency masks |
| 流式传输与渐进式加载 | Sequential record playback directly into 16-bit Windows GDI |
技术对比矩阵:WMF 对比同类产品
| 技术属性 | WMF (当前) | EMF | SVG | EPS |
|---|---|---|---|---|
| 坐标空间 | 16 位整数(-32768 到 32767) | 32 位整数坐标 | IEEE 双精度浮点数 | 1/72 英寸 PostScript 点 |
| 操作系统 | 传统 16 位 Windows GDI | 32 位 Windows GDI+ | W3C 通用网络标准 | PostScript 印前标准 |
| 现代浏览器支持 | 零原生浏览器支持 | 零原生浏览器支持 | 所有浏览器中 100% 原生内联 | 零原生浏览器支持 |
| 安全态势 | 传统原生解析器中的高风险 | 原生 GDI 中的中等风险 | 安全的声明性 XML(经过消毒) | 高风险(可执行语言) |
常见损坏模式与十六进制恢复指南
图形显示严重扭曲或收缩成微小的点。
根本原因: 缺少或损坏的 Aldus 可放置头部(缺少 0xD7CDC69A 魔术标记和边界框)。
恢复方法: 重新注入标准可放置边界框,或使用 File2File 图元文件转换器转码为 SVG。
安全分析与解析器攻击向量
由于 GDI 回调执行记录(SETABORTPROC),WMF 是计算史上历史上最容易受到攻击的格式之一。
已知攻击向量
- 通过传统 Windows GDI 中的 SETABORTPROC 记录调用执行任意代码。
- 处理损坏的 16 位多边形点数组时发生缓冲区溢出。
- 在嵌入式 DIB 位图解压期间发生越界堆读取。
防御性最佳实践:
历史渊源与里程碑
核心优势与特点
- 紧凑的矢量存储:传统的 1990 年代剪贴画文件通常只有几千字节大小。
- 可缩放的矢量形状和字体能够平滑缩放到早期桌面打印机的分辨率。
- 嵌入在数百万个旧版 Microsoft Office 文档和档案中的历史标准。
技术局限与劣势
- 严重过时:与现代矢量格式相比,16 位整数坐标限制了绘制精度。
- 恶劣的安全历史:传统的 WMF 记录执行功能允许关键的远程代码执行。
- 不支持渐变、不透明度遮罩或 CSS 样式等现代矢量特性。
趣味技术冷知识
- 可放置的 WMF 头部以魔术字节 0xD7 0xCD 0xC6 0x9A 开头,这是由 Aldus Corporation 为 PageMaker 发明的。
- 2005 年的"SETABORTPROC"记录漏洞允许攻击者只需让用户在 Windows 资源管理器中查看图片,就能执行任意汇编代码。
- 1990 年代的数百万张软盘剪贴画收藏完全以 .WMF 格式分发。
常见技术问题
什么是 WMF 文件?
WMF (Windows Metafile) 是微软于 1990 年创建的传统 Windows 矢量格式,用于在 Windows 3.0 和早期微软 Office 版本中存储剪贴画和插图。
如何将 WMF 转换为 SVG 或 PNG?
你可以直接在网页浏览器中使用 File2File.app,安全地将 WMF 文件转换为现代、可缩放的 SVG 矢量图或 PNG 图像。
为什么过去 WMF 被认为具有危险性?
在 2005 年,人们发现了一个严重漏洞:WMF 文件能够触发可执行的打印机回调,导致恶意文件只需被查看就能感染计算机。