如何破解 DMG/RAR/ZIP/7Z 文件的密码?

概述

最近笔者遇到一个问题,下载的 DMG 带密码,但是下载来源已经不再提供。在网上搜索了一下,同类情况其实挺多的,比如自己手痒给 DMG 弄了个密码把学习资料或者珍贵回忆给锁起来,后来把密码忘了;又或者被朋友恶搞把毕业论文或者辛苦写就的材料给锁了,结果朋友把密码给忘了,这种情况建议先考虑换一个朋友😂,再来想解锁 DMG 的事儿。

总之,这是一个很让人抓狂上火的问题。

经笔者一番查资料研究,基本上只有以下几种方法:

  • 自己加密的文件,把能想起来的密码全部试个遍,因为不存在多次试错后被彻底锁定的情况,所以能想起来的组合全部都试一下;
  • 网上下载的文件,可以先尝试比较常见的密码,比如 abc123、admin、hello、qwe123 等等;如果能找到下载源站,也可以看一下网站的说明,或试一下输入网站的域名;
  • 以上方法都不行的,就来到今天要说的主题了。这也是一个通用的基本解决方法,和破解忘记密码的 RAR、ZIP、7Z 差不太多,就是穷举法。即通过不断枚举字母数字符号的组合,尝试验证密码是否相符。

乍一看原理,虚空穷举是个好方法,毕竟不用担心试错太多被彻底锁定,起码解锁有了一丝希望,但,其实在不知道密码长度和包含字符内容的情况下,穷举是非常耗费时间的,下面是笔者在 7-Zip 的帮助文档里看到的,给大家感受一下:

上图中的案例使用穷举法对已设置密码的档案进行暴力破解,实际密码是小写的拉丁文字,并打乱顺序。假设一个用户以每秒十个字符的速度进行穷举破解,而专业的破解组织以每秒一兆个字符的速度进行穷举破解。并且案例中假定计算机每两年的处理性能会翻一番,计算性能增长后密码破解所用的时间。「注意」上述案例中的密码只是字母而已,如果算上数字,其它字符以及十位以上的长度,基本上等于不可能。综上所述,穷举法虽然原理和实施上没有问题,只是因为个人计算机性能比较拉胯,所以也只剩一丝希望。

但是,对于我们明确知道有限定条件的情况,比如知道有几位,或者知道只有数字或字母或有特定的符号的情况,穷举法就有用武之地,本文下面将介绍 macOS 下命令行的操作方法。

 

安装 HomeBrew

Homebrew 是一款 macOS 平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,不需要管软件包依赖,要安装 HomeBrew,我们需要使用“终端”,按下 ⌘ + 空格,输入“终端”,打开运行,输入以下代码安装:

#这是一个脚本,但是可以安装完整版 HomeBrew
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

这个部分可参考知乎文章:HomeBrew 国内如何高速自动安装,这里就不赘述了。

 

安装 John The Ripper

John The Ripper 是一个开源软件,用于许多操作系统的密码安全审核和密码恢复。 Ripper Jumbo 支持数百个哈希和密码类型,包括:Unix Flavors 的用户密码(Linux,BSD,Solaris,AIX,QNX 等),macOS,Windows,组件(例如 Notes/Domino)和数据库服务器(SQL,LDAP 等);网络流量捕获(Windows 网络身份验证,WiFi WPA-PSK 等);加密私钥(SSH,Gnupg,CryptoCurrency 钱包等),文件系统和磁盘(macOS .dmg 文件,Windows BitLocker 等),档案(ZIP,RAR,7Z)和文档文件(PDF ,Office 等)。要安装 John The Ripper,在终端输入:

$ brew install john-jumbo

如果速度太慢则需要给终端设置代理通道,这个部分不宜演示,八仙过海各显神通吧😂。

安装完成后,输入以下内容,找到 John Ripper 的工具信息:

$ ls -1 /usr/local/Cellar/john-jumbo/1.9.0/share/john/ | head -n 10
1password2john.py
7z2john.pl
DPAPImk2john.py
SIPdump
adxcsouf2john.py
aem2john.py
aix2john.pl
aix2john.py
alnum.chr
alnumspace.chr

「注意」上面的演示中不带 $ 开头的行是输出结果。

