第一次遇到加密ZIP文件打不开的时候,我盯着屏幕发了半小时呆。作为技术小白,当时根本不知道世界上还有fcrackzip这种神器。它就像一把专门对付ZIP密码的瑞士军刀,短小精悍却威力十足。这个命令行工具在Linux和Mac系统上运行,通过暴力破解和字典攻击两种方式,能帮你找回遗忘的压缩包密码。
记得去年我帮朋友恢复老照片压缩包,用fcrackzip试出密码那一刻,朋友激动得差点把咖啡打翻在键盘上。工具本身只有几百KB大小,但支持从简单数字组合到复杂字符的各种破解场景。最让我惊喜的是它的效率——在普通笔记本上,6位纯数字密码不到10分钟就能跑完。
在Mac上安装就像喝杯奶茶那么简单。打开终端输入:
bash复制brew install fcrackzip
Homebrew会自动搞定所有依赖。记得先更新brew仓库:
bash复制brew update && brew upgrade
有次我在M1芯片的Mac上安装时遇到权限问题,加上sudo就解决了:
bash复制sudo brew install fcrackzip
APT包管理器让安装变成一行命令:
bash复制sudo apt-get update && sudo apt-get install fcrackzip
如果提示找不到包,可能是源没更新。我遇到过旧版Ubuntu需要先添加universe仓库:
bash复制sudo add-apt-repository universe
sudo apt-get update
CentOS用户得走点弯路,就像我去年在服务器上折腾的经历。首先下载forensics工具库:
bash复制wget -P /tmp https://forensics.cert.org/cert-forensics-tools-release-el7.rpm
安装仓库源:
bash复制sudo rpm -Uvh /tmp/cert-forensics-tools-release*rpm
最后安装工具:
bash复制sudo yum --enablerepo=forensics install fcrackzip
记得检查是否安装成功:
bash复制fcrackzip --version
这个参数决定了密码猜测的范围,就像配钥匙时选择齿形组合。基本格式:
bash复制-c 'aA1!'
a:小写字母a-zA:大写字母A-Z1:数字0-9!:特殊字符!:$%&/()=?{[]}+*~#实战中发现,很多人密码喜欢用日期,可以这样限定:
bash复制-c '1' -l 6-8 # 只尝试6-8位纯数字
有次破解同事的密码,用-c 'aA1'试了3小时没结果,后来发现他用了中文拼音,最后用-c 'a:'加上自定义字符才成功。
这个参数直接影响破解时间。比如已知密码是4-6位:
bash复制-l 4-6
我曾用服务器跑8位混合密码,足足跑了三天。后来发现可以先试短密码:
bash复制-l 1-3 # 先试简单组合
-l 4-6 # 再试中等长度
最重要的参数没有之一!不加这个参数,工具跑完可能根本不显示结果:
bash复制-u # 用unzip验证密码有效性
有次我忘了加-u,看着进度条走完却找不到密码,差点砸键盘。后来发现密码其实已经破解成功,只是没显示出来。
先创建一个测试文件:
bash复制echo "test content" > secret.txt
zip -rP a123 test.zip secret.txt
开始破解:
bash复制fcrackzip -b -c 'a1' -l 3-5 -u test.zip
参数说明:
-b:启用暴力破解模式-c 'a1':尝试小写字母+数字-l 3-5:密码长度3到5位实测这个组合在我的MacBook Pro上破解3位密码平均只要12秒。
遇到复杂密码时,可以分阶段尝试:
bash复制# 第一阶段:纯数字
fcrackzip -b -c '1' -l 1-6 -u file.zip
# 第二阶段:数字+小写字母
fcrackzip -b -c 'a1' -l 1-8 -u file.zip
# 第三阶段:全字符集
fcrackzip -b -c 'aA1!' -l 1-10 -u file.zip
建议用nohup放到后台运行:
bash复制nohup fcrackzip -b -c 'aA1' -l 6-8 -u file.zip > result.log &
推荐使用rockyou.txt,解压后约145MB:
bash复制wget https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt
我常用字典还有:
darkweb2017-top10000.txt:常见密码TOP1万custom_words.txt:自定义关键词基本命令:
bash复制fcrackzip -D -u -p rockyou.txt test.zip
有次破解公司老文档,用默认字典没成功。后来收集了部门同事的名字、生日做成自定义字典,2小时就搞定了。
合并多个字典:
bash复制cat dict1.txt dict2.txt > combined_dict.txt
去重排序:
bash复制sort combined_dict.txt | uniq > final_dict.txt
添加常见变体:
bash复制sed 's/$/123/' final_dict.txt > variants.txt
同时破解多个zip文件:
bash复制for z in *.zip; do fcrackzip -D -u -p rockyou.txt "$z"; done
输出结果到文件:
bash复制fcrackzip -b -c 'a1' -l 4-6 -u archive.zip > result.txt 2>&1
使用--modulo参数分布式计算:
bash复制# 第一台机器
fcrackzip -b -c 'aA1' -l 8 --modulo 1/4 -u file.zip
# 第二台机器
fcrackzip -b -c 'aA1' -l 8 --modulo 2/4 -u file.zip
调整优先级:
bash复制nice -n 19 fcrackzip -b -c 'a1' -l 6 -u file.zip
问题1:进度不显示
解决方法:加-v参数查看详细进度
bash复制fcrackzip -b -v -c '1' -l 4 -u file.zip
问题2:CRC校验错误
可能是文件损坏,先修复:
bash复制zip -F broken.zip --out fixed.zip
问题3:内存不足
使用更小的字符集分段运行:
bash复制fcrackzip -b -c '1' -l 1-4 -u bigfile.zip
fcrackzip -b -c 'a' -l 1-4 -u bigfile.zip
去年帮某出版社恢复十年前的图书素材包,密码是8位混合字符。我先用字典攻击试了常见组合无果,后来通过以下步骤解决:
bash复制for y in {2000..2010}; do echo "publisher$y"; done > custom.txt
bash复制sed 's/$/!/' custom.txt >> custom.txt
bash复制fcrackzip -D -u -p custom.txt -l 8-10 book_materials.zip
跑了6小时后成功找到密码:"publisher2008!"。关键是要根据目标特征定制破解策略。