工作表密码可以用简单的用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 密码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)