你好,问下VBA是怎么破解的,谢谢了

你好,问下VBA是怎么破解的,谢谢了,第1张

工作表密码可以用简单的用VBA代码破解,VBA工程密码可以用一些软件破解,而且这种软件不用连网即可工作,工作簿密码是最难的,如果知道密码的位数和其中某些位置某些数,可以用不联网的软件破解,但如果密码毫无规律且不知道位数的(超过7位普通破解软件穷举估计就是不可能的任务了)可以用某些联网的工具,至于它如何工作的原理一概不知道而且有泄密的危险。

VBA工程密码真的相当容易破解,当然了,不是靠自己,是靠软件,建议楼主用Advanced Office Password Recovery ,不过,补充一点,只是能拿到工程里面的东西,但原密码估计是不能知道的

可能是这个宏使用了附加控件,或引用,你在复制时可将包含这个文件的文件夹全部自制过去试试,

如果不行,就调VB编辑器,通过“工具”—“附加控件”,看宏使用了哪些附加控件,然后现通过Windows查找,找到所附加的控件,一同复制到新机子上。注册一下就可用了

如果宏加了密码。不能查看宏。请用下面的方法。

新建一个Execl文件。Alt+f11打开编辑器。将下面的这段代吗复制进去,然后运行。找到要破解的文件,去除其保护。

然后再像上面一样设置

——————————

Private Sub VBAPassword()

'你要解保护的Excel文件路径

Filename = ApplicationGetOpenFilename("Excel文件(xls & xla & xlt),xls;xla;xlt", , "VBA破解")

If Dir(Filename) = "" Then

MsgBox "没找到相关文件,清重新设置。"

Exit Sub

Else

FileCopy Filename, Filename & "bak" '备份文件。

End If

Dim GetData As String 5

Open Filename For Binary As #1

Dim CMGs As Long

Dim DPBo As Long

For i = 1 To LOF(1)

Get #1, i, GetData

If GetData = "CMG=""" Then CMGs = i

If GetData = "[Host" Then DPBo = i - 2: Exit For

Next

If CMGs = 0 Then

MsgBox "请先对VBA编码设置一个保护密码", 32, "提示"

Exit Sub

End If

If Protect = False Then

Dim St As String 2

Dim s20 As String 1

'取得一个0D0A十六进制字串

Get #1, CMGs - 2, St

'取得一个20十六制字串

Get #1, DPBo + 16, s20

'替换加密部份机码

For i = CMGs To DPBo Step 2

Put #1, i, St

Next

'加入不配对符号

If (DPBo - CMGs) Mod 2 <> 0 Then

Put #1, DPBo + 1, s20

End If

MsgBox "文件解密成功", 32, "提示"

End If

Close #1

End Sub

--------------------------

这个我没有试,你自己试试看吧。

新建一个Excel工作簿,Alt+F11 打开VBA编辑器,新建一个模块 ,复制以下代码,注意如提示变量未定义,则把Option Explicit行删除即可,经测试已经通过

'移除VBA编码保护

Sub MoveProtect()

Dim FileName As String

FileName = ApplicationGetOpenFilename("Excel文件(xls & xla),xls;xla", , "VBA破解")

If FileName = CStr(False) Then

Exit Sub

Else

VBAPassword FileName, False

End If

End Sub

'设置VBA编码保护

Sub SetProtect()

Dim FileName As String

FileName = ApplicationGetOpenFilename("Excel文件(xls & xla),xls;xla", , "VBA破解")

If FileName = CStr(False) Then

Exit Sub

Else

VBAPassword FileName, True

End If

End Sub

Private Function VBAPassword(FileName As String, Optional Protect As Boolean = False)

If Dir(FileName) = "" Then

Exit Function

Else

FileCopy FileName, FileName & "bak"

End If

Dim GetData As String 5

Open FileName For Binary As #1

Dim CMGs As Long

Dim DPBo As Long

For i = 1 To LOF(1)

Get #1, i, GetData

If GetData = "CMG=""" Then CMGs = i

If GetData = "[Host" Then DPBo = i - 2: Exit For

Next

If CMGs = 0 Then

MsgBox "请先对VBA编码设置一个保护密码", 32, "提示"

Exit Function

End If

If Protect = False Then

Dim St As String 2

Dim s20 As String 1

'取得一个0D0A十六进制字串

Get #1, CMGs - 2, St

'取得一个20十六制字串

Get #1, DPBo + 16, s20

'替换加密部份机码

For i = CMGs To DPBo Step 2

Put #1, i, St

Next

'加入不配对符号

If (DPBo - CMGs) Mod 2 <> 0 Then

