Windows Metafile: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
HsfBot (bicara | kontrib)
k v2.04b - Fixed using Wikipedia:ProyekWiki Cek Wikipedia (Kode en dash atau em dash - Kesalahan pranala pipa)
k fix
 
Baris 136:
Pada dasarnya, metafile menyimpan daftar record yang terdiri dari perintah gambar, definisi properti, dan objek grafik untuk menampilkan gambar di layar.<ref name="wmfspecdef">{{Citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=Windows Metafile Format|publisher=Microsoft|page=16}}</ref> Perintah menggambar yang digunakan terkait erat dengan perintah [[Antarmuka pemrograman aplikasi|API]] Antarmuka Perangkat Grafik (GDI) yang digunakan untuk menggambar di Microsoft Windows.
 
Ada tiga jenis utama metafile - WMF adalah format 16-bit yang diperkenalkan di Windows 3.0 . Ini adalah format vektor asli untuk aplikasi [[Microsoft Office]] seperti [[Microsoft Word|Word]] , [[Microsoft PowerPoint|PowerPoint]] , dan [[Microsoft Office Publisher|Publisher]] . Mulai 2017 revisi 14 dari spesifikasi Windows Metafile Format tersedia untuk dibaca online atau diunduh sebagai [[Portable Document Format|PDF]].   File EMF, yang menggantikan file WMF, bekerja dengan prinsip yang sama hanya saja itu adalah format file [[32-bit]] yang juga memungkinkan penyematan data pribadi dalam catatan "komentar".   EMF + adalah ekstensi untuk file EMF dan disematkan dalam catatan [[Komentari|komentar]] ini, memungkinkan gambar dan teks menggunakan perintah, objek, dan properti yang mirip dengan [[Windows GDI +]] .
 
== Sejarah ==
Format file WMF 16 bit asli sepenuhnya ditentukan dalam volume 4 dokumentasi SDK [[Windows 3.1x|Windows 3.1]] 1992 <ref>Microsoft Windows 3.1 Programmers Reference, Volume 4 Resources, Microsoft Press 1992, {{ISBN|1-55615-494-1}}, chapter 3 pp. 21-45</ref> (setidaknya jika digabungkan dengan deskripsi fungsi dan struktur individu di volume lain), tetapi spesifikasi itu tidak jelas tentang a sedikit detail. Manual ini diterbitkan sebagai buku cetak yang tersedia di toko buku tanpa klik melalui [[EULA]] atau batasan lisensi tidak biasa lainnya (hanya peringatan umum bahwa jika dibeli sebagai bagian dari bundel perangkat lunak, perangkat lunak akan tunduk pada salah satunya).
 
Seiring waktu keberadaan spesifikasi bersejarah itu sebagian besar dilupakan dan beberapa implementasi alternatif menggunakan rekayasa terbalik untuk mengetahui format file dari file WMF yang ada, yang sulit dan rawan kesalahan.   Pada bulan September 2006, [[Microsoft]] kembali menerbitkan spesifikasi format file WMF dalam bentuk yang lebih lengkap   dalam konteks Microsoft Open Specification Promise , berjanji untuk tidak menegaskan hak paten kepada pelaksana format file.
 
Microsoft kemudian menghentikan file WMF dan mendukung file EMF [[32-bit]] karena file WMF memiliki masalah nyata dengan kemandirian perangkat, meskipun menggunakan header file "placeable" yang memberikan kemandirian perangkat dasar. Microsoft menemukan bahwa pengembang yang menggunakan format tersebut adalah "[embedding] aplikasi, lokasi, atau komentar skala di metafile ... Yang lain menambahkan header ke metafile yang menyediakan berbagai informasi khusus aplikasi", menyebabkan masalah kompatibilitas utama.   Jadi, pada tahun 1992 dengan [[Windows NT 3.1]] , Microsoft memperkenalkan format [[Enhanced Metafile|Enhanced Metafile (EMF)]]   - format yang didasarkan pada Win32 API dan yang mereka gunakan untuk kemandirian perangkat bawaan.   - ini juga dikenal sebagai metafile NT.   Dengan dirilisnya Windows XP dan GDI +, kumpulan catatan harus ditingkatkan secara signifikan sehingga Microsoft merilis EMF + sebagai perpanjangan dari format file EMF yang ada.
 
== Struktur metafile ==
Baris 149:
File WMF, EMF dan EMF + semuanya terdiri dari serangkaian rekaman yang diputar ulang untuk menghasilkan keluaran grafis. Beberapa catatan menentukan objek yang dapat menentukan objek [[Grafika|grafis]] yang digunakan untuk menentukan bagaimana grafik harus digambar (misalnya pena menentukan warna dan lebar garis). Masing-masing objek ini disimpan dalam metafile dan ditempatkan ke dalam tabel objek, yang melacak penggunaan objek grafik saat memproses metafile. Tabel objek adalah larik indeks asosiatif ke struktur objek grafis yang ditentukan dalam metafile.
 
