Vediamo come si può “nascondere un file all’interno di un’immagine, la cosa potrebbe tornare utile ad esempio per inviare file non permessi dal server SMTP.
In questo tutorial viene spiegato come eseguire l’operazione con Winrar, che però non è un software gratuito quindi ho deciso di rifare la procedura usando 7-Zip:

Dal prompt dei comandi per comprimere il file con 7-zip digitare:
7z a -t7z file.7z file_da_comprimere.exe
(naturalmente bisogna assicurarsi di essere nella cartella in cui si trova il file 7z.exe o eventualmente settare il giusto PATH)
Per unire il file compresso all’immagine, dare il comando:
copy /b immagine.png + file.7z output.png
(è importante che l’immagine venga messa prima del file compresso)
Ora se aprite normalmente il file output.png esso verrà aperto con un visualizzatore di immagini, se invece decidete di aprirlo con 7-Zip (o altro software per la gestione degli archivi compressi) esso mostrerà il file che abbiamo aggiunto. Ad esempio:
7zFM output.png
Bene, per fare prima potete usare un piccolo file BAT che io ho chiamato mfii (merge file in image) e che va usato nel seguente modo:
mfii file_da unire immagine
tenendo ben presente le seguenti cose:
- se il percorso del file contiene spazi bisogna quotare con le virgolette;
- l’immagine va sempre inserita come secondo parametro del comando;
- se avete installato 7-zip in una cartella diversa da “C:\Programmi\7-zip” dovete modificare il file BAT inserendo il giusto percorso.
Il codice è il seguente:
@echo off :: Se si è installato 7-zip in una cartella diversa modificare il percorso con il giusto PATH PATH=%PATH%;C:\Programmi\7-zip;; :: Imposta i tipi di file permessi per il file immagine SET FILETYPE=.jpg .png .gif :: Se non sono stati inseriti i parametri necessari lo script restituisce un errore IF (%1)==() GOTO ERRORE3 IF (%2)==() GOTO ERRORE3 :: Verifica l'esistenza dei due file in input, se non esistono ritorna un ERRORE IF NOT EXIST %1 GOTO ERRORE1 IF NOT EXIST %2 GOTO ERRORE2 :: Estrae il nome del file di output che deriverà il suo nome dal file da aggiungere all'immagine for %%F in (%1) do SET IMGNAME=%%~nF :: deriva l'estensione del file di output che coincide con l'estensione dell'immagine utilizzata for %%F in (%2) do SET IMGEXT=%%~xF :: Verifica che il secondo file sia un'immagine altrimenti interrompe lo script SET ISIMAGE=0 for %%F in (%FILETYPE%) do IF (%%F)==(%IMGEXT%) SET ISIMAGE=1 IF (%ISIMAGE%)==(0) GOTO ERRORE4 :: Crea il file archivio da aggiungere poi all'immagine, se il percorso di 7z.exe non è corretto verrà restituito un errore 7z a -t7z temp.7z %1 :: unisce il file compresso all'immagine e dà il file di output copy /b %2 + temp.7z %IMGNAME%%IMGEXT% :: Cancello il file temporaneo temp.7z del temp.7z :: Termina lo script non avendo incontrato nessun errore echo Il file %IMGNAME%%IMGEXT% è stato creato con successo GOTO END :ERRORE1 :: Se il primo file non esiste viene restituito un errore echo il file %1 non esiste, accertarsi di aver digitato correttamente il nome del file GOTO END :ERRORE2 :: Se il secondo file non esiste viene restituito un errore echo il file %2 non esiste GOTO END :ERRORE3 echo devi inserire almeno due parametri GOTO END :ERRORE4 echo il secondo file in input deve essere un'immagine GOTO END :END
]]>
UPDATE: seguendo i suggerimenti di chi ha commentato ho creato uno script VBS che permette di “nascondere” un file in un’immagine dal menu contestuale di Explorer, questo è il link al nuovo post.







Tutto chiaro, gialloporpora … anche se ho scaricato il file batch con il classico "copia e incolla".
Nel test che ho effettuato il file grafico iniziale era di 3K mentre quello contenente il testo di 13K.
Per verifica, ho poi ri-estratto il testo con 7-zip. Interessante.
Ciao
A dire il vero volevo farlo usando Cygwin ma non sono ancora capace :-).
Ciao
Beh vediamo se qualcuno risolve l'indovinello
Sicurezza 'fantasma' di Hotmail!
Poco fa ho mandato a me stesso il file immagine di cui parlo sopra, quello contenente il testo nascosto.
Bene, (o male?), mi sarei aspettato che il famoso mailer di Microsoft, che ha cambiato look nei giorni scorsi, avesse intercettato il file grafico mettendo all'erta il destinatario!
————-
Allegati:
Scansione allegati
Logo Trend Micro®
aaa.gif (13,8 KB)
————-
E' noto infatti che nell'attentato alle torri gemelle le comunicazioni tra i membri della banda avvenissero attraverso 'innocui' file grafici come il mio.
Vorrei capirci qualcosa di più. Ciao
A dire il vero anche io mi aspettavo che ImageShack mi rifiutasse i'immagine di 7-Zip.
Comunque non viene riconosciuto nemmeno dagli antivirus, io ho provato ad inviarmi il file eicar.com (il file di test per gli Antivirus) e passa sempre :-P.
In realtà se poi lo apro con 7-Zip Antivir me lo riconosce ma se lo apro come immagine non ci riesce :-P.
Tele2 ha un controllo antivirus via SMTP perché il file eicar.com non sono mai riuscito ad inviarmelo quando volevo testare il funzionamento di Clammail, in questo caso invece passa.
Ciao
Vediamo se passa … senza intoppi (c'è un file testo all'interno dell'immagine:
<a href="http://imageshack.us"><img src="http://img526.imageshack.us/img526/901
Ciao
Nota su un post precedente: cliccando su 'inserisci', adesso l'inserimento avviene al primo colpo!
ciao! una cosa…c’è un modo in cui poter far eseguire il file di testo(esempio un’altro file bat) quando apro l’immagine?
Powered byQuando apri l’immagine con cosa ?
Se con un software specifico dipende, se tale software ha un tool per far eseguire un comando esterno, si, se invece non è possibile farlo la risposta è no.
Però ci sarebbe il problema di dover leggere come parametro aggiuntivo il file EXE da includere.
Powered byCiao
@iEgUzZo,
Powered byfors questo si avvicina un po’ a quello che chiedi.
Ciao