Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
File-Injector — File Injector è uno script che ti permette di archiviare qualsiasi file in un'immagine usando la steganografia. | Kitploit
Strumenti/GitHubGitHub/carlospuenteg/file-injector
Strumenti di Crittografia/DecrittografiaEsfiltrazione DatiSteganografiaCrittografia
GitHubcarlospuenteg/file-injector

File-Injector

File Injector è uno script che ti permette di archiviare qualsiasi file in un'immagine usando la steganografia.

Vedi Repository
443293 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

File Injector

Se desideri utilizzare una versione precedente (1.0.2 o inferiore), in cui era necessaria l'immagine originale per estrarre il file, puoi scaricarla qui.

Indice

  • 1. Descrizione
  • 2. Per iniziare
    • Installa i requisiti
    • Esegui lo script
    • Scegli input
      • Scegli un'immagine/audio di base
      • Scegli un file di input
      • Scegli/Genera una chiave di crittografia
  • 3. Risultati
  • 4. Esempi di utilizzo
    • Iniezione
    • Estrazione
  • 5. Configurazione
  • 6. Cosa fa
  • 7. Come funziona
    • Opzioni
    • inject_file_func
    • extract_file_func
    • get_fernet
    • decrypt_content
    • inject_file
    • extract_file

1. Descrizione

File Injector è uno script che ti permette di memorizzare qualsiasi file (.zip, .png, .txt, .gba...) e il suo nome file in un'immagine/audio come rumore, utilizzando la steganografia.

Puoi anche scegliere di crittografare il file di input prima di memorizzarlo.

Quindi, per estrarre il file dall'immagine/audio modificato, NON hai bisogno dell'immagine/audio originale, solo della chiave di crittografia se il file è stato crittografato.

2. Per iniziare

Installa i requisiti

root@kitploit:~
python3 -m pip install -r requirements.txt

Se non funziona, puoi provare:

root@kitploit:~
py -m pip install -r requirements.txt

Esegui lo script

root@kitploit:~
python3 main.py

Scegli input

Scegli un'immagine/audio di base

Scegli un'immagine/audio di base per memorizzare il file dalla cartella files/base.

Puoi anche aggiungere le tue immagini/audio a questa cartella.

  • Le immagini possono essere .png o (.jpg/.jpeg), ma verranno convertite in .png durante l'esecuzione dello script.
  • Gli audio devono essere .mp3 o .wav, ma verranno convertiti in .mp3 durante l'esecuzione dello script.

Scegli un file di input

Scegli un file da memorizzare nell'immagine/audio dalla cartella files/input.

Puoi aggiungere i tuoi file a questa cartella. Possono essere qualsiasi tipo di file.

Scegli un'immagine/audio modificato

Scegli un'immagine/audio modificato per estrarre il file dalla cartella files/modified.

Puoi anche aggiungere le tue immagini/audio modificati a questa cartella.

Scegli/Genera una chiave di crittografia

Puoi scegliere una chiave dalla cartella files/$encryption-keys o generarne una lì.

Il file della chiave deve avere l'estensione .key

Non è necessario sceglierne una particolare durante la decifratura di un file; verrà selezionata automaticamente dalla cartella.

3. Risultati

Questa immagine 17.1MP contiene un file .zip crittografato da 9MB e il suo nome file memorizzati come rumore.

<img src="https://raw.githubusercontent.com/carlospuenteg/file-injector/HEAD/readme-assets/17"1MP_mod.png" width=500>

Questa immagine 1.7MP contiene un file .zip crittografato da 0.93MB e il suo nome file memorizzati come rumore.

<img src="https://raw.githubusercontent.com/carlospuenteg/file-injector/HEAD/readme-assets/1"7MP_mod.png" width=500>

Questo file audio 42MB contiene un file .zip crittografato da 9MB e il suo nome file memorizzati come rumore.

https://user-images.githubusercontent.com/65092569/202014519-24514110-4bd2-4c2b-9307-237964df0c2b.mp4

4. Esempi di utilizzo

Iniezione

root@kitploit:~
... File-Injector % python3 main.py
[0] EXIT
[1] Inject file
[2] Extract file

Option: 1
File to be stored: images.zip
Filename of the base image: 2'2MP
Encrypt the file? (y/n): y

Do you want to use an existing key or generate a new one?
[0] Existing key
[1] New key

Option: 1
Filename of the new key file (blank for default): 
Key generated and saved to files/$encryption-keys/key9.key

Preparing...

Modified bits per channel: 2
Image modification: 1.56%

✅ Storing... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [100.0%]

Generating random values...

Storing random values...

Reshaping...

Modified image saved in files/modified-images/2'2MP_mod.png

Done in 7.5892 seconds

Estrazione

root@kitploit:~
... File-Injector % python3 main.py
[0] EXIT
[1] Inject file
[2] Extract file

