euxaristia/sifr
GitHub: euxaristia/sifr
一款用 Go 编写的快速轻量级凯撒密码破解工具,专为 picoCTF 及常规 CTF 挑战优化,支持自动智能匹配与暴力枚举。
Stars: 0 | Forks: 0
# sifr (صفر)
`sifr`(阿拉伯语,意为*零*或*密码*)是一个快速、轻量级、兼容 POSIX 的 Caesar 密码破解工具,使用 Go 编写,专门针对 **picoCTF** 和常规 CTF 挑战进行了优化。
它的设计具有高度兼容性(为 macOS 和 Linux 编译)、无依赖且对 shell pipeline 友好。
## 功能特性
- ⚡ **零依赖,单一二进制文件**:完全使用 Go 标准库构建,实现瞬间启动。
- 🤖 **零配置智能自动破解**:运行 `sifr ` 无需任何 flag,它会自动在所有 25 种偏移量中搜索标准的 flag 前缀(默认:`picoCTF`)。如果未找到匹配项,它会平滑地回退到暴力破解所有偏移量。
- 🎨 **精美的 ANSI 彩色终端输出**:以粗体绿色突出显示匹配的子字符串,并以清晰的青色格式化偏移量。当输出通过管道传输或重定向到非 TTY 端点时,会自动禁用颜色代码。
- 🧼 **纯净输出模式 (`-c`, `--clean`)**:仅输出原始解密文本——非常适合 Unix pipeline 自动化(例如 `sifr -a -c | pbcopy`)。
- 📁 **灵活的输入源**:支持直接从参数、文件或标准输入(管道)无缝读取密文。
- 🧭 **短/长 flag 配置**:支持标准的 POSIX 单划线和 GNU 双划线风格的参数。
## 安装
确保你已安装 [Go](https://go.dev/),然后运行:
```
# 本地构建
go build -o sifr .
# 或者将其安装到你的 $GOPATH/bin
go install .
```
## 使用指南
```
sifr - A fast, POSIX-compliant Caesar cipher solver for picoCTF
Usage:
sifr [flags] [ciphertext_or_filepath]
Flags:
-s, --shift Shift the input by a specific number of positions (1-25)
-b, --brute Brute-force and print all 25 possible shifts
-a, --auto Auto-solve mode: check all shifts for pattern (default pattern: picoCTF)
-p, --pattern Custom pattern to look for in auto-solve mode (default: picoCTF)
-c, --clean Only output the raw plaintext, omitting metadata and color codes
-n, --new-caesar Use New Caesar cipher (custom Base16 / modulo-16 solver)
-h, --help Show this help message
```
### 示例
#### 1. 零配置 Flag 搜寻(自动智能破解)
将密文作为参数传入。`sifr` 会自动扫描所有偏移量以寻找 `picoCTF` 并高亮显示匹配项:
```
$ sifr "cvpbPGS{guvf_vf_n_grfg}"
Shift 13 (MATCH): picoCTF{this_is_a_test}
```
#### 2. 破解 New Caesar 密码
使用 `-n` 或 `--new-caesar` flag 来破解如 picoCTF 的 "New Caesar" 这样的挑战:
```
$ sifr -n "picoCTF{fegdeogdgecoeocgcgchcfcffccfca}"
Shift 0 (key a) (MATCH): picoCTF{TcNcd.N&&'%%R% }
Shift 15 (key p) (MATCH): picoCTF{et_tu?_77866c61}
```
#### 2. 暴力破解未知密文
如果没有找到 flag 匹配项,它会显示所有 25 种可能性:
```
$ sifr "uau"
No shifts matched pattern. Brute-forcing all shifts:
Shift 1: vbv
...
Shift 12: gmg
...
Shift 25: tzt
```
#### 3. 自定义 Flag 格式模式
对于其他的 CTF,使用 `-p` / `--pattern` flag:
```
$ sifr -p "flag" "synt{guvf_vf_n_flzcyr_flag}"
Shift 13 (MATCH): flag{this_is_a_symple_synt}
```
#### 4. 纯净输出与 UNIX 管道
提取解密后的 flag 并直接复制到剪贴板:
```
$ echo "cvpbPGS{guvf_vf_n_grfg}" | sifr -c | pbcopy
```
#### 5. 文件输入
直接读取加密的文本文件:
```
$ sifr flag.enc
```
## 许可证
本软件根据 [The Unlicense](LICENSE) 发布到公共领域。你可以随意复制、修改、发布、出售或分发它。查看 `LICENSE` 文件了解更多详情。
标签:EVTX分析, 日志审计