
Genera wordlist utilizzando logiche di pattern ed espressioni.
Genera wordlist usando logica di pattern ed espressioni
Installazione • Documentazione • Utilizzo • Contributi
[!NOTE] Questo progetto è stato rinominato da
fuse/fuse-generatoramapchara partire dalla versione 7.0.2. Il pacchetto PyPI, il comando CLI e il nome del pacchetto Python sono tutti cambiati di conseguenza. Se stavi usando il vecchio nome, aggiorna le tue installazioni e importazioni.
[!NOTE] Si raccomanda l'installazione tramite
pipxopipper la versione PyPI.
| Metodo | Note |
|---|---|
pipx install mapchar | Può essere usato pip al posto di pipx |
git clone https://github.com/pwnfo/mapchar.git && cd mapchar && pip install . | Clona e installa direttamente da GitHub |
Per una guida completa, spiegazioni delle funzionalità ed esempi avanzati, visita la documentazione.
Per generare una wordlist da una semplice espressione:
mapchar '/l{2,4}'
Per combinare file con generatori:
mapchar '^:^' nomi.txt password.txt
Gli output possono essere manipolati, filtrati e salvati.
Opzioni generali:
-h, --help mostra questo messaggio di aiuto ed esce
-v, --version mostra le informazioni di versione ed esce
-S, --stats mostra le statistiche del pattern ed esce
-q, --quiet sopprime l'output non essenziale
-n, --non-interactive
salta il prompt di conferma prima dell'esecuzione
Opzioni di generazione:
-d, --delimiter <stringa>
stringa inserita tra le voci generate
-b, --write-buffer <dimensione>
dimensione del buffer di output
-w, --workers <1-64> numero di processi worker (default: 1)
-k, --flush-threshold <dimensione>
svuota l'output dopo aver raggiunto questa soglia di byte (default: 512KB)
Opzioni di input:
-f, --file <percorso> carica i pattern da file
-s, --start <parola> inizia a scrivere l'output da <parola>
-e, --end <parola> interrompi la scrittura dell'output a <parola>
Opzioni di output:
-o, --output <percorso> scrive l'output su un file
-z, --compress <formato>
comprime l'output (supportati: gzip, bzip2, lzma)
-l, --compresslevel <livello>
livello di compressione per il formato selezionato
[...] producono un elemento per posizione.Esempio:
$ mapchar '/l{2,3}'
# output: aa, ab, ac, ..., ZY, ZZ
Esempio: /l/l genera tutte le combinazioni di due lettere (maiuscole e minuscole).
[abc] seleziona un carattere tra a, b o c.| per separare alternative di parole complete all'interno delle classi:
[admin|root|123] inserisce admin O root O 123 a quel punto.|| per separare espressioni di livello superiore:
mapchar 'admin/d||guest/d' combina due pattern indipendenti.Puoi analizzare un pattern prima di generarlo usando il flag -S/--stats. Mostra il conteggio dei token, la dimensione stimata e i dettagli del filtro di intervallo.
mapchar -S '/l{3}||/d{3}'
{N} — ripeti esattamente N volte{min,max} — ripeti tra min e max volte (inclusi)? — opzionale (0 o 1 volta)Esempi:
$ mapchar '[XYZ]{3}' # XXX, XXY, ..., ZZZ
$ mapchar '[XYZ]{2,5}' # XY, XZ, ..., XYZXY
$ mapchar 'Ryan?/d' # Rya0, Rya1, ..., Ryan9
$ mapchar '[XYZ]?Ryan' # Ryan, XRyan, YRyan, ZRyan
#[1-10] → genera 1,2,3,4,5,6,7,8,9,10#[1-10:2] → genera 1,3,5,7,9#[2-10:2] → genera 2,4,6,8,10Questi intervalli numerici possono essere usati in qualsiasi posizione di un'espressione.
Usa ^ in un'espressione come segnaposto per il successivo argomento file. Ogni ^ consuma un file e itera sulle sue righe:
$ mapchar '^/d' nomi.txt
# output: Bob0, Bob1, ..., Ana0, Ana1, ...
$ mapchar '^-^' nomi.txt anni.txt
# output: Bob-1990, Ana-1991, Ryan-1992, ...
Prefissa un nome file con // per trattarlo come espressione inline invece che come percorso file.
Usa <@nome=espressione> per valutare un'espressione una volta per riga di output e memorizzarla, poi riutilizzala con <@nome>.
A differenza della concatenazione, questo introduce una dipendenza, quindi non viene creato alcun prodotto cartesiano tra la definizione e i suoi riferimenti.
$ mapchar '<@d=/d>-<@d>'
# output: 0-0, 1-1, ..., 9-9
$ mapchar '<@x=^>:<@x>' parole.txt
# output: foo:foo, bar:bar, ...
$ mapchar '<@n=/d{2}>_<@n>'
# output: 00_00, 01_01, ..., 99_99
Mapchar supporta la compressione in tempo reale durante la scrittura dei file di output.
# gzip (veloce, bilanciato)
mapchar '/l{5}' -z gzip -o wordlist.txt.gz
# lzma (migliore compressione)
mapchar '/l{5}' -z lzma -o wordlist.txt.xz
# bzip2 (via di mezzo)
mapchar '/l{5}' -z bzip2 -o wordlist.txt.bz2
Usa \ per escape dei caratteri speciali.
$ mapchar '\/d/d'
# output: /d/0, /d/1, ..., /d/9
Accogliamo con favore i contributi a Mapchar! Che si tratti di aggiungere nuove funzionalità, migliorare la documentazione o correggere bug, il tuo aiuto è apprezzato.
Sentiti libero di aprire una issue o inviare una pull request sul nostro repository GitHub all'indirizzo pwnfo/mapchar.
MIT © Ryan R. <[email protected]>
| Simbolo | Significato |
|---|
/l | lettere (a–z, A–Z) |
/a | lettere minuscole (a–z) |
/A | lettere maiuscole (A–Z) |
/d | cifre (0–9) |
/D | cifre non zero (1–9) |
/h | esadecimale minuscolo (0–9, a–f) |
/H | esadecimale maiuscolo (0–9, A–F) |
/s | spazio |
/o | cifre ottali (0–7) |
/p | caratteri speciali |
/b | newline (\n) |