
パターンロジックと式を使用してワードリストを生成します。
インストール • ドキュメント • 使い方 • コントリビューション
[!NOTE] このプロジェクトはバージョン7.0.2から
fuse/fuse-generatorからmapcharに名称変更されました。 PyPIパッケージ、CLIコマンド、Pythonパッケージ名もすべて変更されています。 以前の名称を使用していた場合は、インストールとインポートを更新してください。
[!NOTE] PyPI版では
pipxまたはpipを使用したインストールを 推奨 します。
| 方法 | 備考 |
|---|---|
pipx install mapchar | pip を pipx の代わりに使用可能 |
git clone https://github.com/pwnfo/mapchar.git && cd mapchar && pip install . | GitHubから直接クローンしてインストール |
完全なガイド、機能説明、高度な例については、ドキュメントをご覧ください。
単純な式からワードリストを生成するには:
mapchar '/l{2,4}'
ファイルとジェネレータを組み合わせるには:
mapchar '^:^' names.txt pass.txt
出力は操作、フィルタリング、保存が可能です。
General Options:
-h, --help このヘルプメッセージを表示して終了
-v, --version バージョン情報を表示して終了
-S, --stats パターンの統計を表示して終了
-q, --quiet 重要でない出力を抑制
-n, --non-interactive
実行前の確認プロンプトをスキップ
Generation Options:
-d, --delimiter <string>
生成されたエントリの間に挿入する文字列
-b, --write-buffer <size>
出力バッファサイズ
-w, --workers <1-64> ワーカープロセス数(デフォルト: 1)
-k, --flush-threshold <size>
このバイトしきい値に達したら出力をフラッシュ(デフォルト: 512KB)
Input Options:
-f, --file <path> ファイルからパターンを読み込む
-s, --start <word> <word>から出力を開始
-e, --end <word> <word>で出力を停止
Output Options:
-o, --output <path> 出力をファイルに書き込む
-z, --compress <format>
出力を圧縮(対応: gzip, bzip2, lzma)
-l, --compresslevel <level>
選択した形式の圧縮レベル
[...] は、位置ごとに1つのアイテムを生成します。例:
$ mapchar '/l{2,3}'
# 出力: aa, ab, ac, ..., ZY, ZZ
例: /l/l は全ての2文字の組み合わせ(大文字小文字混在)を生成します。
[abc] は a、b、c から 1文字 を選択します。| を使用して単語全体の選択肢を区切る:
[admin|root|123] はその位置に admin または root または 123 を挿入します。|| を使用して トップレベルの式 を区切る:
mapchar 'admin/d||guest/d' は2つの独立したパターンを連鎖させます。生成する前に -S/--stats フラグを使ってパターンを分析できます。トークン数、推定サイズ、範囲フィルタリングの詳細が表示されます。
mapchar -S '/l{3}||/d{3}'
{N} — 正確にN回繰り返す{min,max} — 最小min回から最大max回まで繰り返す(両端含む)? — 省略可能(0回または1回)例:
$ 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] → 1,2,3,4,5,6,7,8,9,10 を生成#[1-10:2] → 1,3,5,7,9 を生成#[2-10:2] → 2,4,6,8,10 を生成これらの数値範囲は式のどの位置でも使用できます。
式の中で ^ を次のファイル引数のプレースホルダーとして使用します。各 ^ は1つのファイルを消費し、その行を反復処理します:
$ mapchar '^/d' names.txt
# 出力: Bob0, Bob1, ..., Ana0, Ana1, ...
$ mapchar '^-^' names.txt years.txt
# 出力: Bob-1990, Ana-1991, Ryan-1992, ...
ファイル名の先頭に // を付けると、ファイルパスではなくインライン式として扱われます。
<@name=expr> を使用して、出力行ごとに1回式を評価し、<@name> で再利用します。連結とは異なり、依存関係が生じるため、定義と参照の間に直積は作成されません。
$ mapchar '<@d=/d>-<@d>'
# 出力: 0-0, 1-1, ..., 9-9
$ mapchar '<@x=^>:<@x>' words.txt
# 出力: foo:foo, bar:bar, ...
$ mapchar '<@n=/d{2}>_<@n>'
# 出力: 00_00, 01_01, ..., 99_99
Mapcharは出力ファイルへの書き込み時にオンザフライ圧縮をサポートしています。
# gzip(高速、バランス良)
mapchar '/l{5}' -z gzip -o wordlist.txt.gz
# lzma(最高圧縮率)
mapchar '/l{5}' -z lzma -o wordlist.txt.xz
# bzip2(中間)
mapchar '/l{5}' -z bzip2 -o wordlist.txt.bz2
\ を使用して特殊文字をエスケープします。
$ mapchar '\/d/d'
# 出力: /d/0, /d/1, ..., /d/9
Mapcharへのコントリビューションを歓迎します!新機能の追加、ドキュメントの改善、バグ修正など、どのような貢献でもありがたく受け付けています。
GitHubリポジトリ pwnfo/mapchar でIssueを開いたりプルリクエストを送信したりしてください。
MIT © Ryan R. <[email protected]>
| 記号 | 意味 |
|---|
/l | 英字(a–z, A–Z) |
/a | 小文字(a–z) |
/A | 大文字(A–Z) |
/d | 数字(0–9) |
/D | 非ゼロの数字(1–9) |
/h | 小文字の16進数(0–9, a–f) |
/H | 大文字の16進数(0–9, A–F) |
/s | 空白 |
/o | 8進数(0–7) |
/p | 特殊文字 |
/b | 改行(\n) |