使用VBA进行Excel电子表格密码破解

cod*_*rix 5 excel vba password-recovery

我尝试编写一个类似于我用来破解Excel工作表密码的代码的密码破解程序代码但我不确定我是否正确执行 - 当我尝试此代码时它提示我输入密码但没有输入密码到文本输入框.

请告诉我我做错了什么.

谢谢

Sub testmacro()
Dim password
Dim a, b, c, d, e, f, g, h, i, j, k, l
SendKeys "^r"
SendKeys "{PGUP}"

For a = 65 To 66
    For b = 65 To 66
        For c = 65 To 66
            For d = 65 To 66
                For e = 65 To 66
                    For f = 65 To 66
                        For g = 65 To 66
                            For h = 65 To 66
                                For i = 65 To 66
                                    For j = 0 To 255
                                        password = Chr(a) & Chr(b) & Chr(c) & Chr(d) & Chr(e) & Chr(f) & Chr(g) & Chr(h) & Chr(i) & Chr(j)
                                        SendKeys "{Enter}", True
                                        MsgBox password
                                        SendKeys password, True
                                        SendKeys "{Enter}", True

                                        On Error GoTo 200
                                        MsgBox password
                                        GoTo 300
200                                         password = ""

                                    Next
                                Next
                            Next
                        Next
                    Next
                Next
            Next
        Next
    Next
Next
300 MsgBox "exited"
End Sub
Run Code Online (Sandbox Code Playgroud)

Jac*_*ern 7

您的代码未正确执行的原因是您尝试在受密码保护的execel文件上执行宏,这是不允许的.这是因为在输入密码之前,宏不会在excel工作簿上执行 - 因此在您执行宏代码之前会提示输入密码.

这篇SO文章也解释了这一点,更详细:Excel VBA - 自动输入密码

编辑

2003年


如果您尝试访问工作簿而不是工作表,则2003和更早版本中有多种方法.在快速perusual之后,此blogspot 代码示例条目似乎具有用于取消保护2003工作簿的工作版本.

此外,在相关的说明中,如果您进一步退回并试图解锁VBA项目,这篇SO文章似乎可以充分解决这个问题.

2007年


如果你只是试图"蛮力"取消保护客户的工作簿,一位名叫杰森的绅士已在他的博客中概述了这样一个过程.