Put #1, DPBo + 1, s20

End If

MsgBox "文件解密成功", 32, "提示"

Else

Dim MMs As String 5

MMs = "DPB="""

Put #1, CMGs, MMs

MsgBox "对文件特殊加密成功", 32, "提示"

End If

Close #1

End Function

将你要破解的Excel文件关闭,切记一定要关闭呀!然后新建一个Excel文件

打开新建的这个Excel,按下alt+F11,打开vb界面,新建一个模块 

将代码复制到这个模块中,代码如下:

Private Sub VBAPassword() '你要解保护的Excel文件路径

Filename = ApplicationGetOpenFilename("Excel文件(xls & xla & xlt),xls;xla;xlt", , "VBA破解")

If Dir(Filename) = "" Then

MsgBox "没找到相关文件,清重新设置。"

Exit Sub

Else

FileCopy Filename, Filename & "bak" '备份文件。

End If

Dim GetData As String 5

Open Filename For Binary As #1

Dim CMGs As Long

Dim DPBo As Long

For i = 1 To LOF(1)

Get #1, i, GetData

If GetData = "CMG=""" Then CMGs = i

If GetData = "[Host" Then DPBo = i - 2: Exit For

Next

If CMGs = 0 Then

MsgBox "请先对VBA编码设置一个保护密码", 32, "提示"

Exit Sub

End If

Dim St As String 2

Dim s20 As String 1

'取得一个0D0A十六进制字串

Get #1, CMGs - 2, St

'取得一个20十六制字串

Get #1, DPBo + 16, s20

'替换加密部份机码

For i = CMGs To DPBo Step 2

Put #1, i, St

Next

'加入不配对符号

If (DPBo - CMGs) Mod 2 <> 0 Then

Put #1, DPBo + 1, s20

End If

MsgBox "文件解密成功", 32, "提示"

Close #1

End Sub

然后点击运行按钮,如图所示,绿色的小三角就是

你会看到,打开了一个文件夹,找到我们要破解的这个文件,然后点击打开

稍等几分钟你就会看到破解成功的提示了

再次打开你要破解的这个文件,你会看到这里已经可以查看代码了哈哈

Sub MoveProtect()

    Dim FileName As String

    FileName = ApplicationGetOpenFilename("Excel文件(xlsm & xlam),xlsm;xlam", , "VBA破解")

    If FileName = CStr(False) Then

       Exit Sub

    Else

       VBAPassword FileName, False

    End If

End Sub

Private Function VBAPassword(FileName As String, Optional Protect As Boolean = False)

      If Dir(FileName) = "" Then

         Exit Function

      Else

         FileCopy FileName, FileName & "bak"

      End If

      Dim GetData As String  5

      Open FileName For Binary As #1

      Dim CMGs As Long

      Dim DPBo As Long

      For i = 1 To LOF(1)

          Get #1, i, GetData

          If GetData = "CMG=""" Then CMGs = i

          If GetData = "[Host" Then DPBo = i - 2: Exit For

      Next

      If CMGs = 0 Then

         MsgBox "请先对VBA编码设置一个保护密码", 32, "提示"

         Exit Function

      End If

      If Protect = False Then

         Dim St As String  2

         Dim s20 As String  1

         '取得一个0D0A十六进制字串

         Get #1, CMGs - 2, St

         '取得一个20十六制字串

         Get #1, DPBo + 16, s20

         '替换加密部份机码

         For i = CMGs To DPBo Step 2

             Put #1, i, St

         Next

         '加入不配对符号

         If (DPBo - CMGs) Mod 2 <> 0 Then

            Put #1, DPBo + 1, s20

         End If

         MsgBox "文件解密成功", 32, "提示"

      Else

         Dim MMs As String  5

         MMs = "DPB="""

         Put #1, CMGs, MMs

         MsgBox "对文件特殊加密成功", 32, "提示"

      End If

      Close #1

End Function

使用UltreEdit之类的十六进制编辑程序打开XLS文件,在文本模式下查找“[Host Extender Info]”(也可只查Host),切换到十六进制模式,将前面的“DBP="XXXXXXX”的DBP关键字改成CBP,将“GC= "XXXXXXX”的GC关键字改成CC,使Excel不能识别此二项!存盘即可!!!

用Excel打开此文件,忽略错误提示,进入VBA编辑器,做一次存盘 *** 作即可修复错误提示。

以上就是关于你好,问下VBA是怎么破解的,谢谢了全部的内容,包括:你好,问下VBA是怎么破解的,谢谢了、Excel表工具创建宏里出现VBAProject密码怎么破解、怎么破解excel vba 密码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9868163.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存