
Coltellino svizzero per la cifratura, l'offuscamento e la conversione di payload in array di byte – tutto con un unico comando (14 formati di output supportati)! ☢️
Coltellino svizzero per la cifratura di payload, l'offuscamento e la conversione in array di byte, il tutto con un unico comando!
Supporta 3 algoritmi di cifratura, 4 algoritmi di encoding / offuscamento e 14 formati di output.

Scarica il binario compilato oppure compila il codice sorgente Go.
Esempio:
# Convert .bin file into C bytes array with XOR encryption and IPv4Fuscation
./ByteCaster -i shellcode.bin -f c -x xor -k 'Test123' -e ipv4
# Convert .bin file into base64 string with XOR encryption
./ByteCaster -i shellcode.bin -x xor -k 'Test123' -e base64

NOTA: La sequenza delle operazioni è sempre la stessa:
- Cifratura
- Encoding
- Formattazione dell'output
-i / --input <path> [obbligatorio]
File binario di input.
-f / --format <value> [opzionale, predefinito: raw]
Formato di output dei dati elaborati. Genera i dati finali come array di byte nel linguaggio di programmazione selezionato. L'output viene sempre inviato a STDOUT.
Per evitare di applicare qualsiasi formattazione all'output, usa il valore raw (predefinito).
Valori disponibili: raw, hex, c, go, powershell, php, js, rust, csharp, nim, zig, ruby, python, java
-x / --enc-alg <value> + -k / --enc-key <string> [opzionale]
Cifratura dei dati. Entrambi i parametri, l'algoritmo di cifratura e la stringa della chiave, devono essere forniti.
Valori disponibili: xor, aes256, rc4
Tutti gli algoritmi di cifratura supportati sono descritti in dettaglio di seguito.
-e / --encoding <value> [opzionale]
Encoding dei dati. Spesso utilizzato come offuscamento per confondere l'analisi o modificare il livello di entropia dei dati.
Valori disponibili: base32, base64, ipv4, mac
Tutti gli algoritmi di encoding supportati sono descritti in dettaglio di seguito.
xor [0% overhead]Tipica cifratura XOR semplice (a^b). Ogni byte viene sottoposto a XOR con il byte della chiave.
aes256 [28 bytes overhead]AES-256-GCM con chiave lunga 32 byte derivata dalla funzione hash SHA-256.
Formato del testo cifrato: nonce || ciphertext. Il nonce è memorizzato nei primi 12 byte, seguito dai dati cifrati e dal tag di autenticazione (il tag viene aggiunto automaticamente da GCM all'interno del testo cifrato).
Implementazione Go standard della cifratura AES: crypto/aes
Implementazione Go standard della derivazione della chiave SHA-256: crypto/sha256
rc4 [0% overhead]Implementazione Go standard della cifratura RC4: crypto/rc4
base32 [60–65% overhead]Implementazione Go standard dell'encoding Base32: encoding/base32
base64 [33%-37% overhead]Implementazione Go standard dell'encoding Base64: encoding/base64
ipv4 [100%-300% overhead]Questa è nota come tecnica IPv4Fuscation. Ogni byte di output viene convertito in un ottetto dell'indirizzo IPv4 come numero decimale.
Dati di esempio:
{ 0xe9, 0x36, 0x17, 0xbb, 0xbd, 0x7f, 0x22, 0x10 }
L'output (array di byte) in memoria appare esattamente così:
233.54.23.187\0189.127.34.16\0 ...
NOTA:
- Ogni indirizzo IP termina con un byte nullo!
- Se il numero di byte non è divisibile per 4, i byte mancanti aggiunti all'ultimo indirizzo IP sono 255.
mac [200% overhead]Questa è nota come tecnica MACFuscation. Ogni byte di output viene convertito in un ottetto dell'indirizzo MAC come numero esadecimale (minuscolo).
Dati di esempio:
{ 0xe9, 0x36, 0x17, 0xbb, 0xbd, 0x7f, 0x22, 0x10, 0x84, 0xA7, 0x6f, 0xcc }
L'output (array di byte) in memoria appare esattamente così:
e9:36:17:bb:bd:7f\022:10:84:a7:6f:cc\0
NOTA:
- Ogni indirizzo MAC termina con un byte nullo!
- I numeri esadecimali sono in minuscolo.
- Se il numero di byte non è divisibile per 6, i byte mancanti aggiunti all'ultimo indirizzo MAC sono 255 (
ff).