VBAProject密码清除 for EXCEL2003
VBAProject密码清除 for EXCEL2003
下载了多个工具都是浮云 ,只有这个好用
文章转载于网络
在空白excel文档vba里面插入模块,运行此模块
Option Explicit
Const LANG_ENGLISH As Integer = 9
Type CommandLineInfo
Name As String
Value As String
StartPos As Long
End Type
Sub main()
Dim fName As String
fName = Application.GetOpenFilename("Excel文件(xls ; xla),*.xls;*.xla", , "选择要破解的EXCEL2003包含VBA密码的文件")
If fName = "False" Then Exit Sub
Dim fNewName As String
fNewName = MoveProtect(fName)
If Len(fNewName) Then
If MsgBox("转换完成,另存为:" & vbLf & fNewName & vbLf & "要打开吗?", vbQuestion + vbYesNo, "完成") = vbYes Then Workbooks.Open fNewName
Else
MsgBox "未发现VBAProject有密码特征字符串", vbInformation, "提示"
End If
End Sub
Private Function MoveProtect(fName As String) As String
Dim myExcelFileData As String
Dim myCommandLinesInfo() As CommandLineInfo
myExcelFileData = GetFileData(fName)
If SearchSpecificCommandInfo(myExcelFileData, myCommandLinesInfo) Then
MoveProtect = Write2File(Left(fName, Len(fName) - 4) & "_覆盖VBA密码.xls", CoverData(myExcelFileData, myCommandLinesInfo))
End If
End Function
Private Function GetFileData(fName As String) As String
Dim DAT() As Byte
ReDim DAT(1 To FileLen(fName))
Open fName For Binary As #1
Get #1, , DAT
Close
GetFileData = StrConv(DAT, vbUnicode, LANG_ENGLISH)
End Function
Private Function SearchSpecificCommandInfo(Content As String, myCommandLinesInfo() As CommandLineInfo) As Boolean
Dim i As Long
Dim objRegEx As Object, m As Object
Dim m0 As String, m0StartPos As Long
Set objRegEx = CreateObject("VBScript.RegExp")
objRegEx.IgnoreCase = True
objRegEx.Pattern = CreateSearchCommandPattern()
Set m = objRegEx.Execute(Content)
If m.Count Then
m0 = m(0).Value
m0StartPos = m(0).firstindex + 1
ReDim myCommandLinesInfo(1 To 4)
For i = 1 To 4
With myCommandLinesInfo(i)
.Value = m(0).submatches(i - 1)
.StartPos = m0StartPos + InStr(1, m0, .Value) - 1
End With
Next
End If
Set m = Nothing
Set objRegEx = Nothing
SearchSpecificCommandInfo = m0StartPos > 0
End Function
Private Function CreateSearchCommandPattern() As String
Dim p(1 To 4) As String
Dim myPattern As String
Dim i As Integer
p(1) = "ID=""{00000000-0000-0000-0000-000000000000}"""
p(2) = "CMG"
p(3) = "DPB"
p(4) = "GC"
For i = 1 To 4
myPattern = myPattern & "(" & p(i) & IIf(i > 1, "=""[a-z0-9]+""", "") & ")" & vbCrLf & "[\s\S]*?"
Next
CreateSearchCommandPattern = myPattern & "[Host Extender Info]"
End Function
Private Function CoverData(Content As String, myCommandLinesInfo() As CommandLineInfo) As Byte()
Dim i As Long
Dim s As String
s = Content
For i = LBound(myCommandLinesInfo) To UBound(myCommandLinesInfo)
With myCommandLinesInfo(i)
Mid(s, .StartPos, Len(.Value)) = CreateFillContent(Len(.Value))
End With
Next
CoverData = StrConv(s, vbFromUnicode, LANG_ENGLISH)
End Function
Private Function CreateFillContent(ContentLen As Long) As String
CreateFillContent = Replace(Space(ContentLen \ 2), " ", vbCrLf) & IIf(ContentLen Mod 2, Chr(32), "")
End Function
Private Function Write2File(fName As String, DAT() As Byte) As String
If Dir(fName) <> "" Then Kill fName
Open fName For Binary As #1
Put #1, , DAT
Close
Write2File = fName
End Function
VBAProject密码清除 for EXCEL2003相关推荐
- win电脑主板设置的Bios密码清除方法
bios保存着计算机最重要的基本输入输出的程序.开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息由于我们一般很少需求进入BIOS设置,因此久而久之,很多朋友容易忘记Bios密码, ...
- pe系统清除服务器密码吗,雨林木风pe系统登录密码清除工具使用教程?
雨林木风pe系统登录密码清除工具使用教程? 部分用户会在自己的电脑上设置开机登录密码,但是有时会突然忘记登录密码是多少了,那么这时候该怎么来解决?今天雨林木风小编就使用"登录密码清除&quo ...
- Word密码清除在哪里设置?
要清除Microsoft Word密码,可以使用Microsoft Word自带的"安全"功能来处理. Word历史记录清除: 打开Word程序,点击"文件", ...
- win7 系统密码清除
随着Win7的系统的普及,最近经常也有客户提着笔记本,让我们技术帮他们清除赢得7系统密码. 以前的清除工具对这款微软号称史上最安全的系统全部失效,为了方便于客户,也便于自己对系统安全的了解,花了几个晚 ...
- 台式计算机更改bios密码,清除DELL Optiplex等系列台式机BIOS密码
DELL原装台式机清除BIOS密码不是很简单,光下COMS电池是不行的,本文用于提供DELL Optiplex 系列机器 BIOS 密码清除的相关信息 具体清除BIOS密码过程如下: Dell 电脑上 ...
- tinkpad BIOS 超级密码 清除
关于tinkpad BIOS 超级密码 清除 首先感谢james-lx[发布文章] (https://blog.csdn.net/ot512csdn/article/details/72571674) ...
- EXCEL VBAProject密码破解 工作表密码破解
1.修改.xlsm后缀为.zip 2.使用压缩软件打开,进入xl目录找到vbaProject.bin文件,解压出来 3.使用Hex软件打开vbaProject.bin文件,查找DPB替换成DPx,保存 ...
- Gateway NV47H18C BIOS 密码清除
网易博客停运了 给之前的文章搬个家 两年前手贱设了BIOS密码,结果忘记了,网上广为流传的扣电池,刷BIOS都不管用,这都只适用老主板,密码和BIOS是独立存放的,所以刷BIOS无效.重要的是这个本本 ...
- 思科交换机密码清除方法记录
注:这篇博客没有什么新内容,类似的网上有很多,只是对自己的实验记录. 我们使用cisco交换机的时候,或多或少的会遇到要清除交换机配置的情况,一般如果我们可以进入特权模式(#),可以直接删除配置,如果 ...
- 畅捷通T+密码清除后,空密码无法登录账套解决办法
由于T+高版本设置了默认密码规则导致清除密码工具清除空密码无法显示登录账套 系统库和账套库中eap_user,找到账套主管,把password字段修改为(密码是abc.1234) +QtbwGjupS ...
最新文章
- RequestResponse总结
- js使用ajax发送post json,javascript-如何用ajaxpost复杂json数据
- DELPHI下的SOCK编程(转)
- (转载)JDOM/XPATH编程指南
- 电脑微信扫一扫在哪_13个微信隐藏技巧,至少有10个你不知道
- 如何在 Linux 中挂载 ISO 文件
- 关于深度探索C++对象模型笔记
- 【图像去噪】基于matlab鲁棒PCA图像去噪【含Matlab源码 463期】
- 2022JAVA面试题附答案(长期更新)
- wps怎么导入access_WPS Access 2013_access 2013下载-下载之家
- JavaScript通过百度OCR实现图像文字识别及常见错误解释
- jedis pool的问题
- 大牛C++编程开发学习建议50条http://blog.csdn.net/gggg_ggg/article/details/44015409
- 深聊性能测试,从入门到放弃之:如何对IO进行性能调优
- 架构的原则、范式及治理
- scratch学习-基础-认识scratch
- 怎么批量下载哗哩哗哩B站主页视频
- 什么是数字化和数字化转型?
- Python中的GPS轨迹聚类
- 斑马无线打印服务器,斑马打印机网络中文打印实例(亲测可用)