HaseebKaloya/Kaloya-Pdf-Cracker
GitHub: HaseebKaloya/Kaloya-Pdf-Cracker
基于John the Ripper引擎的专业PDF密码恢复工具,提供字典攻击和数字掩码攻击两种模式,支持自动哈希提取和加密算法识别。
Stars: 0 | Forks: 0

[](https://github.com/haseebkaloya/kaloya-pdf-cracker/releases)
[](https://www.python.org)
[](LICENSE)
[](https://github.com/haseebkaloya/kaloya-pdf-cracker/releases)
[](https://github.com/haseebkaloya/kaloya-pdf-cracker/stargazers)
## 概述
Kaloya PDF Cracker 是一款专业级的 PDF 密码恢复工具,专为 Windows 系统设计。它提供两种不同的攻击模式——字典攻击和数字掩码攻击——并通过专用图形界面呈现,在整个破解过程中保持响应流畅。
该工具并未实现自己的加密引擎,而是封装了 **John the Ripper**,这是一款成熟的开源密码安全审计工具,因此每次攻击都能以原生二进制速度运行。PDF 哈希提取由 **pyhanko** 库处理,该库能够可靠地从标准和传统 PDF 安全处理程序中读取加密元数据。
这不是一个脚本。它是一个可部署的桌面应用程序,专为 Windows 构建,通过正规安装程序分发,无需外部依赖项
## 演示
*屏幕录制即将推出。*
## 功能
| 功能 | 详情 |
|---|---|
| 字典攻击 | 提供任何 `.txt` 词表;引擎以硬件速度测试每个候选密码 |
| 掩码/数字攻击 | 定义数字长度范围(例如 `4-6`);工具遍历所有数字组合 |
| 自动哈希提取 | 直接读取 PDF 加密头,无需手动准备哈希 |
| 算法检测 | 识别并报告 RC4-40、RC4-128、AES-128 或 AES-256 加密 |
| 实时终端输出 | 所有后端活动实时流式传输到内置 GUI 控制台 |
| 非阻塞界面 | 破解引擎在专用线程中运行;界面保持完全交互性 |
| 跨代 JtR | 附带 AVX2、AVX、SSE4.1、SSE2 和通用 JtR 构建版本;自动选择最佳二进制文件 |
| 中止控制 | "ABORT ATTACK" 按钮可在任何时刻干净地终止后端 |
| Windows 集成 | 深色标题栏、自定义应用程序图标、安装程序提供的开始菜单和桌面快捷方式 |
## 要求
| 要求 | 最低配置 |
|---|---|
| 操作系统 | Windows 10(64 位)或 Windows 11 |
| Python | 3.9 或更高版本(仅用于"从源码运行") |
| 磁盘空间 | 约 120 MB(安装后) |
| 内存 | 512 MB 可用 |
| 依赖项 | PyQt5、pyhanko(仅从源码运行需要) |
## 安装
### 选项 A — 下载安装程序(推荐)
1. 前往 [Releases 页面](https://github.com/haseebkaloya/kaloya-pdf-cracker/releases)。
2. 下载 **`KaloyaPDFCracker_Setup_v1.0.0.exe`**。
3. 运行安装程序并按照设置向导操作。
4. 从桌面或开始菜单启动 **Kaloya PDF Cracker**。
无需安装 Python。所有依赖项都已捆绑在内。
### 选项 B — 从源码运行
**前置条件:** Python 3.9+、pip
```
# 克隆仓库
git clone https://github.com/haseebkaloya/kaloya-pdf-cracker.git
cd kaloya-pdf-cracker
# 安装依赖项
pip install PyQt5 pyhanko
# 启动应用程序
python main.py
```
## 使用方法
### 第 1 步 — 选择目标
点击 *目标选择* 面板中的 **BROWSE**,选择一个受密码保护的 PDF 文件。
### 第 2 步 — 选择攻击模式
**字典攻击**
选择 **Dictionary Attack (File)**,然后浏览词表(`.txt` 文件,每行一个密码)。当密码是常见单词或短语时,此方法非常有效。
```
Example wordlist path: C:\wordlists\rockyou.txt
```
**数字/掩码攻击**
选择 **Dynamic Digits (Mask)**,然后在 *Length* 字段中输入长度或范围。
```
Single length: 6 (tries all 6-digit numbers: 000000 to 999999)
Range: 4-6 (tries all 4-digit, then 5-digit, then 6-digit numbers)
```
### 第 3 步 — 启动攻击
点击 **INITIATE CRACK**。按钮变为 **ABORT ATTACK**,后端立即启动。输出实时流式传输到终端区域。
### 第 4 步 — 查看结果
如果找到密码,弹窗将显示明文密码和所用时间。点击 **ACKNOWLEDGE** 关闭。结果也会写入应用程序目录中的 `result.txt` 文件。
如果攻击穷尽而未找到结果,面板将报告失败以及已用总时间
## 攻击模式 — 详解
### 字典攻击

字典引擎通过 `--wordlist` 标志将词表直接传递给 John the Ripper。John 以原生速度读取并测试每一行来匹配 PDF 哈希。当密码是正确单词、短语或已知泄露凭证时,这是最快的成功途径。
推荐的公开词表:`rockyou.txt`(约 1400 万条)、`SecLists` 集合或特定领域列表。
### 掩码/数字攻击

掩码引擎使用 John the Ripper 的 `--mask=?d?d...` 功能,系统地枚举所有数字组合,直到指定的数字长度。`4-6` 范围会运行三个顺序子攻击:所有 4 位、所有 5 位和所有 6 位 PIN。终端会在每次转换时报告当前数字长度
## 文件结构
```
kaloya-pdf-cracker/
├── main.py # Application entry point
├── cracker.py # Core cracking engine and hash extraction
├── build.bat # One-click PyInstaller build script
├── build.spec # PyInstaller configuration
├── DISCLAIMER.txt # License and legal disclaimer
├── LICENSE # MIT License
│
├── gui/
│ ├── main_window.py # PyQt5 main window and UI logic
│ ├── worker.py # Background QThread cracker worker
│ ├── styles.qss # Application stylesheet
│ ├── logo.ico # Application icon
│ └── logo.png # Logo image (sidebar)
│
├── john/
│ └── run/ # John the Ripper binaries and config files
│
├── installer/
│ ├── setup.iss # Inno Setup installer script
│ ├── wizard_sidebar.png # Installer sidebar image
│ └── wizard_header.png # Installer header image
│
├── docs/
│ ├── TECHNICAL.md # Architecture and implementation details
│ ├── WORDLIST_GUIDE.md # Guide to finding and using wordlists
│ ├── images/ # README images and banners
│ └── icons/ # SVG icons
```
## 已知限制
- **仅限 Windows。** 捆绑的 John the Ripper 二进制文件是为 64 位 Windows 编译的。在 Linux 或 macOS 上从源码运行需要单独编译的 JtR 二进制文件,并需要调整 `cracker.py` 中的路径。
- **仅支持数字掩码(GUI)。** GUI 仅暴露数字暴力破解。要使用字母或自定义掩码,请直接从命令行运行 `cracker.py`,并使用 `--wordlist` 或 `--digits` 标志。
- **PDF 修订版 6(AES-256-R6)。** John the Ripper 的 PDF 格式支持此修订版,但由于密钥派生成本,性能比 RC4 或 AES-128 慢得多。
- **此版本无 GPU 加速。** 捆绑的 JtR 是 CPU 构建版本。上游存在 OpenCL/CUDA 构建版本,可以手动替换 `john/run/` 中的相应可执行文件来进行替换
## 路线图
| 功能 | 状态 |
|---|---| |
| 通过 GUI 支持字母/字母数字掩码 | 规划中 |
| 进度百分比和预计剩余时间 | 规划中 |
| 多 PDF 批量模式 | 正在考虑中 |
| GPU 加速(OpenCL 构建) | 正在考虑中 |
| Linux/macOS 源码支持 | 正在考虑中 |
## 许可证
本项目基于 MIT 许可证授权。详见 [LICENSE](LICENSE)。
捆绑的 John the Ripper 二进制文件基于其自己的许可证分发。详见 [john/README.md](john/README.md) 了解上游项目信息
## 联系方式
**开发者:** Haseeb Kaloya
**邮箱:** haseebkaloya@gmail.com
**GitHub:** [github.com/haseebkaloya](https://github.com/haseebkaloya)
**LinkedIn:** [linkedin.com/in/haseeb-kaloya-872194329](https://www.linkedin.com/in/haseeb-kaloya-872194329)标签:CTF工具, John the Ripper, PDF破解, PoC, Python, SysWhispers, VEH, Windows桌面应用, 代码生成, 凭证恢复, 加密破解, 字典攻击, 客户端加密, 密码审计, 密码攻击, 密码猜测, 掩码攻击, 无后门, 暴力破解, 暴力破解工具, 渗透测试工具, 漏洞搜索, 网络安全, 逆向工具, 隐私保护