Windows Metafile (.wmf)
[MS-WMF]: มาตรฐานWindows Metafile (WMF) เป็นรูปแบบคอนเทนเนอร์เวกเตอร์และแรสเตอร์แบบ 16 บิตรุ่นเก่าของ Microsoft ซึ่งได้รับการออกแบบในยุค Windows 3.0 สำหรับการแชร์คลิปอาร์ตและกราฟิกที่ปรับขนาดได้ระหว่างแอปพลิเคชัน Windows
แปลง WMF เป็น SVG
ตัวแปลงจาก WMF เป็น SVG ฟรีในเบราว์เซอร์ แปลงไฟล์ได้ทันทีบนอุปกรณ์ของคุณ
ตรวจสอบไฟล์และข้อมูลเมตา
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ WMF โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็นส่วนหัวระดับไบต์
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ WMF โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็น HEX (OFFSET 0):
D7 CD C6 9A / 01 00 09 00การแสดงผลรูปแบบ ASCII: ×ÍÆš / ....
มาตรฐาน: [MS-WMF]: Windows Metafile Format Specification
ข้อมูลจำเพาะทางเทคนิค
| สถาปัตยกรรมคอนเทนเนอร์ | เรคอร์ดเมตาไฟล์ GDI ขนาด 16 บิต โดยอาจมีส่วนหัว Aldus placeable ขนาด 22 ไบต์อยู่ก่อนหน้า |
| การบีบอัด | เรคอร์ดคำสั่งวาดเวกเตอร์และแรสเตอร์ 16 บิตที่ไม่บีบอัด |
| การจัดลำดับไบต์ | ลำดับไบต์แบบ Little-Endian (Intel x86) |
| พื้นที่สี | RGB ที่ขึ้นกับอุปกรณ์ |
| ช่องสัญญาณและโครงสร้าง | พาธเวกเตอร์ รูปหลายเหลี่ยม สตริงข้อความ และบิตแมป DIB 16 บิต/24 บิตที่ฝังอยู่ |
| ขนาดสูงสุด | ปริภูมิพิกัดจำนวนเต็ม 16 บิต (-32,768 ถึง +32,767 หน่วย) |
| ความโปร่งใส | มาสก์ความโปร่งใสสำหรับการดำเนินการแรสเตอร์ไบนารี (ROP2) |
| การสตรีมและแบบโปรเกรสซีฟ | เล่นระเบียนตามลำดับโดยตรงผ่าน Windows GDI แบบ 16 บิต |
ตารางเปรียบเทียบทางเทคนิค: WMF กับคู่แข่ง
| คุณลักษณะทางเทคนิค | WMF (ปัจจุบัน) | EMF | SVG | EPS |
|---|---|---|---|---|
| พื้นที่พิกัด | จำนวนเต็ม 16 บิต (-32768 ถึง 32767) | พิกัดจำนวนเต็ม 32 บิต | จุดทศนิยมความแม่นยำสองเท่าแบบ IEEE | จุด PostScript ขนาด 1/72 นิ้ว |
| ระบบปฏิบัติการ | Windows GDI 16 บิตรุ่นเก่า | Windows GDI+ 32 บิต | การรองรับแตกต่างกันไปตามซอฟต์แวร์ | มาตรฐาน Prepress ของ PostScript |
| การรองรับเบราว์เซอร์สมัยใหม่ | ไม่รองรับในเบราว์เซอร์เลย | ไม่รองรับในเบราว์เซอร์เลย | ความเข้ากันได้แตกต่างกันตามเบราว์เซอร์และแอป | ไม่รองรับในเบราว์เซอร์เลย |
| สถานะความปลอดภัย | ความเสี่ยงสูงในตัวแยกวิเคราะห์ดั้งเดิมรุ่นเก่า | ความเสี่ยงปานกลางใน GDI ดั้งเดิม | XML แบบประกาศที่ปลอดภัย (ผ่านการฆ่าเชื้อแล้ว) | ความเสี่ยงสูง (ภาษาที่สามารถรันได้) |
รูปแบบความเสียหายทั่วไปและคู่มือการกู้คืน Hex
กราฟิกปรากฏว่าบิดเบี้ยวอย่างรุนแรงหรือยุบตัวกลายเป็นจุดเล็กๆ
สาเหตุหลัก: ส่วนหัวที่วางตำแหน่งได้ของ Aldus หายไปหรือเสียหาย (ขาดเครื่องหมายวิเศษ 0xD7CDC69A และกรอบขอบเขต)
การกู้คืน: ฉีดกรอบขอบเขตที่วางตำแหน่งได้มาตรฐานเข้าไปใหม่หรือแปลงรหัสเป็น SVG โดยใช้ File2File.app Metafile Converter
การวิเคราะห์ความปลอดภัยและเวกเตอร์การโจมตีตัวแยกวิเคราะห์
WMF เป็นหนึ่งในรูปแบบที่มีช่องโหว่มากที่สุดในประวัติศาสตร์คอมพิวเตอร์ เนื่องจากมีเรคคอร์ดการดำเนินการเรียกกลับของ GDI (SETABORTPROC)
เวกเตอร์การโจมตีที่ทราบ
- การรันโค้ดตามอำเภอใจผ่านการเรียกเรคคอร์ด SETABORTPROC ใน Windows GDI รุ่นเก่า
- จุดยอดของรูปหลายเหลี่ยม 16 บิตที่เสียหายอาจทำให้เกิดบัฟเฟอร์ล้นในตัวแยกวิเคราะห์ WMF
- การอ่านฮีปนอกขอบเขตระหว่างการคลายการบีบอัดบิตแมป DIB ที่ฝังอยู่
แนวทางปฏิบัติที่ดีที่สุดในการป้องกัน: ห้ามแยกวิเคราะห์ไฟล์ WMF โดยใช้ API GDI ของระบบปฏิบัติการเนทีฟ ให้แปลงรหัสภายในสภาพแวดล้อม WebAssembly ที่แยกส่วนอย่างเคร่งครัด
ประวัติความเป็นมาและเหตุการณ์สำคัญ
ข้อได้เปรียบและจุดเด่นสำคัญ
- การจัดเก็บเวกเตอร์ขนาดกะทัดรัด: ไฟล์คลิปอาร์ตยุค 1990 แบบดั้งเดิมมักจะมีขนาดเพียงไม่กี่กิโลไบต์เท่านั้น
- รูปทรงเวกเตอร์และแบบอักษรปรับขนาดได้อย่างเรียบเนียนตามความละเอียดของเครื่องพิมพ์เดสก์ท็อปรุ่นแรก
- มาตรฐานทางประวัติศาสตร์ที่ฝังอยู่ในเอกสารและคลังข้อมูลของ Microsoft Office รุ่นเก่าหลายล้านรายการ
ข้อจำกัดทางเทคนิคและข้อควรพิจารณา
- ความล้าสมัยอย่างรุนแรง: พิกัดจำนวนเต็ม 16 บิตจำกัดความแม่นยำในการวาดภาพเมื่อเทียบกับรูปแบบเวกเตอร์สมัยใหม่
- ประวัติด้านความปลอดภัยที่เลื่องชื่อ: ความสามารถในการรันคำสั่งของเรคอร์ด WMF รุ่นเก่าเคยเปิดทางให้รันโค้ดจากระยะไกลที่เป็นอันตราย
- ไม่รองรับฟีเจอร์เวกเตอร์สมัยใหม่ เช่น ไล่ระดับสี หน้ากากความทึบ หรือการจัดสไตล์ CSS
เกร็ดความรู้ทางเทคนิคที่น่าสนใจ
- ส่วนหัว WMF ที่วางตำแหน่งได้เริ่มต้นด้วยลายเซ็นไฟล์ 0xD7 0xCD 0xC6 0x9A ซึ่งคิดค้นโดย Aldus Corporation สำหรับ PageMaker
- ช่องโหว่เรคคอร์ด 'SETABORTPROC' ในปี 2005 อนุญาตให้ผู้โจมตีรันโค้ดแอสเซมบลีตามอำเภอใจเพียงแค่ให้ผู้ใช้ดูรูปภาพใน Windows Explorer
- คอลเลกชันคลิปอาร์ตฟลอปปีดิสก์หลายล้านชุดในทศวรรษ 1990 ถูกแจกจ่ายในรูปแบบ .WMF เท่านั้น
คำถามทางเทคนิคที่พบบ่อย
ไฟล์ WMF คืออะไร?
WMF (Windows Metafile) เป็นรูปแบบเวกเตอร์รุ่นเก่าของ Microsoft ที่สร้างขึ้นในปี 1990 สำหรับจัดเก็บภาพคลิปอาร์ตและภาพประกอบใน Windows 3.0 และ Microsoft Office รุ่นแรกๆ
ฉันจะแปลง WMF เป็น SVG หรือ PNG ได้อย่างไร?
คุณสามารถแปลงไฟล์ WMF เป็นกราฟิกเวกเตอร์ SVG หรือภาพ PNG ที่ทันสมัยและปรับขนาดได้โดยปลอดภัยโดยใช้ File2File.app บนเว็บเบราว์เซอร์ของคุณโดยตรง
เหตุใด WMF จึงเคยถูกมองว่าเป็นอันตรายในอดีต?
ในปี 2005 พบช่องโหว่ร้ายแรงที่ไฟล์ WMF สามารถทริกเกอร์การเรียกกลับของเครื่องพิมพ์ที่ทำงานได้ (executable printer callbacks) ทำให้ไฟล์ที่เป็นอันตรายสามารถติดไวรัสคอมพิวเตอร์ได้เพียงแค่เปิดดู
คู่การแปลงไฟล์ WMF ที่เกี่ยวข้อง
แปลงชุดคำสั่งวาดเวกเตอร์ Windows GDI แบบ 16 บิตรุ่นเก่าให้เป็นเส้นทาง SVG สมัยใหม่ที่ปรับขนาดได้โดยไม่มีการสูญเสียความละเอียด
นำภาพคลิปอาร์ตจาก Windows มาใส่ใน PDF หนึ่งหน้า สำหรับเอกสารสำนักงานหรือการตรวจทาน ระบบจะแปลงระเบียนภาพวาดที่รองรับเป็นภาพแรสเตอร์ ดังนั้นจึงแก้ไขรูปทรงต้นฉบับไม่ได้