Life-Experimentalist/zipCracker

GitHub: Life-Experimentalist/zipCracker

一款基于Python的压缩文件破解工具,用于破解受密码保护的ZIP、RAR、7Z和TAR文件。

Stars: 0 | Forks: 0

# 压缩文件破解器 本项目是一个工具,用于使用字典攻击、暴力攻击和并发攻击破解受密码保护的压缩文件(zip、7z、rar、tar)。 ## 设置开发环境 1. **克隆仓库** git clone cd Zip-Cracker 2. **安装依赖** 确保已安装 Python。然后,安装所需的 Python 包: pip install py7zr rarfile tqdm 3. **下载字典** 运行 `install.py` 脚本以下载字典文件: python install.py 4. **创建测试压缩文件** 创建一个包含简单密码的测试压缩文件: echo "This is a test file." > test.txt zip -e test.zip test.txt 输入提示时输入密码(例如,`test`)。 ## 使用方法 ### 验证文件类型 要验证文件是否为支持的压缩文件: ``` python src/verify_file.py ``` ### 字典攻击 要执行字典攻击: ``` python src/dictionary_attack.py ``` ### 暴力攻击 要执行暴力攻击: ``` python src/brute_force_attack.py ``` ### 并发攻击 要执行并发攻击: ``` python src/concurrent_attack.py ``` ## 运行主脚本 主脚本将自动检测脚本目录中的压缩文件,并尝试使用字典、暴力攻击和并发攻击破解它们。 ``` python main.py ``` ## 高级功能 - **检查嵌套压缩文件**:该工具可以检查文件内容是否为另一个加密的压缩文件,并在必要时破解它。 ## 文件描述 - `main.py`:运行工具的主要脚本。 - `auto_cracker.py`:具有类似功能的其他主要脚本。 - `src/verify_file.py`:用于验证压缩文件类型的脚本。 - `src/dictionary_attack.py`:执行字典攻击的脚本。 - `src/brute_force_attack.py`:执行暴力攻击的脚本。 - `src/concurrent_attack.py`:执行并发攻击的脚本。 - `src/log_result.py`:记录攻击结果的实用程序。 - `src/file_utils.py`:检查文件类型的实用函数。 ## 示例 1. **验证文件类型** python src/verify_file.py test.zip 2. **字典攻击** python src/dictionary_attack.py test.zip dictionaries/realhuman_phill.txt 3. **暴力攻击** python src/brute_force_attack.py test.zip 1 4 4. **并发攻击** python src/concurrent_attack.py test.zip 1 4 5. **运行主脚本** python main.py ## 注意事项 - 确保字典文件位于指定的路径中。 - 攻击的结果将记录在脚本目录中的 `passwords.md` 文件中。 ## 挑战 - 构建压缩文件破解器 在这个编码挑战中,我们将构建一个工具来“破解”加密的 zip 文件。 ### 第零步 在许多编程语言中,我们从零开始索引数组。编码挑战也是如此,我们从第 0 步开始。这是设置您选择的 IDE / 编辑器和编程语言的步骤。 这是一个很好的挑战,可以在 C、C++、Rust 或 Go 等语言中完成,以便构建一个并发破解器。尽管在 PHP、Python 或 JavaScript 等语言中完成它也是完全可能的。选择权在你! 在设置好您的开发环境后,创建一个如下所示的测试压缩文件: ``` % export LC_CTYPE=C % cat /dev/urandom | tr -dc '[:alpha:]' | fold -w ${1:-1000} | head -n 1 > cc.txt challenge-zip-cracker % zip -e cctest.zip cc.txt ``` 输入提示时输入密码。现在使用简单的密码“test”。 ### 第一步 在这一步中,您的目标是验证文件是否为 zip 文件。最简单的方法是检查头部是否与 zip 文件的头部匹配。您可以通过读取头部并检查它们是否匹配[这里详细说明](https://en.wikipedia.org/wiki/ZIP_(file_format)#File_headers)。 如果您还记得[构建自己的 xxd](https://codingchallenges.fyi/challenges/challenge-xxd) 编码挑战,我们可以使用 xxd 来检查文件并查看头部: ``` % xxd -l64 cctest.zip 00000000: 504b 0304 1400 0900 0800 0e81 dc58 09a9 PK...........X.. 00000010: b5ad f602 0000 e903 0000 0600 1c00 6363 ..............cc 00000020: 2e74 7874 5554 0900 03ec d17e 66ee d17e .txtUT.....~f..~ 00000030: 6675 780b 0001 04f5 0100 0004 1400 0000 fux............. ``` 这里要注意的另一件重要的事情是,尽管文件是“加密”的,但元数据不是 - 我们可以看到文件名:cc.txt。 您的程序应该做类似的事情: ``` % cczipcrack cctest.zip Has zip headers. % cczipcrack cc.txt Does not have zip headers. ``` ### 第二步 在这一步中,您的目标是进行字典攻击。这种攻击类型在[构建自己的密码破解器](https://codingchallenges.fyi/challenges/challenge-password-cracker) 编码挑战中有解释。为此,从 CrackStation[这里](https://crackstation.net/crackstation-wordlist-password-cracking-dictionary.htm) 获取密码列表。现在先获取较小的单词列表。 然后尝试使用字典中的每个单词解密 zip 文件。找到正确的密码时打印出来。您可以实现完整的 zip 加密规范,或者只需使用您编程语言的库。 ``` % cczipcrack -dict cctest.zip Password found: test ``` ### 第三步 在这一步中,您的目标是尝试所有有效字符的所有组合,直到一定长度。这是一种暴力攻击。通常,在尝试暴力攻击之前会尝试字典攻击,因为大多数密码都是真实单词,并且其中许多都包含在广泛可用的密码字典中。 在您的 zip 密码破解器中添加对暴力破解密码的支持,允许用户指定密码的最小和最大长度,然后生成允许密码字符的所有组合。 ``` % cczipcrack -brute -min=1 -max=4 cctest.zip Password found: test ``` ### 第四步 在这一步中,您的目标是并发检查。现代 CPU 有多个核心,因此我们可以通过使用多个线程来测试更多密码,从而在更短的时间内破解密码。 ## 进一步挑战 在这个挑战中,为运行破解器的机器上的每个 CPU 核心创建一个线程。
标签:7Z文件, DOS头擦除, PoC, RAR文件, SEO优化, SysWhispers, TAR文件, VEH, ZIP文件, 主脚本, 依赖管理, 压缩文件格式, 域名侦查, 字典下载, 字典攻击, 安全测试, 密码学, 密码破解, 嵌套压缩文件, 开发环境, 手动系统调用, 攻击性安全, 数字取证, 文件压缩, 文件验证, 暴力破解, 测试文件, 用户模式钩子绕过, 自动化脚本, 辅助脚本, 逆向工具