Excel 请问如何破解VBA工程不可查看
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Excel 请问如何破解VBA工程不可查看相关的知识,希望对你有一定的参考价值。
BA代码作为知识产权的重要内容,越来越受到高度重视。但VBA工程的保护相对而言是比较脆弱的。我这儿有一份文件,是通过加密技术将VBA工程锁定为不可查看,全“程”含一个标准模块和三个过程约75行代码,作为测试文档,求破解。
VBA工程保护密码为"shourou".
如果您对此感兴趣,欢迎破解!
注意:应能完整破解该工程,即还原该VBA工程,而非仅仅读取或者查看到其中的过程名称或者模块名称。
代码还是能dump出来的
Module: ----------------------------------- mdlVBA -----------------------------------
Attribute VB_Name = "mdlVBA"
Option Explicit ''''显式变量声明
Option Private Module ''''外部工程禁用
Public Const gstrUSER_MSG_TITLE As String = "ExcelHome.Net"
Private Function FieldsExists(intWsIndex As Integer, Optional blnDisplayAlerts As Boolean = True) As Boolean
''''功能:检查指定工作表的字段名称与内置字段名称是否匹配
''''参数:intWsIndex:=工作表索引;blnDisplayAlerts:=不匹配时是否弹出警告对话框
Dim Ws As Excel.Worksheet
Dim astrFieldNames() As String
Dim vntHeader As Variant
Dim I As Integer
Dim intColumnSize As Integer
On Error GoTo ErrorHandler
Select Case intWsIndex
Case 1
Set Ws = Sheet1
intColumnSize = 10 ''''字段数量
ReDim astrFieldNames(1 To intColumnSize)
astrFieldNames(1) = "OfficeID"
astrFieldNames(2) = "OfficeName"
astrFieldNames(3) = "Region"
astrFieldNames(4) = "Province"
astrFieldNames(5) = "City"
astrFieldNames(6) = "Address"
astrFieldNames(7) = "StartData"
astrFieldNames(8) = "ExpiryData"
astrFieldNames(9) = "OfficeArea"
astrFieldNames(10) = "Reviser"
End Select
vntHeader = Ws.Cells(1, 1).Resize(1, intColumnSize).Value ''''标题行
For I = 1 To intColumnSize
If Not StrComp(vntHeader(1, I), astrFieldNames(I), vbTextCompare) = 0 Then Exit For
Next
If I > intColumnSize Then
FieldsExists = True
Else
If blnDisplayAlerts = True Then
MsgBox Ws.Name & Chr$(34) & vntHeader(1, I) & Chr$(34) & "与标准字段名" & Chr$(34) & astrFieldNames(I) & Chr$(34) & "不匹配。", vbExclamation, gstrUSER_MSG_TITLE
End If
End If
On Error GoTo 0
Exit Function
ErrorHandler:
If ExcelHomeErrorHandler("Private Function FieldsExists") = True Then Resume Next
End Function
Public Function FileExists(strFileName As String) As Boolean
''''功能:判断文件或者文件夹是否存在
''''参数:strFileName:=待考查的文件或者文件夹的完整路径
FileExists = (Len(Dir(strFileName, vbDirectory)) > 0)
End Function
Public Function ExcelHomeErrorHandler(strProcName As String) As Boolean
''''功能:错误处理程序
''''参数:strProcName:=出错的过程名称
Dim strErrMessage As String
strErrMessage = "程序运行在" & Chr$(34) & strProcName & Chr$(34) & "过程时发生错误。" & vbCrLf & _
"错误时间:" & Now & vbCrLf & _
"错误代号:" & Err.Number & vbCrLf & _
"错误原因:" & Err.Description
Err.Clear ''''清除错误
If MsgBox(strErrMessage & vbCrLf & "是否继续?", vbExclamation + vbYesNo, gstrUSER_MSG_TITLE) = vbYes Then
ExcelHomeErrorHandler = True
Else
With Application
.StatusBar = False ''''清空状态栏
.DisplayAlerts = True ''''恢复警告对话框
.EnableEvents = True ''''恢复事件
.ScreenUpdating = True ''''恢复屏幕更新
End With
ExcelHomeErrorHandler = False
End If
End Function 参考技术A 发来帮你破解,那都不是事儿。 参考技术B 取消 共享 即可
excel2013关于VBA密码破解的教程
参考技术A在 Excel 中可能有些重要数据需要修改,但遗憾的是忘记了密码。这个时候就需要进行对文件密码的破解。下面是我带来的关于excel2013关于VBA密码破解的教程,欢迎阅读!
excel2013关于VBA密码破解的教程教程1:将你要破解的Excel文件关闭,切记一定要关闭呀!然后新建一个Excel文件
excel2013关于VBA密码破解的教程图1
教程2:打开新建的这个Excel,按下alt+F11,打开vb界面,新建一个模块,如图所示
excel2013关于VBA密码破解的教程图2
教程3:将代码复制到这个模块中,代码如下:
Private Sub VBAPassword() '你要解保护的Excel文件路径
Filename = Application.GetOpenFilename("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
excel2013关于VBA密码破解的教程图3
教程3:然后点击运行按钮,如图所示,绿色的小三角就是
excel2013关于VBA密码破解的教程图4
教程4:你会看到,打开了一个文件夹,找到我们要破解的这个文件,然后点击打开
excel2013关于VBA密码破解的教程图5
教程5:稍等几分钟你就会看到破解成功的提示了
excel2013关于VBA密码破解的教程图6
以上是关于Excel 请问如何破解VBA工程不可查看的主要内容,如果未能解决你的问题,请参考以下文章