本文目录一览:
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
access 查看vba 工程 提示 “工程不可查看”请问如何解决?
看情况。
1、如果是MDE格式,即已经编译好的Access文件一般都不能解决的了,除非对方在编译之前忘了设置“设计模式”,还可以从VBE界面,点击“设计模式”而返回(这个可能性应该不高)。
2、MDB格式。也就是仅仅加密代码窗口,可以用工具破解。如果是这种的话,可以把文件发给我试试(roy.chan@coats.com)
Excel 如何破解工程不可查看
方法一(共用级锁定)
1、先对excel档进行一般的vbaproject”工程密码保护。
2、打开要保护的档,选择∶工具---保护---保护并共用活页簿---以追踪修订方式共用--输入密码--保存档。 完成後,当你打开“vbaproject”工程属性时,就将会提示∶“工程不可看!”
方法二(推荐,破坏型锁定)
用16进制编辑工具,如winhex、ultraedit-32(可到此下载)等,再历害点的人完全可以用debug命令来做......用以上软体打开excel档,查找定位以下地方∶
id="{00000000-0000-0000-0000-000000000000}" 注∶实际显示不会全部为0
此时,你只要将其中的位元组随便修改一下即可。保存再打开,就会发现大功告成!
当然,在修改前最好做好你的文档备份。至於恢复只要将改动过的地方还原即可(只要你记住了呵呵)。
破解方面,有网友说将CMG=,DPB=和GC=后的"="替换为"."也可以的,我已测试过的确可以,这样更省事点。用16进制编辑工具,如winhex、ultraedit-32打开X.xls文件,查找ID=......, 或到文件尾查看,找到即可。改其中的任意一位,存盘就可达到目的,注意:留有备份文件
望采纳,谢谢!
lumnSize ThenFieldsExists = TrueElseIf blnDisplayAlerts = True ThenMsgBox Ws.Name Chr$(34) vntHeader(1, I) Chr$(34) "与标准字段名"
"Private Function FieldsExists") = True Then Resume NextEnd FunctionPublic Function FileExists(s
s") = True Then Resume NextEnd FunctionPublic Function FileExists(strFileName As String) As Boolean''''功能:判断文
可能性应该不高)。2、MDB格式。也就是仅仅加密代码窗口,可以用工具破解。如果是这种的话,可以把文件发给我试试(roy.chan@coats.com)Excel 如何破解工程不可查看方法一(共用级
"过程时发生错误。" vbCrLf _"错误时间:" Now vbCrLf _"错误代号:" Err.Number vbCrLf _"错误原因:" E