Option: 2
Filename of the modified image: 2'2MP_mod

Preparing...

Retrieving filename...

Retrieving input file...
Decrypted with "files/$encryption-keys/key2.key"

Output file saved in files/output-files/images.zip

Done in 1.4083 seconds

5. Configurazione

Puoi modificare la configurazione nel file config.py.

6. Cosa fa

L'iniezione viene eseguita memorizzando il file nei X bit meno significativi di ogni elemento dell'array creato appiattendo l'array dell'immagine/audio.

  • Ogni elemento ha 8 bit (se il file base è un'immagine) o 16 bit (se il file base è un audio)
  • Questo script modifica da 1 a tutti i bit di ogni elemento, a seconda della dimensione del file da memorizzare rispetto all'immagine/audio base.
  • Se memorizzi un file più grande o se l'immagine/audio base è più piccolo, verranno modificati più bit e le modifiche saranno più evidenti.
  • Se memorizzi un file più piccolo o se l'immagine/audio base è più grande, verranno modificati meno bit e le modifiche saranno meno evidenti.
  • Se l'immagine/audio base è troppo piccolo per memorizzare il file, lo script si fermerà e ti avviserà.
  • Se scegli di crittografare il file, la sua dimensione aumenterà di ≈1/3.

7. Come funziona

Opzioni

OpzioneDescrizione
[0] ESciEsci dallo script
[1] Inietta fileChiama inject_file_func()
[2] Estrai fileChiama extract_file_func()

inject_file_func()

  1. Se TEST_MODE == True, utilizzerà l'immagine/audio di base e il file di input predefiniti. Altrimenti, chiederà l'immagine/audio di base e il file di input.
  2. Legge il file (in byte)
  3. Legge l'immagine/audio e lo memorizza in un array numpy
  4. Legge il nome file (in byte)
  5. Se l'utente vuole crittografare il file:
    1. Ottiene la chiave con get_fernet()
    2. Crittografa il file e il nome file
  6. Prova a iniettare il file e il nome file nell'immagine/audio con inject_file().
    1. Se l'immagine/audio è troppo piccolo per memorizzare il file, solleva un errore
    2. Altrimenti, restituisce l'immagine/audio modificato.
  7. Salva l'immagine/audio modificato

extract_file_func()

  1. Se TEST_MODE == True, utilizzerà l'immagine/audio modificato predefinito. Altrimenti, chiederà l'immagine/audio modificato.
  2. Legge l'immagine/audio modificato
  3. Estrae file e nome file come byte con extract_file()
  4. Se il file e il nome file sono stati crittografati (iniziano con gAAAAA), li decifra con decrypt_content
  5. Decodifica il nome file in UTF-8
  6. Salva il file con il nome file decodificato

get_fernet()

OpzioneDescrizione
[0] Chiave esistenteUtilizza una chiave esistente
[1] Nuova chiaveGenera una nuova chiave

[0] Chiave esistente

  1. Scegli una chiave da utilizzare dalla cartella files/$encryption-keys

[1] Nuova chiave

  1. Scegli un nome file per la nuova chiave (o lascialo vuoto per quello predefinito, ad es. key8.key)
  2. Genera una nuova chiave e salvala con il nome file scelto
  3. Restituisce l'oggetto Fernet con la nuova chiave

decrypt_content()

  1. Per ogni chiave nella cartella files/$encryption-keys:
    1. Prova a decifrare il file e il nome file con essa
    2. Se viene sollevato InvalidToken:
      1. Significa che la chiave non è quella giusta
      2. Prova con un'altra chiave
    3. Altrimenti, restituisce la chiave
  2. Se non viene trovata alcuna chiave, solleva un'eccezione

inject_file()

Restituisce l'array dell'immagine/audio modificato (np.ndarray, con la stessa forma di arr)

extract_file()

ParametroTipoDescrizione
mod_arr_flatnp.ndarrayImmagine/audio modificato appiattito

Restituisce un dizionario con il file e il nome file estratti, entrambi in formato (bytes)

Scarica lo strumento
CostanteDescrizioneValore predefinito
MOD_PREFIXPrefisso che avrà l'immagine/audio modificato""
MOD_SUFFIXSuffisso che avrà l'immagine/audio modificato"_mod"
STORE_RANDOMMemorizza dati casuali nell'immagine modificata in modo che il confine tra la parte con i dati memorizzati e quella senza non sia così evidenteTrue
TEST_MODEAbilita/Disabilita la Modalità Test: Test con immagini/audio e file predefinitiTrue
ParametroTipoDescrizione
arrnp.ndarrayImmagine/audio come array numpy
filebytesFile come byte
filenamebytesNome file come byte
store_randombooleanSe memorizzare o meno dati casuali nell'immagine/audio modificato