File WMF dan EMF menangani pemrosesan objek secara berbeda dengan catatan EMF + dalam file EMF. Saat file WMF dan EMF sedang diproses, catatan dibaca ke dalam tabel objek setelah objek ditentukan. Jika sebuah objek dihapus maka objek tersebut dilepaskan dari tabel dan pengenal dapat digunakan kembali. Khususnya sebuah objek tidak akan digunakan sampai secara khusus dipilih selama playback rekaman.   Ini berbeda untuk file EMF +, yang juga menggunakan array asosiatif melalui peta hash yang merekam objek bersama dengan pengenal objek. Namun, tidak seperti file WMF dan EMF yang dapat menghapus objek, saat objek baru dibuat yang memiliki indeks yang sama dengan objek yang sudah ada, entri dalam tabel diganti dengan objek baru. File EMF juga tidak perlu secara khusus memilih objek sebelum digunakan.
 
=== WMF ===
[[Berkas:WMF-structure.svg|kiri|jmpl|Struktur metafile Windows asli dan dapat ditempatkan <ref>{{Citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=Windows Metafile Format|publisher=Microsoft|page=17}}</ref>]]
File WMF awalnya tidak dirancang untuk menjadi perangkat independen, artinya Anda tidak dapat memutar file pada perangkat output yang berbeda dari perangkat asli tempat file direkam. Solusi parsial untuk masalah ini ditemukan oleh [[Aldus Corporation]] , yang menambahkan header "placeable" tambahan, yang disebut "header APM",   yang menambahkan pembatas pembatas, versi metafile, ukuran metafile, jumlah objek di metafile dan ukuran rekor tunggal terbesar di metafile.   Ini kemudian dimasukkan ke dalam format WMF oleh Microsoft, dimulai pada [[Windows 2000]].
 
File WMF disusun oleh serangkaian record, dimulai dengan sejumlah record kontrol: record header,   record placeable opsional yang disebutkan sebelumnya,   dan diakhiri dengan akhir record file .
 
Dienkapsulasi oleh catatan kontrol adalah catatan yang menyusun gambar itu sendiri. Rekaman ini bekerja dalam apa yang dikenal sebagai ''konteks perangkat pemutaran'' , yang merupakan kumpulan properti dan objek yang membentuk lingkungan grafis perangkat saat metafile sedang "diputar" ke perangkat keluaran ini.
Baris 254:
 
==== Catatan objek ====
Rekaman objek membuat dan mengelola objek grafik. Dalam file WMF ada dua kategori objek - objek grafik dan objek struktur. Objek struktur tidak dibuat atau dihapus secara eksplisit dalam WMF, melainkan struktur yang kompleks. Misalnya, BitmapCoreHeader berisi informasi tentang dimensi dan format warna dari bitmap yang tidak bergantung perangkat,   yang merupakan bagian dari objek DeviceIndependentBitmap.   Sebuah objek grafis, bagaimanapun, menentukan parameter untuk output grafis dan selama pemutaran dari WMF itu mengatur konteks perangkat pemutaran.
 
Objek grafik dapat berupa ''kuas'' (menentukan gaya, warna, dan pola kuas yang menentukan cara melukis area grafik), ''font'' (menentukan properti yang memengaruhi cara teks ditampilkan), ''palet'' (menentukan warna sebagai nilai yang tidak bergantung perangkat, ditentukan oleh aplikasi), ''pena'' (menentukan atribut grafis dari sebuah garis), dan ''daerah'' (yang menentukan segmen garis dan kurva yang menentukan bentuk).<ref name="graphicsobjects">{{Citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|page=79|access-date=2020-01-25}}</ref>
Baris 536:
|Notifies the printer driver that a new print job is starting.<ref>{{Citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|page=184|access-date=2020-01-28}}</ref>
|}
Ada kerentanan utama yang ditemukan dalam catatan pelarian di sekitar catatan pelarian Abort, yang menyimpan kode prosedur pembatalan di dalam catatan itu sendiri. Sistem Windows yang terpengaruh ini (lihat CVE - 2005-4560 ) dan proyek Wine (lihat CVE - 2006-0106 ). Menurut Secunia , "Kerentanan ini disebabkan karena kesalahan dalam penanganan file Windows Metafile ('.wmf') yang berisi catatan 'Escape' SETABORTPROC yang dibuat secara khusus. Catatan semacam itu memungkinkan fungsi yang ditentukan pengguna sewenang-wenang dijalankan saat rendering file WMF gagal. "   Menurut dokumentasi SDK Windows 3.1, pelarian SETABORTPROC sudah usang dan digantikan oleh fungsi dengan nama yang sama di Windows 3.1, jauh sebelum kerentanan WMF ditemukan.   Namun kode melarikan diri usang dipertahankan untuk kompatibilitas dengan program 16 bit yang ditulis untuk (atau setidaknya kompatibel dengan) Windows 3.0. Perubahan ini terjadi kira-kira pada waktu yang sama ketika Microsoft membuat implementasi ulang GDI [[32-bit|32 bit]] untuk [[Windows NT]], dan kemungkinan kerentanan terjadi selama upaya ini.
 
Setelah [[Steve Gibson]] dari [[Gibson Research Corporation]] menuduh Microsoft sengaja menerapkan pintu belakang ke dalam kode mereka,   Mark Russinovich memberikan bantahan, dan menyatakan bahwa:{{Reflist|30em}}
 
== Pranala luar ==