
Incorpora un payload all'interno di un file PNG
Incorporare un payload all'interno di un file PNG suddividendo il payload in più sezioni IDAT. Ogni sezione viene crittografata singolarmente utilizzando la propria chiave a 16 byte con l'algoritmo di crittografia RC4.
Questo repository è composto da due implementazioni:
EmbedPayloadInPng.py - Script Python per incorporare un payload di input in un file PNG specificato.FetchPayloadFromPng - Estrae il payload dal file PNG generato da EmbedPayloadInPng.py e lo decripta utilizzando la funzione ExtractDecryptedPayload.EmbedPayloadInPng.py per creare il file PNG con payload incorporato:
Il file PNG con payload incorporato Output.png è lo stesso file .PNG dell'originale.
MARKED_IDAT_HASH generata da EmbedPayloadInPng.py e sostituiscila con quella esistente nel progetto FetchPayloadFromPng qui.Come accennato in precedenza, EmbedPayloadInPng.py è responsabile dell'incorporamento del file payload all'interno di un file PNG. Di seguito è riportata la struttura di un file PNG con payload incorporato.

Poiché la dimensione massima di una sezione IDAT è di 8192 byte, il nostro payload viene suddiviso in più sezioni IDAT. Ogni sezione ha una dimensione equivalente a (8192 - 16 [lunghezza della chiave RC4]). Inoltre, l'ultima sezione IDAT conterrà i byte rimanenti del payload.
Le seguenti immagini spiegano l'output di EmbedPayloadInPng.py e lo confrontano con la struttura del file PNG creato:


IDAT del payload, che segue la nostra sezione casuale (in blu). Questa immagine mostra anche la posizione dell'hash CRC e la dimensione della sezione IDAT casualizzata in precedenza (in giallo).

