
Intégrer une charge utile dans un fichier PNG
Intégrer une charge utile dans un fichier PNG en la répartissant sur plusieurs sections IDAT. Chaque section est chiffrée individuellement avec sa propre clé de 16 octets à l'aide de l'algorithme de chiffrement RC4.
Ce dépôt contient deux implémentations :
EmbedPayloadInPng.py - Script Python permettant d'intégrer une charge utile d'entrée dans un fichier PNG spécifié.FetchPayloadFromPng - Extrayez la charge utile du fichier PNG généré par EmbedPayloadInPng.py, puis déchiffrez-la à l'aide de la fonction ExtractDecryptedPayload.EmbedPayloadInPng.py pour créer le fichier PNG intégrant la charge utile :
Le fichier PNG intégrant la charge utile, Output.png, est le même fichier .PNG que le fichier original.
MARKED_IDAT_HASH générée par EmbedPayloadInPng.py et remplacez-la par celle existante dans le projet FetchPayloadFromPng ici.Comme mentionné précédemment, EmbedPayloadInPng.py est chargé d'intégrer le fichier de charge utile dans un fichier PNG. Vous trouverez ci-dessous la structure d'un fichier PNG intégrant une charge utile.

Étant donné que la taille maximale d'une section IDAT est de 8192 octets, notre charge utile est divisée en plusieurs sections IDAT. Chaque section a une taille équivalente à (8192 - 16 [longueur de la clé RC4]). De plus, la dernière section IDAT contiendra les octets restants de la charge utile.
Les images suivantes expliquent la sortie de EmbedPayloadInPng.py et la comparent à la structure du fichier PNG créé :


IDAT de la charge utile, qui suit notre section aléatoire (en bleu). Cette image montre également la position du hash CRC et la taille de la section IDAT aléatoire au préalable (en jaune).

