Pendeteksi Tipe File

Ekstensi file hanyalah label — mengganti nama virus.exe menjadi photo.jpg tidak mengubah apa pun di dalamnya. Halaman ini membaca byte pertama setiap file yang diunggah dan mencocokkannya dengan lebih dari 60 signature magic nyata: gambar, dokumen, arsip, audio/video, font, executable, basis data, dan kunci. Anda mendapatkan jenis yang terdeteksi, tipe MIME, ekstensi yang biasanya digunakan jenis itu, peringatan ketika ekstensi bertentangan dengan isi, dan di mana format itu menyimpannya (dimensi gambar, versi PDF, brand MP4). Semuanya diperiksa secara lokal di browser.
Letakkan file di sini, atau klik untuk memilihnya
Satu file atau banyak. Hanya 512 byte pertama dari setiap file yang dibaca; file tidak pernah meninggalkan komputer ini.
Tidak ada file yang dipilih.
Tabel deteksi muncul di sini setelah Anda memilih file dan menekan Deteksi.
Arti “cocok”: konsisten — ekstensi sesuai dengan format yang terdeteksi; tidak cocok — isinya adalah format yang berbeda dari yang diklaim ekstensi (file yang diganti namanya, atau lebih buruk); “tidak ada signature” — byte pertama tidak cocok dengan signature mana pun yang diketahui, yang normal untuk teks biasa, CSV, dan sebagian besar format data yang memang tidak memiliki header. Privasi: file dibaca dengan FileReader bawaan browser; tidak ada yang diunggah.

Apa itu signature file?

Hampir setiap format biner dimulai dengan urutan byte tetap — nomor magic — yang ditempatkan di sana agar program dapat mengenali file miliknya sendiri tanpa mempercayai nama. PNG selalu dimulai dengan delapan byte 89 50 4E 47 0D 0A 1A 0A (“\x89PNG\r\n\x1a\n”), PDF dengan teks ASCII %PDF, ZIP dengan PK\x03\x04 (inisial Phil Katz, yang merancang format ini). Sistem operasi sebagian besar mengabaikan byte-byte ini dan melihat ekstensi sebagai gantinya — itulah sebabnya file yang diganti namanya tidak “terbuka dengan baik” di mana pun, dan mengapa alat keamanan mengendus isi.

Byte pertama yang terkenal

ByteFormatCatatan
89 50 4E 47 0D 0A 1A 0AGambar PNG\r\n melindungi dari kerusakan akhir baris
FF D8 FFGambar JPEGsetiap frame JPEG dimulai dengan penanda SOI
25 50 44 46 2DDokumen PDF“%PDF-1.7” — versi mengikuti
50 4B 03 04Arsip ZIPdocx/xlsx/odt/epub adalah ZIP yang memakai ekstensi
D0 CF 11 E0Office lamadoc/xls/ppt/msi — file compound OLE2
4D 5AEXE Windows“MZ”, dari Mark Zbikowski Microsoft
7F 45 4C 46ELF Linux\x7fELF — program dan pustaka bersama
1A 45 DF A3Matroska/WebMAwal kontainer EBML
75 73 74 61 72 pada offset 257Arsip TARsignature tersembunyi jauh di dalam header

Bagaimana pendeteksi memutuskan

512 byte pertama setiap file dibandingkan dengan tabel signature menurut urutan kekhususan: brand kontainer (RIFF…WAVE vs RIFF…AVI vs RIFF…WEBP, box brand ISO pada offset 8) diperiksa sebelum kontainer generiknya, dan format berbasis ZIP (EPUB, ODF, OOXML) sebelum ZIP biasa. Jika format membawa metadata yang menjelaskan dirinya sendiri, halaman menggali satu tingkat lebih dalam: dimensi PNG/GIF/BMP/JPEG/WebP dibaca dari header-nya, versi PDF dari byte ke-5, brand MP4 dan versi class Java dari offset standarnya. Berkas yang tidak cocok dengan apa pun mendapat pemeriksaan heuristik teks (BOM, <?xml, <html, shebang, rasio karakter tercetak) sebelum dinyatakan tidak dikenal.

Kesalahan umum

“Dikatakan ZIP tetapi file-nya .docx” — itu benar: .docx adalah arsip ZIP yang entri pertamanya [Content_Types].xml; pendeteksi mengenali kasus itu dan melaporkan Office Open XML secara spesifik. “Dikatakan tidak ada signature tetapi file-nya terbuka dengan baik” — CSV, sebagian besar kode sumber, dan banyak format ilmiah sama sekali tidak memiliki byte magic; “tidak ada signature” bukan tuduhan. “Bisakah memberi tahu apakah file ini aman?” — tidak. Pengendusan isi menyatakan apa file itu, bukan apa yang dilakukannya; EXE tetap EXE, entah itu installer atau malware.

FAQ

Mengapa hanya 512 byte? — setiap signature yang didukung berada dalam 512 byte pertama (yang terdalam adalah ustar TAR pada offset 257); membaca lebih banyak akan memperlambat batch besar tanpa manfaat.
Apakah mendeteksi durasi video? — tidak, hanya kontainer dan brand-nya; durasi memerlukan penguraian seluruh indeks, yang merupakan tugas pemutar.
Banyak file sekaligus? — ya, seret seluruh pilihan; setiap baris dideteksi secara independen.
Halaman terkait: untuk arah sebaliknya — ekstensi ke tipe MIME — gunakan Pencarian Tipe MIME; untuk melakukan hash pada file yang sama, gunakan Hash File Massal.