作者: scz
创建: 2023-12-22 20:00
以前不混电子书圈,没刻意关注过这个江湖。2023年7月首次接触国内电子书圈,才知道「读秀库」是啥,根据SS号找电子书的ZIP包。当时百度秒传还能用,下过一些回忆录,包括《星火燎原》系列。次数多了,不时碰上ZIP有密码。对此,书圈有现成解决方案,能找到ZIP密码穷举工具以及密码字典,小白直接用就好。我不太敢用VirusTotal标红的工具,不是说肯定有猫腻,仅仅是习性使然。用「易语言」开发的工具,VT标红很常见。
起初写了zcrack.bat与zcrack.sh,调用7z进行ZIP密码穷举,此法对读秀库ZIP包场景,足矣。因为挂字典穷举,我的小字典只有500多个密码,再慢也慢不到哪儿去。别看这么小的字典,我自己下的书,从未失手过。凡事有例外,有次看别人下的书,小字典不够用,只能挂大字典,zcrack.bat就太慢了。
Pdg2Pic作者马健开发过Zip2Dir.exe,它识别名为Zip2Dir.pwd的密码字典,穷举成功后自动解压。这是我测过的穷举ZIP密码最快的工具,对GBK编码的汉字密码支持得也很好,其作者马健也是Pdg2Pic作者。
有些工具,对汉字密码支持得一塌糊涂,加载密码字典后,其中的汉字密码显示成乱码,强行穷举,并不会成功。虽说大多数电子书ZIP未用汉字密码,但我真碰上过,比如SS号10336213这本,《星火燎原》中的一本,Zip2Dir.exe解压无误。你可以用自己的工具试试这本,能解,说明工具合格,不能解,赶紧扔了,啥破玩意儿。
Zip2Dir.exe缺点是不显示穷举成功的ZIP密码。绝大多数人只关心解压结果,不需要知道穷举成功的ZIP密码,少数好奇心强的人有此需求,比如我。
zcrack.bat挂大字典时太慢,我就想找个Python版实现。这种需求实在太常见,以至于互联网上有许多现成的,比如:
https://www.geeksforgeeks.org/how-to-brute-force-zip-file-passwords-in-python/
https://github.com/Korozin/ZIP-Password-Cracker/blob/main/PyZIP-Crack-CLI.py
https://didierstevens.com/files/software/zipdump_v0_0_26.zip
这几个都可以试试,我没用过它们,但你要写自己的工具时,可以参考,尤其是最后这个zipdump。
提供一个cmd中执行的命令行版本的zcrack.exe,用法如下:
Usage: zcrack.exe <zipfile> <passfile> [m]zcrack.exe some_0.zip password.txt
zcrack.exe some_1.zip password_2.txt m
zcrack.exe some_2.zip password_2.txt m
命令行参数依次指定待穷举ZIP文件、密码字典文件;若尾部指定m,实时显示穷举进度,快速变化的数字是字典文件的行号,可以不指定m。若成功找到密码,显示:
(count, pass)
pass就是找到的密码,count是pass在字典文件中的行号。
7天有效期的临时下载链接如下,过期不补:
https://gofile.io/d/2MtnkI
zcrack.7z中有如下内容:
readme.txt // 使用说明,可删除
zcrack.exe // 主程序
zcrack.sha256 // 主程序的SHA256,可删除
Cryptodome\ // 依赖库,可用自己的
password.txt // 小字典,可用自己的
password_2.txt // 大字典,可用自己的
some_0.zip // 测试用例,可删除
some_1.zip // 测试用例,可删除
some_2.zip // 测试用例,可删除
就我这种分发方式,zcrack.sha256毫无意义,此外,Cryptodome目录下一堆pyd呢,但我还是放个SHA256,别较劲。
08928239e27cc523c7abcf01a44d5560dcae9c6993e57ca56bbca6fe2cdb0472 zcrack.exe
password.txt要求是ANSI/DOS格式,以\r\n换行,支持GB2312/GBK/GB18030汉字密码,不支持UTF-8汉字密码,不支持UNIX格式的单个\n换行。不符合要求的password.txt会导致穷举失败,务必转成工具所要求的格式。
本工具只应对特定电子书ZIP场景,非通用ZIP密码穷举工具,大字典也很有限,没有"brute force without wordlist"模式,跑不出来就是跑不出来。
john可以挂字典跑ZIP密码,支持汉字密码,不要低于1.9.0版,速率还可以。至于hashcat这些就算了,你不嫌重型么,多大点事儿啊。
zcrack.exe是用Python写的,没有加壳,只是为了便携使用,打包成EXE。网络安全行业的书友们,有兴趣者,可逆向工程并反编译出Python源码。