XCropImage
xcropimage.io
Blog'a Dön

Polyglot Dosya Oluşturma: PNG İçine ZIP Arşivi Gizlemek

xcropimage.io Team

Windows, macOS ve Linux üzerinde PNG dosyasının içine ZIP arşivi gizleyerek polyglot dosya oluşturmayı öğrenin.

Giriş

Polyglot dosya, aynı anda birden fazla format olarak geçerli olan dosyadır.

Bu rehberde bir ZIP arşivini (içinde video veya başka dosya olabilir) bir PNG görselinin içine nasıl gizleyeceğinizi öğreneceksiniz.

Oluşan dosya:

  • Normal bir görsel gibi açılır
  • WinRAR tarafından arşiv olarak algılanır
  • İçindeki dosyalar çıkarılabilir

Bu yöntem, PNG formatının dosya sonuna veri eklenmesine izin vermesi sayesinde çalışır.


Nasıl Çalışır?

PNG Yapısı

PNG görüntüleyiciler yalnızca görsel verisini okur, sona eklenen veriyi yok sayar.

ZIP İmzası

ZIP dosyaları PK imzasına sahiptir. Arşiv programları bu imzayı dosya içinde arar ve bulduğunda arşiv olarak açar.

PNG’nin sonuna ZIP eklendiğinde polyglot dosya oluşur.


Adım 1: Dosyaları Hazırlayın

Gerekli dosyalar:

  • image.png
  • video.mp4

Önce ZIP oluşturun:

Windows / macOS / Linux

zip video.zip video.mp4

Windows’ta zip komutu yoksa: Sağ tık → Gönder → Sıkıştırılmış klasör.


Adım 2: PNG ve ZIP’i Birleştirme

🪟 Windows (CMD)

copy /b image.png + video.zip output.png


🪟 Windows (PowerShell)

Get-Content image.png -Encoding Byte | Set-Content output.png -Encoding Byte Get-Content video.zip -Encoding Byte | Add-Content output.png -Encoding Byte


🍎 macOS

cat image.png video.zip > output.png


🐧 Linux

cat image.png video.zip > output.png


Sonuç

  • output.png normal görsel gibi açılır.
  • WinRAR arşiv tespit eder.
  • İçindeki video çıkarılabilir.

Güvenlik Uyarısı

Bu yöntem kötü amaçlı da kullanılabilir.

Bu nedenle:

  • Bilinmeyen arşivleri açmayın
  • Dosyaları antivirüs ile kontrol edin
  • Güvenmediğiniz kaynaklardan gelen dosyalara dikkat edin

Sonuç

Terminal komutlarıyla PNG dosyasının sonuna ZIP arşivi ekleyerek çift formatlı bir polyglot dosya oluşturabilirsiniz.

Bu örnek, dosya formatlarının ne kadar esnek olduğunu ve geliştiriciler için bu bilgilerin neden önemli olduğunu gösterir.