pwnfo/fuse
GitHub: pwnfo/fuse
基于表达式的模式化字典生成工具,帮助安全测试人员快速构建高度定制化的口令候选列表。
Stars: 24 | Forks: 3
Pattern-based wordlist generation tool
安装
•
使用
•
贡献
## 安装说明
| 方法 | 备注 |
| - | - |
| `pipx install fuse-generator` | 可以使用 `pip` 代替 `pipx` |
| `git clone https://github.com/pwnfo/fuse.git && cd fuse && pip install .` | 直接从 GitHub 克隆并安装 |
## 一般用法
通过简单表达式生成字典:
```
fuse "/l{2,4}"
```
将文件与生成器结合使用:
```
fuse "^:^" names.txt pass.txt
```
可以对输出进行操作、过滤和保存。
```
$ fuse --help
usage: fuse [options]
[]
___ _ _ __ ___
| __|| | |/ _|| __|
| _| | U |\_ \| _|
|_| |___||__/|___|
v3.1.2
-h, --help show this help message and exit
-v, --version show version message and exit
-o, --output write the wordlist in the file
-f, --file files with different expressions
-q, --quiet use quiet mode
-s, --separator
separator between entries
-b, --buffer buffer size in wordlist generation
-w, --workers <1-64> number of workers (default is 1)
-F, --filter filter generated words using a regex
-n, --non-interactive
disable interactive prompt before execution
--from start writing the wordlist with
--to ends writing the wordlist with
Powerful pattern-based wordlist generation tool.
Developed by Ryan R.
```
### 表达式基础
* 字面字符生成其本身。
* 内置字符类和括号类 `[...]` 在每个位置生成一个项。
* 串联组合多个位置:每个位置从其 token 中选取一个值并连接起来。
示例:
```
$ fuse "/l{2,3}"
# 输出: aa, ab, ac, ..., ZY, ZZ
```
### 字符类
| 符号 | 含义 |
| ------ | -------------------------------- |
| `/l` | 字母 (a–z, A–Z) |
| `/a` | 小写字母 (a–z) |
| `/A` | 大写字母 (A–Z) |
| `/d` | 数字 (0–9) |
| `/h` | 小写十六进制字符 (0–9, a–f) |
| `/H` | 大写十六进制字符 (0–9, A–F) |
| `/s` | 空格 |
| `/o` | 八进制数字 (0–7) |
| `/p` | 特殊字符 |
| `/N` | 换行符 (`\n`) |
示例:`/l/l` 会生成所有两字母组合(包括大小写)。
### 自定义类与联合
* `[abc]` 从 `a`、`b` 或 `c` 中选择 **一个字符**。
* 使用 `|` 分隔完整单词的备选项(每一项都被视为多字符 token):
* `[admin|root|123]` 在该位置插入 `admin` 或 `root` 或 `123`。
### 量词
* `{N}` — 精确重复 N 次
* `{min,max}` — 重复 min 到 max 次(包含边界)
* `?` — 可选(0 或 1 次)
示例:
```
$ fuse "[XYZ]{3}" # XXX, XXY, ..., ZZZ
$ fuse "[XYZ]{2,5}" # XY, XZ, ..., XYZXY
$ fuse "Ryan?/d" # Rya0, Rya1, ..., Ryan9
$ fuse "[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
这些数值范围可用于表达式中的任何位置。
### 文件与占位符
在表达式中使用 `^` 作为下一个文件参数的占位符。每个 `^` 会消耗一个文件并遍历其每一行:
```
$ fuse "^/d" names.txt
# 输出: Bob0, Bob1, ..., Ana0, Ana1, ...
$ fuse "^-^" names.txt years.txt
# 输出: Bob-1990, Ana-1991, Ryan-1992, ...
```
在文件名前加上 `//` 前缀,可以将其作为内联表达式处理,而不是文件路径。
### 转义特殊字符
使用 `\` 转义特殊字符。
```
$ fuse "\/d/d"
# 输出: /d/0, /d/1, ..., /d/9
```
## Star 历史
## 许可证
MIT © Ryan R. <pwnfo@proton.me>标签:CTF工具, DOS头擦除, Python, 二进制发布, 合规字典, 安全测试, 密码学, 密码破解, 开源工具, 手动系统调用, 攻击性安全, 攻击路径可视化, 无后门, 模式匹配, 漏洞搜索, 网络安全, 自动化资产收集, 逆向工具, 隐私保护, 黑客工具