
Gere listas de palavras usando lógica de padrões e expressões.
Gere wordlists usando lógica de padrões e expressões
Instalação • Documentação • Uso • Contribuição
[!NOTE] Este projeto foi renomeado de
fuse/fuse-generatorparamapchara partir da versão 7.0.2. O pacote PyPI, o comando CLI e o nome do pacote Python foram alterados de acordo. Se você estava usando o nome antigo, atualize suas instalações e importações.
[!NOTE] É recomendado instalar usando
pipxoupippara a versão PyPI.
| Método | Notas |
|---|---|
pipx install mapchar | pip pode ser usado no lugar de pipx |
git clone https://github.com/pwnfo/mapchar.git && cd mapchar && pip install . | Clone e instale diretamente do GitHub |
Para um guia completo, explicações de funcionalidades e exemplos avançados, visite a documentação.
Para gerar uma wordlist a partir de uma expressão simples:
mapchar '/l{2,4}'
Para combinar arquivos com geradores:
mapchar '^:^' names.txt pass.txt
As saídas podem ser manipuladas, filtradas e salvas.
Opções Gerais:
-h, --help mostra esta mensagem de ajuda e sai
-v, --version mostra informações da versão e sai
-S, --stats mostra estatísticas do padrão e sai
-q, --quiet suprime saída não essencial
-n, --non-interactive
pula o prompt de confirmação antes da execução
Opções de Geração:
-d, --delimiter <string>
string inserida entre entradas geradas
-b, --write-buffer <size>
tamanho do buffer de saída
-w, --workers <1-64> número de processos trabalhadores (padrão: 1)
-k, --flush-threshold <size>
libera saída após atingir este limite de bytes (padrão: 512KB)
Opções de Entrada:
-f, --file <path> carregar padrões de arquivo
-s, --start <word> começar a escrever a saída a partir de <word>
-e, --end <word> parar de escrever a saída em <word>
Opções de Saída:
-o, --output <path> escrever saída em um arquivo
-z, --compress <format>
comprimir saída (suportado: gzip, bzip2, lzma)
-l, --compresslevel <level>
nível de compressão para o formato selecionado
[...] produzem um item por posição.Exemplo:
$ mapchar '/l{2,3}'
# saída: aa, ab, ac, ..., ZY, ZZ
Exemplo: /l/l gera todas as combinações de duas letras (maiúsculas e minúsculas).
[abc] seleciona um caractere de a, b ou c.| para separar alternativas de palavras completas dentro de classes:
[admin|root|123] insere admin OU root OU 123 naquele ponto.|| para separar expressões de alto nível:
mapchar 'admin/d||guest/d' encadeia dois padrões independentes.Você pode analisar um padrão antes de gerá-lo usando a flag -S/--stats. Isso mostra contagens de tokens, tamanho estimado e detalhes de filtragem de intervalo.
mapchar -S '/l{3}||/d{3}'
{N} — repita exatamente N vezes{min,max} — repita entre min e max vezes (inclusive)? — opcional (0 ou 1 vez)Exemplos:
$ 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] → gera 1,2,3,4,5,6,7,8,9,10#[1-10:2] → gera 1,3,5,7,9#[2-10:2] → gera 2,4,6,8,10Estes intervalos numéricos podem ser usados em qualquer posição de uma expressão.
Use ^ em uma expressão como um placeholder para o próximo argumento de arquivo. Cada ^ consome um arquivo e itera sobre suas linhas:
$ mapchar '^/d' names.txt
# saída: Bob0, Bob1, ..., Ana0, Ana1, ...
$ mapchar '^-^' names.txt years.txt
# saída: Bob-1990, Ana-1991, Ryan-1992, ...
Prefira um nome de arquivo com // para tratá-lo como uma expressão inline em vez de um caminho de arquivo.
Use <@name=expr> para avaliar uma expressão uma vez por linha de saída e armazená-la, depois reutilize com <@name>. Diferente da concatenação, isso introduz uma dependência, portanto nenhum produto cartesiano é criado entre a definição e suas referências.
$ mapchar '<@d=/d>-<@d>'
# saída: 0-0, 1-1, ..., 9-9
$ mapchar '<@x=^>:<@x>' words.txt
# saída: foo:foo, bar:bar, ...
$ mapchar '<@n=/d{2}>_<@n>'
# saída: 00_00, 01_01, ..., 99_99
Mapchar suporta compressão em tempo real ao escrever arquivos de saída.
# gzip (rápido, equilibrado)
mapchar '/l{5}' -z gzip -o wordlist.txt.gz
# lzma (melhor compressão)
mapchar '/l{5}' -z lzma -o wordlist.txt.xz
# bzip2 (meio termo)
mapchar '/l{5}' -z bzip2 -o wordlist.txt.bz2
Use \ para escapar caracteres especiais.
$ mapchar '\/d/d'
# saída: /d/0, /d/1, ..., /d/9
Aceitamos contribuições para o Mapchar! Seja adicionando novas funcionalidades, melhorando a documentação ou corrigindo bugs, sua ajuda é apreciada. Sinta-se à vontade para abrir uma issue ou enviar um pull request em nosso repositório GitHub em pwnfo/mapchar.
MIT © Ryan R. <[email protected]>
| Símbolo | Significado |
|---|
/l | letras (a–z, A–Z) |
/a | letras minúsculas (a–z) |
/A | letras maiúsculas (A–Z) |
/d | dígitos (0–9) |
/D | dígitos não nulos (1–9) |
/h | hexadecimal minúsculo (0–9, a–f) |
/H | hexadecimal maiúsculo (0–9, A–F) |
/s | espaço |
/o | dígitos octais (0–7) |
/p | caracteres especiais |
/b | nova linha (\n) |