这个命令其实只列出了头部 10 个文件,John The Ripper 其实提供了非常丰富的工具集。这样你就准备好了,进行下一步。

 

生成 Hashes(哈希值)

当进行密码破解时,John The Ripper 会破解密码的哈希值,而不是直接破解文件。要生成哈希值文件,我们要使用上一步中使用文件夹中的工具。

对于 DMG 文件,我们将加密的 .dmg文件传递给 DMG2John 命令并将它的哈希值输出到 .hash 文件。

$ /usr/local/Cellar/john-jumbo/1.9.0/share/john/dmg2john 加密文件.dmg > 文件哈希值.dmg.hash
加密文件.dmg (DMG v2) successfully parsed, iterations count 277777

「注意」上面的命令中 加密文件.dmg 就是需要破解密码的文件,这个文件名和路径需要根据你的实际情况填写,也可以直接把文件拖入终端自动补全。文件哈希值.dmg.hash 是软件根据你提供的 dmg 生成的哈希值文件,命名随意,其它不用管。

对于其它类型的文件,可以生成哈希值文件的其他工具分别是:

  • RAR: rar2john_cmd
  • PDF: pdf2john.pl
  • ZIP: zip2john
  • 7Z: 7z2john.pl

例如,如果是要破解 RAR 文件,那么命令就是:

$ /usr/local/Cellar/john-jumbo/1.9.0/share/john/rar2john 加密文件.rar > 文件哈希值.rar.hash

 

破解哈希值

最后一步是破解哈希值。这里可以直接使用 John 工具进行。为确保 macOS 调用 GPU 进行破解(因为这种计算 GPU 效率是 CPU 的好多倍),务必在命令中指定 -opencl 后缀,例如,破解对象是 dmg 的话,加就入 dmg-opencl,能明显提升破解效率。

$ john --format=dmg-opencl 文件哈希值.dmg.hash
Device 2: AMD Radeon RX 5700XT Compute Engine
Using default input encoding: UTF-8
Loaded 1 password hash (dmg-opencl, Apple DMG [PBKDF2-SHA1 3DES/AES OpenCL])
Cost 1 (iteration count) is 277777 for all loaded hashes
Cost 2 (version) is 2 for all loaded hashes
Error creating binary cache file: No such file or directory
Press 'q' or Ctrl-C to abort, almost any other key for status
QWE_123 (加密文件.dmg)
1g 0:00:00:20 DONE (2021-03-24 13:53) 0.08977g/s 4546p/s 4546c/s 4546C/s
Use the "--show" option to display all of the cracked passwords reliably
Session completed

「注意」上面的演示中不带 $ 开头的行是输出结果,下同。

可以在输出信息中看到,这个 加密文件.dmg 经过一系列破解后得出了密码 QWE_123,你可以使用下面的命令去掉运行信息直接显示结果:

$ john --show 文件哈希值.dmg.hash
/Users/heipg/Desktop/加密文件.dmg : QWE_123 :::: 加密文件.dmg

此时即可挂载 dmg 文件进行验证。

 

提高效率

在上面的例子中笔者没有指定字典和规则,所以实际运行下来大概要 6 个月左右的时间程序才能破解密码,说是破解,不如说是猜了半年终于猜中差不多😂。

那么没有提升效率的方法呢?

已有1575次阅读

 

尾声

至此密码破解之虚空穷举法😂演示完毕,是一个有效但非常笨的办法。如果你有更好的方法,或有其他建议,欢迎分享在评论里。

 

0. 本站所有资源解压密码均为 heipg.cn
1. 本站资源收集于网络,仅做学习和交流使用,请于下载后24小时内删除。如果你喜欢我们推荐的软件,请购买正版支持作者。
2. 如有无法下载的链接,联系:admin#heipg.cn,或到QQ群进行反馈,我们将及时进行处理。
3. 本站发布的内容若侵犯到您的权益,请联系站长删除,联系方式:admin#heipg.cn,我们将第一时间配合处理!

黑苹果星球 » 如何破解 DMG/RAR/ZIP/7Z 文件的密码?

2 评论

  1. 半年也太久了

  2. 这种情况基本直接放弃系列。

发表评论