Fichiers polyglottes — Un fichier, deux formats
★★★★★
Qu'est-ce qu'un fichier polyglotte ?
Un fichier polyglotte est valide pour deux formats différents simultanément. Exemple : un fichier est à la fois une image JPEG valide ET une archive ZIP valide. Le lecteur JPEG s'arrête au marqueur FFD9, et le lecteur ZIP commence à la signature PK, qui peut être placée juste après.
Créer et détecter
# Détecter
binwalk image.jpg # detecte les deux signatures
file image.jpg # peut identifier le type principal
# Extraire la partie ZIP cachée
dd if=image.jpg bs=1 skip=OFFSET_ZIP of=cache.zip
# Ou simplement :
cp image.jpg cache.zip && unzip cache.zip
# Créer (example)
cat image.jpg archive.zip > polyglot.jpg
# Autres combinaisons courantes :
# PDF + ZIP
# HTML + PDF
# PNG + Python script