#excel #password #vba #sha-1 #command-line-tool

bin+lib unlock_excel

一个用于检查或删除 Excel 文件 VBA 保护状态的简易命令行工具

5 个版本

0.2.2 2024 年 3 月 5 日
0.2.1 2024 年 3 月 3 日
0.2.0 2024 年 3 月 1 日
0.1.1 2024 年 2 月 16 日
0.1.0 2024 年 2 月 15 日

1608命令行工具 中排名

Download history 11/week @ 2024-03-12 21/week @ 2024-04-02 61/week @ 2024-04-16

272 每月下载次数

MIT 许可证

8.5MB
2.5K SLoC

包含 (压缩文件,17KB) tests/data/xlsb/Locked_with_macro.xlsb,(压缩文件,17KB) Locked_with_macro_and_complex_password.xlsb,(压缩文件,17KB) tests/data/xlsb/Unlocked_with_macro.xlsb,(压缩文件,8KB) tests/data/xlsb/Unlocked_no_macro.xlsb

Unlock Excel

一个小型的命令行工具,用于读取或删除 Excel 文件中的 VBA 保护。

它适用于以下所有文件:

  • xls: Excel 97-2003 工作簿
  • xlsm: Excel 宏启用工作簿
  • xlsb: Excel 二进制工作簿

由于 xlsx 文件默认不包含任何 VBA,因此它不会与 xlsx 文件一起工作。

这是一个相当粗糙的工具,因此请随意报告任何问题。

使用方法

读取文件的保护状态

$./unlock_excel read FILENAME

通常,如果有密码,密码将是密码的 SHA1 哈希加上随机盐。将打印出哈希结果和盐。这些可以输入到密码恢复工具(如 hashcatJohn the Ripper)以解密密码。

可选地,您可以传递 -d 标志,让应用程序尝试使用 1.7百万个常见密码列表进行解密: $ ./unlock_excel read -d FILENAME

删除文件的保护状态

$./unlock_excel remove FILENAME

默认情况下,这将保存到原始文件的副本,文件名后追加 '_unlocked'。如果您希望就地更新文件,请传递 - 标志: $ ./unlock_excel remove - FILENAME

致谢

本文的灵感来源于 Didier Stevens。他在那篇帖子中没有链接到代码,但可以在 这里 找到。

路线图

以下是一些可能在未来添加的功能列表

  • 改进输出格式。当前输出略显原始,我并未过多考虑
  • 同时移除工作表保护。这并不太难做
  • 改进内部密码解密。一方面,我们可以使用Rayon来并行化非散列尝试并尝试更多选项。感觉我们正在重新发明密码破解软件,这可能是这个小型工具不恰当的做法

警告

本工具仅设计用于让用户访问他们有权读取和编辑的文件。例如,获取访问已丢失密码的工作旧文件的权限。

不允许使用本工具违反任何法律

依赖项

~9MB
~159K SLoC