
Generiere Wortlisten mittels Pattern-Logik und Ausdrücken.
Generiere Wortlisten mittels Musterlogik und Ausdrücken
Installation • Dokumentation • Nutzung • Mitwirken
[!NOTE] Dieses Projekt wurde von
fuse/fuse-generatorinmapcharumbenannt, beginnend mit Version 7.0.2. Das PyPI-Paket, der CLI-Befehl und der Python-Paketname wurden entsprechend geändert. Falls du den alten Namen verwendet hast, aktualisiere bitte deine Installationen und Importe.
[!NOTE] Es wird empfohlen, die PyPI-Version mit
pipxoderpipzu installieren.
| Methode | Hinweise |
|---|---|
pipx install mapchar | pip kann anstelle von pipx verwendet werden |
git clone https://github.com/pwnfo/mapchar.git && cd mapchar && pip install . | Klonen und direkt von GitHub installieren |
Eine vollständige Anleitung, Feature-Erklärungen und fortgeschrittene Beispiele findest du in der Dokumentation.
Um eine Wortliste aus einem einfachen Ausdruck zu generieren:
mapchar '/l{2,4}'
Um Dateien mit Generatoren zu kombinieren:
mapchar '^:^' names.txt pass.txt
Ausgaben können manipuliert, gefiltert und gespeichert werden.
General Options:
-h, --help show this help message and exit
-v, --version show version information and exit
-S, --stats show pattern statistics and exit
-q, --quiet suppress non-essential output
-n, --non-interactive
skip the confirmation prompt before execution
Generation Options:
-d, --delimiter <string>
string inserted between generated entries
-b, --write-buffer <size>
output buffer size
-w, --workers <1-64> number of worker processes (default: 1)
-k, --flush-threshold <size>
flush output after reaching this byte threshold (default: 512KB)
Input Options:
-f, --file <path> load patterns from file
-s, --start <word> start writing output from <word>
-e, --end <word> stop writing output at <word>
Output Options:
-o, --output <path> write output to a file
-z, --compress <format>
compress output (supported: gzip, bzip2, lzma)
-l, --compresslevel <level>
compression level for the selected format
[...] erzeugen ein Element pro Position.Beispiel:
$ mapchar '/l{2,3}'
# Ausgabe: aa, ab, ac, ..., ZY, ZZ
Beispiel: /l/l erzeugt alle Zweibuchstaben-Kombinationen (Groß- und Kleinschreibung).
[abc] wählt ein Zeichen aus a, b oder c aus.|, um Alternativen aus ganzen Wörtern innerhalb von Klassen zu trennen:
[admin|root|123] fügt an dieser Stelle admin ODER root ODER 123 ein.||, um Ausdrücke der obersten Ebene zu trennen:
mapchar 'admin/d||guest/d' verknüpft zwei unabhängige Muster.Du kannst ein Muster analysieren, bevor du es generierst, mit der Option -S/--stats. Dies zeigt Tokenanzahlen, geschätzte Größe und Details zur Bereichsfilterung an.
mapchar -S '/l{3}||/d{3}'
{N} — genau N mal wiederholen{min,max} — zwischen min und max mal wiederholen (einschließlich)? — optional (0 oder 1 mal)Beispiele:
$ 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] → erzeugt 1,2,3,4,5,6,7,8,9,10#[1-10:2] → erzeugt 1,3,5,7,9#[2-10:2] → erzeugt 2,4,6,8,10Diese Zahlenbereiche können an jeder Position eines Ausdrucks verwendet werden.
Verwende ^ in einem Ausdruck als Platzhalter für das nächste Dateiargument. Jedes ^ verbraucht eine Datei und iteriert über ihre Zeilen:
$ mapchar '^/d' names.txt
# Ausgabe: Bob0, Bob1, ..., Ana0, Ana1, ...
$ mapchar '^-^' names.txt years.txt
# Ausgabe: Bob-1990, Ana-1991, Ryan-1992, ...
Stelle einem Dateinamen // voran, um ihn als Inline-Ausdruck statt als Dateipfad zu behandeln.
Verwende <@name=expr>, um einen Ausdruck einmal pro Ausgabezeile auszuwerten und zu speichern, und dann mit <@name> wiederzuverwenden.
Im Gegensatz zur Verkettung erzeugt dies eine Abhängigkeit, sodass kein kartesisches Produkt zwischen der Definition und ihren Referenzen entsteht.
$ mapchar '<@d=/d>-<@d>'
# Ausgabe: 0-0, 1-1, ..., 9-9
$ mapchar '<@x=^>:<@x>' words.txt
# Ausgabe: foo:foo, bar:bar, ...
$ mapchar '<@n=/d{2}>_<@n>'
# Ausgabe: 00_00, 01_01, ..., 99_99
Mapchar unterstützt On-the-fly-Kompression beim Schreiben von Ausgabedateien.
# gzip (schnell, ausgewogen)
mapchar '/l{5}' -z gzip -o wordlist.txt.gz
# lzma (beste Kompression)
mapchar '/l{5}' -z lzma -o wordlist.txt.xz
# bzip2 (Mittelweg)
mapchar '/l{5}' -z bzip2 -o wordlist.txt.bz2
Verwende \, um Sonderzeichen zu maskieren.
$ mapchar '\/d/d'
# Ausgabe: /d/0, /d/1, ..., /d/9
Wir freuen uns über Beiträge zu Mapchar! Ob das Hinzufügen neuer Funktionen, die Verbesserung der Dokumentation oder das Beheben von Fehlern – deine Hilfe ist willkommen.
Eröffne gerne ein Issue oder reiche einen Pull-Request in unserem GitHub-Repository unter pwnfo/mapchar ein.
MIT © Ryan R. <[email protected]>
| Symbol | Bedeutung |
|---|
/l | Buchstaben (a–z, A–Z) |
/a | Kleinbuchstaben (a–z) |
/A | Großbuchstaben (A–Z) |
/d | Ziffern (0–9) |
/D | Ziffern ohne Null (1–9) |
/h | Hexadezimal klein (0–9, a–f) |
/H | Hexadezimal groß (0–9, A–F) |
/s | Leerzeichen |
/o | Oktalziffern (0–7) |
/p | Sonderzeichen |
/b | Zeilenumbruch (\n) |