Dosya İmzası (Sihirli Sayı) Sorgulama

Dosya türünü belirlemek için dosyanın baştaki baytlarını hex olarak yapıştırın.

Sonuç

JPEG görseli
.jpg
FF D8 FF E0

Nasıl hesaplanır?

Araç girdinizi temizler: önce 0x öneklerini siler, sonra hex rakamı olmayan tüm karakterleri atar (boşluk, iki nokta ve tire sorun değildir), harfleri büyütür ve rakam sayısı tekse bütün baytlar kalsın diye son rakamı bırakır. Ardından bayt dizisinin başını, PNG için 89 50 4E 47 0D 0A 1A 0A, PDF için 25 50 44 46, JPEG için FF D8 FF gibi imzalar içeren yerleşik bir tabloyla karşılaştırır ve en uzun eşleşmeyi tür ile tipik uzantı olarak bildirir.

Yalnızca dosyanın başına bakılır; bu yüzden bir hex dökümünden ilk baytları yapıştırın. MP4, 4. bayttaki ftyp yazısından tanınır; bu yüzden en az 8 bayt gerekir. TAR, 257. bayttaki ustar yazısından tanınır; bu yüzden 260'tan fazla bayt gerekir. Eşleşme yoksa tür Bilinmiyor görünür. Tablo kısadır (yaklaşık 25 kayıt) ve imza yalnızca bir biçimi işaret eder: ZIP, DOCX, XLSX ve JAR dosyalarını da kapsar; RIFF ise WAV, AVI ve WebP'yi ayırt etmez.

Örnek hesaplama

Uzantısız bir dosyayı hex görüntüleyicide açıyor ve FF D8 FF E0 00 10 4A 46 görüyorsunuz. İlk dört baytı, FF D8 FF E0, yapıştırdığınızda araç harfleri büyütür ve dizinin başını tablosuyla karşılaştırır. Üç baytlık FF D8 FF imzası eşleşir; araç sonucu JPEG görseli olarak, tipik uzantısı .jpg ile bildirir ve baytları FF D8 FF E0 olarak gösterir. Fazladan E0 baytı imzanın parçası değildir ama zarar vermez. Yalnızca 00 11 yapıştırsaydınız araç Bilinmiyor yanıtını verirdi; 25 50 44 46 yapıştırsaydınız PDF belgesi çıkardı.

Bu örneği dene →

Sık yapılan hatalar

  • Dosyanın ortasından alınan baytları yapıştırmak. İmzalar yalnızca dosyanın başında geçerlidir.
  • "%PDF" gibi bir metni hex yerine yazmak. Araç hex rakamı ister; 25 50 44 46 yazın.
  • Biçim için yetersiz bayt yapıştırmak. JPEG için FF D8 FF E0 yeter, ama MP4 için ftyp'ye ulaşmak üzere ilk 8 bayt gerekir; TAR dosyası ise kısa bir parçadan hiç tanınamaz.
  • Sonucu güvenlik kanıtı saymak. Eşleşen imza yalnızca dosyanın nasıl başladığını söyler; kötü amaçlı bir dosya geçerli görüntü baytlarıyla başlayabilir.
  • ZIP ya da RIFF sonucunu kesin biçim sanmak. ZIP aynı zamanda DOCX, XLSX veya JAR, RIFF ise WAV, AVI veya WebP olabilir; ayırmak için dosyanın devamına bakın.

Bu hesaplama hakkında

Çoğu dosya biçimi, sihirli sayı veya dosya imzası adı verilen sabit bir bayt dizisiyle başlar — örneğin JPEG görüntüleri FF D8 FF ile, PDF'ler 25 50 44 46 ("%PDF") ile, ZIP tabanlı biçimler (DOCX ve XLSX dahil) ise 50 4B 03 04 ile başlar — ve bu imza, dosyanın uzantısından bağımsız olarak gerçek biçimini belirler. İmzalar dosyanın adında değil asıl içeriğinde yer aldığından, Unix'teki `file` komutu gibi araçların temelini oluşturur ve adı değiştirilmiş veya uzantısı silinmiş bir dosyaya güvenmekten çok daha güvenilirdir.

Bu sorgulama aracı, hex olarak girilen bir dosyanın baştaki baytlarını alır ve yaygın görüntü, arşiv, belge ve çalıştırılabilir dosya imzalarından oluşan bir referans tabloyla eşleştirerek gerçek biçimi belirler. Adli bilişim uzmanları, kötü amaçlı yazılım analistleri ve yükleme doğrulayıcıları veya dosya türü belirleyicileri geliştiren yazılımcılar, bir dosyanın gerçekte ne olduğunu doğrulamak — gizlenmiş çalıştırılabilir dosyaları, bozuk indirmeleri veya basit bir uzantı kontrolünün kaçıracağı yanlış etiketlenmiş dosyaları yakalamak — için bu aracı kullanır.

Bu faydalı oldu mu?

En fazla 3 tepki seçebilirsiniz.

Yorumlar (1)

  • Editör ekibi

    İmza size içeriği değil, kabı söyler. 50 4B 03 04 için ZIP / Office Open XML çıkar; DOCX, XLSX, APK ve JAR dosyaları da aynı başlangıcı paylaşır, dolayısıyla hangisine sahip olduğunuzu söyleyemez. RIFF de belirsizdir: araç uzantısız olarak RIFF (WAV/AVI/WebP) gösterir ve 8. bayttaki dört baytı kendiniz okumalısınız. Sizde hangi dosya türü Bilinmiyor çıktı ve ilk baytları nelerdi?

Popüler hesaplayıcılar

Tüm Hesaplayıcılar