十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

忘记ZIP密码别硬猜,bkcrack破解指南:4步用已知明文找回文件

忘记ZIP密码别硬猜,bkcrack破解指南:4步用已知明文找回文件 忘记ZIP密码别硬猜bkcrack破解指南4步用已知明文找回文件【免费下载链接】bkcrackCrack legacy zip encryption with Biham and Kochers known plaintext attack.项目地址: https://gitcode.com/gh_mirrors/bk/bkcrack压缩包设了密码密码却被你忘得一干二净——这种懊恼经历过的人都知道有多憋屈。如果你的压缩包恰好用的是传统ZIP加密ZipCrypto那么bkcrack就是那款专门破解这类加密的开源命令行工具它利用 Biham 和 Kocher 提出的已知明文攻击在不需要原始密码的情况下把加密内部状态直接反推出来。这篇文章不堆代码、不讲高深数学只带你走完一条完整可复现的破解流程看完就能上手。深夜被一把看不见的锁锁住的压缩包先讲个场景你多半会觉得眼熟。你从旧硬盘里翻出一个五年前打包的工作资料压缩包双击弹窗要求输入密码。你试了纪念日、试了宠物名字、试了当年最常用的那串字母数字组合……密码错误。再试还是错误。你甚至翻出了当年的邮件和聊天记录依然对不上号。眼看文件就在那里却像隔着一扇上了锁的门钥匙早丢了。大多数人到这里会选择放弃或者找一个号称万能破解的软件结果要么收费、要么无效、要么偷偷捆绑流氓程序。其实还有第三条路绕过密码直接对付加密本身。bkcrack 干的就是这件事而且它免费、开源、跨平台连图形界面都不需要。先确认你面对的是ZipCrypto还是AES在动手之前得先搞清楚一件事ZIP 加密并不只有一种bkcrack 只认其中一种。加密方式时代强度bkcrack 是否适用传统 ZipCrypto传统PKWARE加密上世纪90年代偏弱存在已知漏洞✅ 适用AES 加密现代标准强❌ 不适用ZipCrypto 是很多老压缩软件和默认加密选项使用的算法也是大量存量压缩包的加密来源。判断方法很简单让 bkcrack 把压缩包内容列出来看一眼加密方式一栏会直接标注 ZipCrypto。bkcrack凭什么能攻破ZipCrypto知其然最好也知其所以然。ZipCrypto 本质上是一个流密码你用密码初始化内部状态机器随后不断吐出一串伪随机字节与文件内容逐字节异或得到密文。可以把它想象成一台有三只齿轮的盖章机——三只齿轮的初始咬合位置由密码决定每处理一个字节齿轮就转一格。这套机制听起来挺严谨却被两位研究者Biham 和 Kocher在1994年的论文里找到了软肋已知明文攻击。打个比方就像你从一摞文件里捡到一张盖过章的白纸纸上的印痕清晰可辨。你不需要知道印章上刻的每一个字只要有一段足够清晰的印痕就能反推出印章的完整图案。对应到 ZipCrypto 上你不需要知道整个文件内容只要知道其中至少12个字节的原文其中8字节必须连续就能把三只齿轮的初始位置倒推出来。这三组数字一经恢复就相当于拿到了整把锁的备用钥匙不但能解开压缩包里所有用同一密码加密的文件还能顺手把密码换掉甚至反推出原始密码。这就是 bkcrack 的核心逻辑——它不猜密码它直接重建钥匙。bkcrack安装步骤两条路三分钟搞定拿到工具的方式有两种按自己的习惯选一条就行。路线一下载预编译包。官方发布页会提供 Ubuntu、macOS 和 Windows 三个平台的现成可执行文件解压即用适合不想碰编译的人。Windows 用户如果运行时提示缺少 DLL装一下微软的 Visual C 运行库即可。路线二从源码编译。想看看内部实现、或者想要最新代码就克隆仓库后交给 CMakegit clone https://gitcode.com/gh_mirrors/bk/bkcrack cd bkcrack cmake -S . -B build -DCMAKE_INSTALL_PREFIXinstall cmake --build build --config Release cmake --build build --config Release --target install编译完成后可执行文件会出现在install目录里。到这一步工具就算备好了。 顺手把命令加入 PATH后面用起来会顺手很多。核心流程4步走完一次破解接下来进入正题。整个破解过程可以拆成四个动作每一步都附上为什么要这么做。第1步让bkcrack帮你看压缩包先用查看模式确认包内情况bkcrack -L 加密包.zip输出会列出每个条目的加密方式、压缩方式、CRC32、原始大小和打包后大小。你的目光应该优先锁定加密方式为 ZipCrypto、压缩方式为 Store的条目——未压缩的文件是最好下手的目标因为它的密文和原文几乎一一对应攻击最快、最稳。如果包里只有 Deflate 压缩的条目后面会讲到难度会陡增。第2步凑出12字节已知明文这是整个流程里最考验侦察能力的一步。已知明文从哪来常见来源有三个文件格式特征很多格式有固定开头比如 PDF 以%PDF-起头某些脚本、配置、日志文件的开头你也能凭经验猜个八九不离十同款文件如果你能上网找到同名的原版文件比如某个开源软件的组件下载下来直接当明文用自己的备份同一份内容你以前可能导出过未加密的版本。把猜到的明文写进一个文件注意别多加换行符echo -n %PDF-1.4 plain.txt这里还有个小福利当密文直接从压缩包加载时bkcrack 会自动把加密头末尾的校验字节并入已知明文——等于白送你一个字节而且这个字节几乎可以确定是对的。第3步发起攻击等那三组数字明文就位就可以开跑了bkcrack -C 加密包.zip -c 目标文件.pdf -p plain.txt终端里会先经历一段 Z reduction用已知明文快速筛掉大量错误候选随后进入正式攻击。连续明文越多这一阶段越快。顺利的话输出里会冒出类似这样的三组十六进制数Keys: 8f3a9c21 7b4d5e60 1a2b3c4d 恭喜这三组数字就是加密的内部状态也就是我们说的备用钥匙。如果你在运行中手动中断了攻击输出会提示一个--continue-attack参数加上它就能从断点继续不用从头再来。第4步用密钥收尾三种姿势任选拿到密钥之后你至少有三种收尾方式按需选用姿势A直接去掉密码。生成一个内容相同、但没有加密的新压缩包bkcrack -C 加密包.zip -k 8f3a9c21 7b4d5e60 1a2b3c4d -D 无密码.zip姿势B换成你知道的新密码。适合还想继续用密码保护、只是要换一个自己记得住的bkcrack -C 加密包.zip -k 8f3a9c21 7b4d5e60 1a2b3c4d -U 新密码包.zip 我的新密码姿势C逐个解密文件。想保留原包结构就一条条解密bkcrack -C 加密包.zip -c 目标文件.pdf -k 8f3a9c21 7b4d5e60 1a2b3c4d -d 解密后.pdf如果解出来的内容仍是乱码别慌——那多半是 Deflate 压缩层还没拆掉。项目自带的 tools/inflate.py 脚本就是干这个的python3 tools/inflate.py 解密后.bin 最终文件.pdf顺带一提如果你好奇原始密码到底是什么也可以用密钥去倒查bkcrack -k 8f3a9c21 7b4d5e60 1a2b3c4d --bruteforce ?p --length 8..10?p表示可打印 ASCII 字符集8..10是长度范围。字符集越小、长度越短跑得越快——但反过来猜错了范围就永远找不到所以这步要对自己的记忆做合理预估。新手最容易踩的坑与避坑建议 ⚠️拿 AES 加密的包来试。工具会明确告诉你这不是它能处理的类型属于白忙一场。动手前先-L确认加密方式。明文不够12字节或8个连续字节凑不齐。攻击根本跑不起来。实在凑不够时可以用-x参数把散落在不同偏移处的已知字节补上比如-x 25 4b4f表示偏移25处有字节 0x4B 0x4F凑满12字节的总量要求。盯上了压缩过的条目。Deflate 压缩意味着密文对应的原文是压缩后的字节流而不是你熟悉的文件内容。除非你能找到原文件并用同样的压缩级别复现它否则很难下手。这就是为什么教程反复强调优先选 Store 条目。明文的偏移没对上。如果已知明文不是文件开头记得用-o指定偏移如果明文包含加密头的一部分偏移还可以是负数。对不上号时攻击要么报错要么算出一堆假密钥。密码找回阶段乱猜字符集。先用全字节集?b探一遍长度上限再逐步收窄到?p、?a比一上来就猜应该是字母数字稳妥得多。项目自带的 example/tutorial.md 里就完整演示了这种先宽后窄的思路。什么场景才适合动用它工具没有善恶用的人有。请务必记住bkcrack 只应该用来处理你自己拥有、或已获得明确授权的文件。典型正当场景包括恢复自己遗忘密码的档案、帮家人找回旧资料、受企业委托评估内部文档的加密强度。未经授权破解他人文件轻则侵权重则违法——这不是免责声明式的套话而是真实存在的法律风险。做安全审计时先拿到书面授权再动手对你和你的客户都是一种保护。如果你对攻击算法的细节感兴趣源码是最好的老师攻击主逻辑在 src/Attack.cppZIP 解析在 src/Zip.cpp密钥状态机在 src/Keys.cpp官方说明和限制清单分别见 doc/index.md 与 doc/limitations.md。最后想对你说的密码只是通往文件的一道门而 bkcrack 让你在丢钥匙之后还能照着一块印痕把门重新打开。下一次再对着密码输入框发呆时不妨先冷静下来想一想你手里有没有一段已知的内容如果有那扇门就还没关死。记得先确认加密类型再凑齐12字节明文然后按这4步走下去——你的文件大概率能找回来。【免费下载链接】bkcrackCrack legacy zip encryption with Biham and Kochers known plaintext attack.项目地址: https://gitcode.com/gh_mirrors/bk/bkcrack创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表