如何破解VBAProject属性的保护密码

合集下载

VBA中的数据加密和解密技巧

VBA中的数据加密和解密技巧

VBA中的数据加密和解密技巧简介:VBA(Visual Basic for Applications)是一种编程语言,广泛应用于Microsoft Office软件中,包括Excel、Word、PowerPoint等。

在VBA中,我们可以使用加密和解密技巧来保护敏感数据或者在数据通信过程中确保安全性。

本文将介绍一些常用的VBA数据加密和解密技巧,以帮助你更好地理解和运用VBA编程。

一、数据加密技巧1. 替换算法VBA中最简单的数据加密方式之一是使用替换算法。

这种算法将数据中的每个字符替换为另一个字符,从而改变数据的编码方式。

例如,将字母'A'替换为字母'Z',将字母'B'替换为字母'Y',以此类推。

使用替换算法加密的数据可以通过再次应用同样的算法进行解密。

2. 字符串反转另一种简单的字符串加密方式是字符串反转。

这种方式通过将字符串中的字符顺序颠倒来改变数据的编码方式。

例如,将字符串"Hello, World!"反转为"!dlroW ,olleH"。

使用字符串反转加密的数据可以通过再次应用同样的操作进行解密。

3. 移位算法移位算法是一种基于字符位置的加密方式,通过改变字符的位置来改变数据的编码方式。

例如,将字母'A'移位2位后得到字母'C',将字母'B'移位3位后得到字母'E',以此类推。

使用移位算法加密的数据可以通过再次应用相反的移位操作进行解密。

二、数据解密技巧1. 逆向操作对于使用替换算法、字符串反转或移位算法加密的数据,最简单的解密方式是应用相反的操作。

例如,如果数据是使用替换算法加密的,那么进行解密时只需再次应用同样的替换操作,将加密后的字符替换为原始字符即可。

2. 密钥解密另一种常用的数据解密技巧是使用密钥进行解密。

密钥是一个特殊的值,只有掌握密钥的人才能解密数据。

Excel“工程不可查看”及VBA工程密码破解。

Excel“工程不可查看”及VBA工程密码破解。

一、Excel“工程不可查瞧”两种实现方法及破解关于Excel宏编程中,要用到一些技巧,如破解Excel宏加密。

今天我对一个Excel宏编程中进行日期限制进行了破解。

方法一(共用级锁定)1、先对excel档进行一般的vbaproject”工程密码保护。

2、打开要保护的档,选择∶工具--->保护--->保护并共用活页簿--->以追踪修订方式共用-->输入密码-->保存档。

完成後,当您打开“vbaproject”工程属性时,就将会提示∶“工程不可瞧!”方法二(推荐,破坏型锁定)用16进制编辑工具,如winhex、ultraedit-32(可到此下载)等,再历害点的人完全可以用debug命令来做、、、、、、用以上软体打开excel档,查找定位以下地方∶id="{00000000-0000-0000-00000}" 注∶实际显示不会全部为0 此时,您只要将其中的位元组随便修改一下即可。

保存再打开,就会发现大功告成!当然,在修改前最好做好您的文档备份。

至於恢复只要将改动过的地方还原即可(只要您记住了呵呵)。

破解方面,有网友说将CMG=,DPB=与GC=后的"="替换为"、"也可以的,我已测试过的确可以,这样更省事点。

用16进制编辑工具,如winhex、ultraedit-32打开X、xls文件,查找ID=、、、、、、, 或到文件尾查瞧,找到即可。

改其中的任意一位,存盘就可达到目的,注意:留有备份文件二、EXCEL宏保护密码破解-VBA工程密码破解在办公中我们常瞧到许多用宏(VBA)编写的EXCEL表格,而这些表格就如同一个数据库,我们可以选取或查询很多的数据,一般的这些数据就是存放在一个隐藏的工作表中的,那么要如何显示这个隐藏的工作表呢?我们可以打开宏编辑器(ALT+F11),再安CTRL+R打开专案,这时弹出窗会有所有的这个EXCEL的工用表,这时您就可以瞧瞧那些就是被隐藏的了,很多时候打开就是需要密码的,用以下方法解密后,再将解密后文件打开,依同样方法在工作表标签中右键>>检视程式码>>复制以下代码>>按F8执行Private Sub CommandButton1_Click()Worksheets("这里为您要显示的工作表名称")、Visible = TrueEnd Sub关于破解EXCEL VBA工程密码的方法,以下代码非常有效,首先建一新EXCEL文件,在工作表标签处右点>>检视程式码>>复制以下代码>>按F8执行在弹出窗中选您要您破解工程密码的EXCEL文件>>再按F5执行即可、Private Sub VBAPassword()'您要解保护的Excel文件路径= Application、GetOpen("Excel文件(*、xls & *、xla & *、xlt),*、xls;*、xla;*、xlt", , "VBA破解")If Dir() = "" ThenMsgBox "没找到相关文件,清重新设置。

如何破解VBAProject属性的保护密码

如何破解VBAProject属性的保护密码

如何破解VBAProject属性的保护密码如何破解VBAProject属性的保护密码1、打开任一excel文件2、在宏里粘贴下面的代码3、运行下面的代码4、选择需要破解密码的文件5、点击“打开”'移除VBA编码保护Sub MoveProtect()Dim FileName As StringFileName = Application.GetOpenFilename("Excel文件(*.xls & *.xla&*.xlsx),*.xls;*.xla;*.xlsx", , "VBA破解")If FileName = CStr(False) ThenExit SubElseVBAPassword FileName, FalseEnd IfEnd Sub'设置VBA编码保护Sub SetProtect()Dim FileName As StringFileName = Application.GetOpenFilename("Excel文件(*.xls & *.xla&*.xlsx),*.xls;*.xla;*.xlsx", , "VBA破解")If FileName = CStr(False) ThenExit SubElseVBAPassword FileName, TrueEnd IfEnd SubPrivate Function VBAPassword(FileName As String, Optional Protect As Boolean = False)If Dir(FileName) = "" ThenExit FunctionElseFileCopy FileName, FileName & ".bak"End IfDim GetData As String * 5Open FileName For Binary As #1Dim CMGs As LongDim DPBo As LongFor i = 1 To LOF(1)Get #1, i, GetDataIf GetData = "CMG=""" Then CMGs = iIf GetData = "[Host" Then DPBo = i - 2: Exit ForNextIf CMGs = 0 ThenMsgBox "请先对VBA编码设置一个保护密码...", 32, "提示" Exit FunctionEnd IfIf Protect = False ThenDim St As String * 2Dim s20 As String * 1'取得一个0D0A十六进制字串Get #1, CMGs - 2, St'取得一个20十六制字串Get #1, DPBo + 16, s20'替换加密部份机码For i = CMGs To DPBo Step 2Put #1, i, StNext'加入不配对符号If (DPBo - CMGs) Mod 2 <> 0 ThenPut #1, DPBo + 1, s20End IfMsgBox "文件解密成功......", 32, "提示"ElseDim MMs As String * 5MMs = "DPB="""Put #1, CMGs, MMsMsgBox "对文件特殊加密成功......", 32, "提示" End IfClose #1End Function。

VBA文件加密和解密技巧

VBA文件加密和解密技巧

VBA文件加密和解密技巧近年来,随着信息技术的迅猛发展,数据安全性成为一个越来越重要的问题。

无论是个人用户还是企业组织,都需要保护他们的敏感信息免受未经授权的访问。

在Microsoft Office中,VBA(Visual Basic for Applications)是一种广泛使用的编程语言,用于自动化任务和增强功能。

本文将介绍VBA文件加密和解密技巧,帮助用户保护其VBA代码。

1. 为什么需要加密和解密VBA文件VBA可用于编写Microsoft Office应用程序中的宏。

宏可以自动化重复的任务,增加功能或处理数据。

这意味着VBA可以访问和修改敏感数据。

如果未经授权的人员访问了包含敏感信息的VBA代码,将对个人数据和业务数据产生严重危害。

因此,加密VBA文件可以有效降低数据泄露和其他形式的攻击风险。

相反,解密VBA文件对于开发者和系统管理员来说非常重要。

只有在必要时才能访问和编辑VBA代码,以维护和更新应用程序。

因此,配备解密VBA文件技巧是必不可少的。

2. VBA文件加密技巧为了加密VBA文件,我们可以使用以下的技巧:- VBA密码保护:在Excel、Word等Microsoft Office应用程序中,可以通过设置密码来保护VBA代码。

只有输入正确密码的人才能访问和修改VBA代码。

要设置密码,请打开VBA编辑器,选择“工具”>“VBAProject属性”,然后在“保护”选项卡中设置密码。

- 将VBA代码存储在外部文件:将VBA代码存储在单独的文本文件中,然后使用VBA加载器将其引入到Office 应用程序中。

通过这种方式,VBA代码不会暴露在Excel或Word中。

您可以使用文件加密技术加密外部文本文件,以进一步保护VBA代码。

- 使用三方加密工具:有许多第三方工具可以帮助您对VBA代码进行加密。

这些工具使用高级加密算法对代码进行加密,确保只有经过授权的人才能解密它们。

一些工具还提供其他安全功能,如代码隐藏和防止调试。

解除VBE密码

解除VBE密码

解除VBE密码(转)Sub解除VBE密码()'程序说明:利用SendKey解除VBAProject密码'注意事项:执行本程序需要在Excel窗口,不能在VBE窗口Dim vbProj As VBProject'主要解除vbe密码Set vbProj = ThisWorkbook.VBProjectApplication.ScreenUpdating = FalseIf vbProj.Protection = 1 Then'判断vbp是否保护Application.SendKeys "%{F11}", True'Alt + F11 切换到VBA窗口Application.SendKeys "%T", True'ALT + T 工具(繁体中文是(T))Application.SendKeys "e", True'工具(T)-VBproject属性(E)myPW = "chijanzen" '假设密码 chijanzenApplication.SendKeys myPW, True'取消保护密码时需打入原始密码Application.SendKeys "{ENTER}", True'按确定钮(默认值)Application.SendKeys "{ENTER}", True'按确定钮(默认值)Application.SendKeys "%{F11}", True'Alt + F11 切换到Excel窗口End If'清除密码Application.SendKeys "%{F11}", True'Alt + F11 切换到VBA窗口Application.SendKeys "%T", True'ALT + T 工具(繁体中文是(T))Application.SendKeys "e", True'工具(T)-VBproject属性(E)myPW = "chijanzen" '假设密码 chijanzenApplication.SendKeys "^{TAB}", True'TAB 键(切换到PAge2 保护页面)Application.SendKeys "{-}", True'选取Checkbox方块(锁定项目以供检视) '({+} 选取, {-} 取消选取)Application.SendKeys "{TAB}", True'TAB 键(跳到第一次输入密码 Textbox Application.SendKeys "{DEL}", True'清除密码Application.SendKeys "{TAB}", True'TAB 键(跳到第二次输入密码 Textbox Application.SendKeys "{DEL}", True'清除密码Application.SendKeys "{ENTER}", True'按确定钮(默认值)Application.SendKeys "%{F11}", True'返回Excel窗口Application.ScreenUpdating = True。

用宏代码破解工作表保护密码

用宏代码破解工作表保护密码

用宏代码破解密码:以office2007为例说明,(2003也是一样的,只是菜单命令的位置不同)第一步:打开该文件,先解除默认的“宏禁用”状态,方法是点击工具栏下的“选项”状态按钮,打开“Microsoft Office安全选项”窗口,选择其中的“启用此内容”,“确定”退出;再切换到“视图”选项卡,点击“宏”→“录制宏”,出现“录制新宏”窗口,在“宏名”定义一个名称为:PassWordBreaker,点击“确定”退出;第二步:再点击“宏”→“查看宏”,选择“宏名”下的“PasswordBreaker”并点击“编辑”,打开“Microsoft Visual Basic”编辑器,用如下内容替换右侧窗口中的所有代码:Sub PasswordBreaker()Dim i As Integer, j As Integer, k As IntegerDim l As Integer, m As Integer, n As IntegerDim i1 As Integer, i2 As Integer, i3 As IntegerDim i4 As Integer, i5 As Integer, i6 As IntegerOn Error Resume NextFor i = 65 To 66: For j = 65 To 66: For k = 65 To 66For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & _Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)If ActiveSheet.ProtectContents = False ThenMsgBox "One usable password is " & Chr(i) & Chr(j) & _Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)ActiveWorkbook.Sheets(1).SelectRange("a1").FormulaR1C1 = Chr(i) & Chr(j) & _Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)Exit SubEnd IfNext: Next: Next: Next: Next: NextNext: Next: Next: Next: Next: NextEnd Sub第三步:再点击“宏”→“查看宏”,选择“宏名”下的“PasswordBreaker”并点击“执行”,密码就现形了。

破解vbaproject密码

破解vbaproject密码

破解vbaproject密码破解vbaproject密码1.打开带密码的Excel,视图---宏----录制宏---(保存到)“个人宏工作簿”---点“确认”。

2.查看宏----点“编辑”-----进入“Microsofe visual basic-PERSONAL.XLSB”页面;3.点“模块1“,弹出“模块1代码”----清除“模块1代码”里面的东西-----复制如下东西:Public Sub 工作表保护密码破解()Const DBLSPACE As String = vbNewLine & vbNewLineConst AUTHORS As String = DBLSPACE & vbNewLine & _"作者:冷风"Const HEADER As String = "工作表保护密码破解"Const VERSION As String = DBLSPACE & "版本Version 1.1.1"Const REPBACK As String = DBLSPACE & ""Const ZHENGLI As String = DBLSPACE & " hfhzi3—戊冥整理" Const ALLCLEAR As String = DBLSPACE & "该工作簿中的工作表密码保护已全部解除!!" & DBLSPACE & "请记得另保存" _& DBLSPACE & "注意:不要用在不当地方,要尊重他人的劳动成果!"Const MSGNOPWORDS1 As String = "该文件工作表中没有加密"Const MSGNOPWORDS2 As String = "该文件工作表中没有加密2"Const MSGTAKETIME As String = "解密需花费一定时间,请耐心等候!" & DBLSPACE & "按确定开始破解!"Const MSGPWORDFOUND1 As String = "密码重新组合为:" & DBLSPACE & "$$" & DBLSPACE & _"如果该文件工作表有不同密码,将搜索下一组密码并修改清除"Const MSGPWORDFOUND2 As String = "密码重新组合为:" &DBLSPACE & "$$" & DBLSPACE & _"如果该文件工作表有不同密码,将搜索下一组密码并解除"Const MSGONLYONE As String = "确保为唯一的?"Dim w1 As Worksheet, w2 As WorksheetDim i As Integer, j As Integer, k As Integer, l As IntegerDim m As Integer, n As Integer, i1 As Integer, i2 As IntegerDim i3 As Integer, i4 As Integer, i5 As Integer, i6 As Integer Dim PWord1 As StringDim ShTag As Boolean, WinTag As BooleanApplication.ScreenUpdating = FalseWith ActiveWorkbookWinTag = .ProtectStructure Or .ProtectWindowsEnd WithShTag = FalseFor Each w1 In WorksheetsShTag = ShTag Or w1.ProtectContentsNext w1If Not ShTag And Not WinTag ThenMsgBox MSGNOPWORDS1, vbInformation, HEADERExit SubEnd IfMsgBox MSGTAKETIME, vbInformation, HEADERIf Not WinTag ThenElseOn Error Resume NextDo 'dummy do loopFor i = 65 To 66: For j = 65 To 66: For k = 65 To 66For l = 65 T o 66: For m = 65 T o 66: For i1 = 65 To 66 For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66 For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126 With ActiveWorkbook.Unprotect Chr(i) & Chr(j) & Chr(k) & _Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)If .ProtectStructure = False And _.ProtectWindows = False ThenPWord1 = Chr(i) & Chr(j) & Chr(k) & Chr(l) & _Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)MsgBox Application.Substitute(MSGPWORDFOUND1, _ "$$", PWord1), vbInformation, HEADERExit Do 'Bypass all for...nextsEnd IfEnd WithNext: Next: Next: Next: Next: NextNext: Next: Next: Next: Next: NextLoop Until TrueOn Error GoTo 0End IfIf WinTag And Not ShTag ThenMsgBox MSGONLYONE, vbInformation, HEADER Exit SubEnd IfOn Error Resume NextFor Each w1 In Worksheets'Attempt clearance with PWord1w1.Unprotect PWord1Next w1On Error GoTo 0ShTag = FalseFor Each w1 In Worksheets'Checks for all clear ShTag triggered to 1 if not.ShTag = ShTag Or w1.ProtectContentsNext w1If ShTag ThenFor Each w1 In WorksheetsWith w1If .ProtectContents ThenOn Error Resume NextDo 'Dummy do loopFor i = 65 To 66: For j = 65 To 66: For k = 65 To 66For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66 For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66 For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126 .Unprotect Chr(i) & Chr(j) & Chr(k) & _Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)If Not .ProtectContents ThenPWord1 = Chr(i) & Chr(j) & Chr(k) & Chr(l) & _Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)MsgBox Application.Substitute(MSGPWORDFOUND2, _ "$$", PWord1), vbInformation, HEADER'leverage finding Pword by trying on other sheetsFor Each w2 In Worksheetsw2.Unprotect PWord1Next w2Exit Do 'Bypass all for...nextsEnd IfNext: Next: Next: Next: Next: NextNext: Next: Next: Next: Next: NextLoop Until TrueOn Error GoTo 0End IfEnd WithNext w1End IfMsgBox ALLCLEAR & AUTHORS & VERSION & REPBACK & ZHENGLI, vbInformation, HEADEREnd Sub4.点保存,然后关闭“BOOK1”5.点运行,就OK了。

excelvbaproject保护密码破解查看见过较详细的操作

excelvbaproject保护密码破解查看见过较详细的操作

EXCEL VBA Project密码破解过程可能有些繁琐,EXCEL工作表保护密码破解方法:1\打开文件2\工具---宏----录制新宏---输入名字如:aa3\停止录制(这样得到一个空宏)4\工具---宏----宏,选aa,点编辑按钮5\删除窗口中的所有字符(只有几个),替换为下面的内容:(复制吧)6\关闭编辑窗口7\工具---宏-----宏,选AllInternalPasswords,运行,确定两次,等2分钟,再确定.OK,没有密码了!!内容如下:Public Sub AllInternalPasswords()' Breaks worksheet and workbook structure passwords. Bob McCormick' probably originator of base code algorithm modified for coverage' of workbook structure / windows passwords and for multiple passwords'' Norman Harker and JE McGimpsey 27-Dec-2002 (Version' Modified 2003-Apr-04 by JEM: All msgs to constants, and' eliminate one Exit Sub (Version' Reveals hashed passwords NOT original passwordsConst DBLSPACE As String = vbNewLine & vbNewLineConst AUTHORS As String = DBLSPACE & vbNewLine & _"Adapted from Bob McCormick base code by" & _"Norman Harker and JE McGimpsey"Const HEADER As String = "AllInternalPasswords User Message"Const VERSION As String = DBLSPACE & "Version 2003-Apr-04"Const REPBACK As String = DBLSPACE & "Please report failure " & _"to the newsgroup."Const ALLCLEAR As String = DBLSPACE & "The workbook should " & _"now be free of all password protection, so make sure you:" & _DBLSPACE & "SAVE IT NOW!" & DBLSPACE & "and also" & _DBLSPACE & "BACKUP!, BACKUP!!, BACKUP!!!" & _DBLSPACE & "Also, remember that the password was " & _"put there for a reason. Don't stuff up crucial formulas " & _"or data." & DBLSPACE & "Access and use of some data " & _"may be an offense. If in doubt, don't."Const MSGNOPWORDS1 As String = "There were no passwords on " & _"sheets, or workbook structure or windows." & AUTHORS & VERSIONConst MSGNOPWORDS2 As String = "There was no protection to " & _"workbook structure or windows." & DBLSPACE & _"Proceeding to unprotect sheets." & AUTHORS & VERSIONConst MSGTAKETIME As String = "After pressing OK button this " & _"will take some time." & DBLSPACE & "Amount of time " & _ "depends on how many different passwords, the " & _"passwords, and your computer's specification." & DBLSPACE & _ "Just be patient! Make me a coffee!" & AUTHORS & VERSIONConst MSGPWORDFOUND1 As String = "You had a Worksheet " & _ "Structure or Windows Password set." & DBLSPACE & _"The password found was: " & DBLSPACE & "$$" & DBLSPACE & _"Note it down for potential future use in other workbooks by " & _ "the same person who set this password." & DBLSPACE & _"Now to check and clear other passwords." & AUTHORS & VERSION Const MSGPWORDFOUND2 As String = "You had a Worksheet " & _ "password set." & DBLSPACE & "The password found was: " & _ DBLSPACE & "$$" & DBLSPACE & "Note it down for potential " & _ "future use in other workbooks by same person who " & _"set this password." & DBLSPACE & "Now to check and clear " & _ "other passwords." & AUTHORS & VERSIONConst MSGONLYONE As String = "Only structure / windows " & _ "protected with the password that was just found." & _ALLCLEAR & AUTHORS & VERSION & REPBACKDim w1 As Worksheet, w2 As WorksheetDim i As Integer, j As Integer, k As Integer, l As IntegerDim m As Integer, n As Integer, i1 As Integer, i2 As IntegerDim i3 As Integer, i4 As Integer, i5 As Integer, i6 As Integer Dim PWord1 As StringDim ShTag As Boolean, WinTag As Boolean= FalseWith ActiveWorkbookWinTag = .ProtectStructure Or .ProtectWindowsEnd WithShTag = FalseFor Each w1 In WorksheetsShTag = ShTag OrNext w1If Not ShTag And Not WinTag ThenMsgBox MSGNOPWORDS1, vbInformation, HEADERExit SubEnd IfMsgBox MSGTAKETIME, vbInformation, HEADERIf Not WinTag ThenMsgBox MSGNOPWORDS2, vbInformation, HEADERElseOn Error Resume NextDo 'dummy do loopFor l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66 For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66 For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126 With ActiveWorkbook.Unprotect Chr(i) & Chr(j) & Chr(k) & _Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)If .ProtectStructure = False And _.ProtectWindows = False ThenPWord1 = Chr(i) & Chr(j) & Chr(k) & Chr(l) & _Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)MsgBox (MSGPWORDFOUND1, _"$$", PWord1), vbInformation, HEADERExit Do 'Bypass all for...nextsEnd IfEnd WithNext: Next: Next: Next: Next: NextNext: Next: Next: Next: Next: NextLoop Until TrueOn Error GoTo 0End IfIf WinTag And Not ShTag ThenMsgBox MSGONLYONE, vbInformation, HEADERExit SubEnd IfOn Error Resume NextFor Each w1 In Worksheets'Attempt clearance with PWord1PWord1Next w1On Error GoTo 0ShTag = FalseFor Each w1 In Worksheets'Checks for all clear ShTag triggered to 1 if not. ShTag = ShTag OrNext w1If ShTag ThenFor Each w1 In WorksheetsWith w1If .ProtectContents ThenOn Error Resume NextDo 'Dummy do loopFor l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126.Unprotect Chr(i) & Chr(j) & Chr(k) & _Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)If Not .ProtectContents ThenPWord1 = Chr(i) & Chr(j) & Chr(k) & Chr(l) & _Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)MsgBox (MSGPWORDFOUND2, _"$$", PWord1), vbInformation, HEADER'leverage finding Pword by trying on other sheetsFor Each w2 In WorksheetsPWord1Next w2Exit Do 'Bypass all for...nextsEnd IfNext: Next: Next: Next: Next: NextNext: Next: Next: Next: Next: NextLoop Until TrueOn Error GoTo 0End IfEnd WithNext w1End IfMsgBox ALLCLEAR & AUTHORS & VERSION & REPBACK, vbInformation, HEADER End Sub如何破解VBAProject属性的保护密码1、打开任一excel文件2、在宏里粘贴下面的代码3、运行下面的代码4、选择需要破解密码的文件5、点击“打开”'移除VBA编码保护Sub MoveProtect()Dim FileName As StringFileName = ("Excel文件(*.xls & *.xla&*.xlsx),*.xls;*.xla;*.xlsx", , "VBA破解")If FileName = CStr(False) ThenExit SubElseVBAPassword FileName, FalseEnd IfEnd Sub'设置VBA编码保护Sub SetProtect()Dim FileName As StringFileName = ("Excel文件(*.xls & *.xla&*.xlsx),*.xls;*.xla;*.xlsx", , "VBA破解")If FileName = CStr(False) ThenExit SubElseVBAPassword FileName, TrueEnd IfEnd SubPrivate Function VBAPassword(FileName As String, Optional Protect As Boolean = False)If Dir(FileName) = "" ThenExit FunctionElseFileCopy FileName, FileName & ".bak"End IfDim GetData As String * 5Open FileName For Binary As #1Dim CMGs As LongDim DPBo As LongFor i = 1 To LOF(1)Get #1, i, GetDataIf GetData = "CMG=""" Then CMGs = iIf GetData = "[Host" Then DPBo = i - 2: Exit ForNextIf CMGs = 0 ThenMsgBox "请先对VBA编码设置一个保护密码...", 32, "提示"Exit FunctionEnd IfIf Protect = False ThenDim St As String * 2Dim s20 As String * 1'取得一个0D0A十六进制字串Get #1, CMGs - 2, St'取得一个20十六制字串Get #1, DPBo + 16, s20'替换加密部份机码For i = CMGs To DPBo Step 2Put #1, i, StNext'加入不配对符号If (DPBo - CMGs) Mod 2 <> 0 ThenPut #1, DPBo + 1, s20End IfMsgBox "文件解密成功......", 32, "提示"ElseDim MMs As String * 5MMs = "DPB="""Put #1, CMGs, MMsMsgBox "对文件特殊加密成功......", 32, "提示"End IfClose #1End Function如果你是要破解EXCEL工作表保护密码,请按“EXCEL工作表保护密码破解”操作,若在录制宏时,要求输入VBAProject密码,请先按后面的“如何破解VBAProject属性的保护密码”破解VBAProject密码,然后再按“EXCEL工作表保护密码破解”操作即可。

破解VBAProject保护口令

破解VBAProject保护口令

破解VBAProject保護口令1﹑使用UltraEdit32或其它二進制編輯工具2﹑你理解二進制﹑十進制﹑十六進制的概念3﹑Excel 中的_VBA_Project_CUR storage(我們可以理解為一個目錄) 下的Project Stream(可以理解為一個文件)是一個純文本文件。

如下例所示意﹐是一個包含了一個工作表(Worksheet)﹑一個模塊(Moudle)的Project stream。

其表達式為:命令符=串...[小節]命令符=串每行間用&h0d﹑&h0a (回車﹑換行)分隔。

所以﹐這就為我們簡單地破解提供了條件。

'********************************************'*** 帶有VBA 的Excel﹐沒有口令保護***'********************************************ID="{87EEB809-E9F0-11D6-95A2-008888998168}"Document=ThisWorkbook/&H00000000Document=Sheet1/&H00000000Module=模塊1Name="VBAProject"HelpContextID="0"VersionCompatible32="393222000"CMG="DBD91940F044F044F044F044"DPB="B6B474AD94536E546E546E"GC="91935354545454AB"[Host Extender Info]&H00000001={3832D640-CF90-11CF-8E43-00A0C911005A};VBE;&H00000000 [Workspace]ThisWorkbook=0, 0, 0, 0, CSheet1=0, 0, 0, 0, C模塊1=22, 22, 155, 343, Z下例是同一個文件﹐增加了口令保護的project stream。

VBA在文件加密与解密中的技巧分享

VBA在文件加密与解密中的技巧分享

VBA在文件加密与解密中的技巧分享文件加密与解密是在信息安全领域中非常重要的工具和技术。

VBA(Visual Basic for Applications)是一种用于Microsoft Office应用程序的编程语言,能够帮助用户通过自动化任务提高工作效率。

在文件加密与解密中,VBA可以发挥重要的作用,提供各种功能和技巧来保护和处理敏感数据。

本文将分享一些VBA在文件加密与解密中的技巧,帮助用户更好地保护和处理文件。

1. VBA密码保护在VBA中,可以使用密码保护来限制访问和修改VBA代码。

为了保护自己的VBA代码,可以使用以下VBA语句设置密码:```vbaVBProject.VBComponents("Module1").CodeModule.Password = "password"```此代码将给名为Module1的模块设置一个密码。

设置密码后,无法在没有正确密码的情况下访问、修改或删除模块中的代码,从而保护代码的安全性。

2. 文件加密技巧通过VBA,可以实现文件加密的功能,保护文件中的数据不被未授权的人访问。

以下是一种常见的文件加密技巧的示例:```vbaSub EncryptFile()Dim ws As WorksheetDim fileName As StringDim password As StringSet ws = ThisWorkbook.Worksheets("Sheet1")fileName = "C:\path\to\file.xlsx"password = "password"' 通过另存为功能将文件以密码保护的方式保存ws.SaveAs fileName:=fileName, Password:=password, FileFormat:=xlOpenXMLWorkbookEnd Sub```此代码将当前活动工作簿中的Sheet1工作表另存为名为file.xlsx的文件,并使用指定的密码对文件进行加密。

VBA中的数据加密和解密技巧详解

VBA中的数据加密和解密技巧详解

VBA中的数据加密和解密技巧详解数据安全对于任何程序来说都是至关重要的。

在使用VBA编程时,我们经常需要对敏感数据进行加密,以确保其安全性。

同时,为了方便数据的处理和传输,我们还需要掌握解密技巧。

本文将详细介绍VBA中的数据加密和解密技巧,以帮助您保护数据的安全性。

一、数据加密技巧1. 使用算法加密在VBA中,我们可以使用各种算法对数据进行加密。

常见的算法包括AES、DES和RSA等。

- AES(Advanced Encryption Standard):AES是一种对称加密算法,即加密和解密使用相同密钥的算法。

在VBA中,我们可以使用Microsoft提供的CryptoAPI来实现AES加密。

需要引用"Microsoft Base Cryptographic Provider v1.0"库,并使用相关函数和方法来设置密钥、加密和解密数据。

- DES(Data Encryption Standard):DES也是一种对称加密算法,但相对于AES来说,安全性稍低。

在VBA中,可以使用VBA内置的函数来实现DES加密。

- RSA(Rivest-Shamir-Adleman):RSA是一种非对称加密算法,即加密和解密使用不同密钥的算法。

在VBA中,可以使用VBA内置的RSA函数库来实现RSA加密。

需要注意的是,RSA加密需要生成公钥和私钥,公钥用于加密数据,私钥用于解密数据。

使用算法加密数据可以有效保护数据的安全性,但也需要注意选择合适的加密算法和密钥长度,以确保加密的强度和安全性。

2. 更改数据格式另一种简单的数据加密技巧是更改数据的格式。

比如,可以将文本数据转换为二进制数据,或者将数字数据进行编码。

这种方式通常使用简单的位操作来实现,例如使用异或运算符对数据进行位运算,或者使用Base64编码对数据进行转换。

- 位运算:位运算是一种快速且简单的加密技巧。

可以将数据与一个特定的位模式进行异或运算,从而改变数据的模式。

EXCEL宏密码破解方法

EXCEL宏密码破解方法

一、Excel“工程不可查看”两种实现方法及破解关于Excel宏编程中,要用到一些技巧,如破解Excel宏加密;二、今天我对一个Excel宏编程中进行日期限制进行了破解;三、方法一共用级锁定四、1、先对excel档进行一般的vbaproject”工程密码保护;五、2、打开要保护的档,选择∶工具--->保护--->保护并共用活页簿--->以追踪修订方式共用-->输入密码-->保存档; 完成後,当你打开“vbaproject”工程属性时,就将会提示∶“工程不可看”六、方法二推荐,破坏型锁定七、用16进制编辑工具,如winhex、ultraedit-32可到此下载等,再历害点的人完全可以用debug命令来做......用以上软体打开excel档,查找定位以下地方∶八、id="{00000000-0000-0000-00000}" 注∶实际显示不会全部为0九、此时,你只要将其中的位元组随便修改一下即可;保存再打开,就会发现大功告成十、当然,在修改前最好做好你的文档备份;至於恢复只要将改动过的地方还原即可只要你记住了呵呵;十一、破解方面,有网友说将CMG=,DPB=和GC=后的"="替换为"."也可以的,我已测试过的确可以,这样更省事点;用16进制编辑工具,如winhex、ultraedit-32打开文件,查找ID=......, 或到文件尾查看,找到即可;改其中的任意一位,存盘就可达到目的,注意:留有备份文件十二、十三、二、EXCEL宏保护密码破解-VBA工程密码破解十四、在办公中我们常看到许多用宏VBA编写的EXCEL表格,而这些表格就如同一个数据库,我们可以选取或查询很多的数据,一般的这些数据是存放在一个隐藏的工作表中的,那么要如何显示这个隐藏的工作表呢我们可以打开宏编辑器ALT+F11,再安CTRL+R打开专案,这时弹出窗会有所有的这个EXCEL的工用表,这时你就可以看看那些是被隐藏的了,很多时候打开是需要密码的,用以下方法解密后,再将解密后文件打开,依同样方法在工作表标签中右键>>检视程式码>>复制以下代码>>按F8执行十五、Private Sub CommandButton1_Click十六、Worksheets"这里为你要显示的工作表名称".Visible = True十七、End Sub十八、关于破解EXCEL VBA工程密码的方法,以下代码非常有效,首先建一新EXCEL文件,在工作表标签处右点>>检视程式码>>复制以下代码>>按F8执行在弹出窗中选你要你破解工程密码的EXCEL文件 >>再按F5执行即可.十九、Private Sub VBAPassword二十、'你要解保护的Excel文件路径二十一、Filename = "Excel文件.xls & .xla & .xlt,.xls;.xla;.xlt", , "VBA破解"二十二、If DirFilename = "" 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 LOF1三十四、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六十、六十一、如果上面代码不能运行或出错,请用以下代码重试.六十二、六十三、Private Sub VBAPassword六十四、'你要解保护的Excel文件路径六十五、Filename = "Excel文件.xls & .xla & .xlt,.xls;.xla;.xlt", , "VBA破解" 六十六、If DirFilename = "" 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 LOF1七十八、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第二步:再点击“宏”→“查看宏”,选择“宏名”下的“PasswordBreaker”并点击“编辑”,打开“Microsoft Visual Basic”编辑器,用如下内容替换右侧窗口中的所有代码:Sub PasswordBreakerDim i As Integer, j As Integer, k As IntegerDim l As Integer, m As Integer, n As IntegerDim i1 As Integer, i2 As Integer, i3 As IntegerDim i4 As Integer, i5 As Integer, i6 As IntegerOn Error Resume NextFor i = 65 To 66: For j = 65 To 66: For k = 65 To 66 For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66 For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66 For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126 Chri & Chrj & Chrk & _Chrl & Chrm & Chri1 & Chri2 & Chri3 & _Chri4 & Chri5 & Chri6 & ChrnIf = False ThenMsgBox "One usable password is " & Chri & Chrj & _Chrk & Chrl & Chrm & Chri1 & Chri2 & _Chri3 & Chri4 & Chri5 & Chri6 & Chrn1.SelectRange"a1".FormulaR1C1 = Chri & Chrj & _Chrk & Chrl & Chrm & Chri1 & Chri2 & _Chri3 & Chri4 & Chri5 & Chri6 & ChrnExit SubEnd IfNext: Next: Next: Next: Next: NextNext: Next: Next: Next: Next: NextEnd Sub。

用VBA代码取消EXCELVBA工程密码保护

用VBA代码取消EXCELVBA工程密码保护

用VBA代码取消EXCELVBA工程密码保护Excel VBA密码破解工具(VBA实现)使用UltreEdit之类的十六进制编辑程序打开.XLS文件,在文本模式下查找“[Host Extender Info]”(也可只查Host),切换到十六进制模式,将前面的“DBP="XXXXXXX...”的DBP关键字改成CBP,将“GC="XXXXXXX...”的GC关键字改成CC,使Excel不能识别此二项!存盘即可用Excel打开此文件,忽略错误提示,进入VBA编辑器,嘿嘿,密码没有了!做一次存盘操作即可修复错误提示。

--------------------------------------------------------------------------------在很多地方我都说过,Excel VBA的工程密码是很脆弱的,其实很早就有一篇这样的贴子,我也将其整理为加载宏不过还是有很多朋友在问:)。

现将主程序的源代码也整理于此。

使用者只用把以下的代码COPY到一个空的工作表的模块里,再运行MoveProtect() 就可以解除VBA保护的限制。

'1>一段极好的VBA保护密码破解程序测试WIN98+OFFICE97破解率100%'2>用以下代码对VBA加密保护后用offkey 6.5-7.0及Advanced VBA pASSWORD Recovery专业版均无法破解出保护程式码的密码'移除VBA编码保护'--------------------------------------------------------------------------------'移除工作表VBA保护Sub MoveProtect()Dim FileName As StringFileName = Application.GetOpenFilename("Excel文件(*.xls & *.xla),*.xls;*.xla", , "VBA破解")If FileName = CStr(False) ThenExit SubElseVBAPassword FileName, FalseEnd IfEnd Sub'--------------------------------------------------------------------------------'设置VBA编码保护Sub SetProtect()Dim FileName As StringFileName = Application.GetOpenFilename("Excel文件(*.xls & *.xla),*.xls;*.xla", , "VBA破解")If FileName = CStr(False) ThenExit SubElseVBAPassword FileName, TrueEnd IfEnd Sub'--------------------------------------------------------------------------------Private Function VBAPassword(FileName As String, Optional Protect As Boolean = False)If Dir(FileName) = "" ThenExit FunctionElseFileCopy FileName, FileName & ".bak"End IfDim GetData As String * 5Open FileName For Binary As #1Dim CMGs As LongDim DPBo As LongFor i = 1 To LOF(1)Get #1, i, GetDataIf GetData = "CMG=""" Then CMGs = iIf GetData = "[Host" Then DPBo = i - 2: Exit ForNextIf CMGs = 0 ThenMsgBox "请先对VBA编码设置一个保护密码...", 32, "提示" Exit FunctionEnd IfIf Protect = False ThenDim St As String * 2Dim s20 As String * 1'取得一个0D0A十六进制字串Get #1, CMGs - 2, St'取得一个20十六制字串Get #1, DPBo + 16, s20'替换加密部份机码For i = CMGs To DPBo Step 2Put #1, i, StNext'加入不配对符号If (DPBo - CMGs) Mod 2 <> 0 ThenPut #1, DPBo + 1, s20End IfMsgBox "文件解密成功......", 32, "提示"ElseDim MMs As String * 5MMs = "DPB="""Put #1, CMGs, MMsMsgBox "对文件特殊加密成功......", 32, "提示"End IfClose #1End Function以上代码经XP SP2,OFFICE EXCEL 2003验证成功。

破解工作表保护密码的vba方法

破解工作表保护密码的vba方法

破解工作表保护密码的vba方法一、概述工作表保护是Excel中一种常见的安全措施,可以防止他人对工作表进行修改。

然而,有时候我们自己忘记了保护密码,这就给我们的工作带来了一定的困扰。

今天我们将讨论一种破解工作表保护密码的vba方法,希望能够帮助到有需要的读者。

二、VBA简介VBA是Visual Basic for Applications的缩写,是一种用于宏编程的编程语言。

通过VBA,我们可以在Excel中编写自动化程序来完成一系列操作,包括破解工作表保护密码。

三、破解工作表保护密码的VBA方法1. 通过VBA删除保护密码我们需要打开需要破解保护密码的Excel文件,然后按下Alt + F11,进入VBA编辑器。

在VBA编辑器中,我们可以输入以下代码来删除保护密码:```Sub UnprotectSheet()Dim ws As WorksheetOn Error Resume NextFor Each ws In ThisWorkbook.Worksheetsws.Unprotect "YourPassword" '将"YourPassword"替换成实际的密码Next wsOn Error GoTo 0End Sub```在上面的代码中,我们通过循环遍历所有的工作表,并使用Unprotect方法来删除保护密码。

需要注意的是,代码中的“YourPassword”需要替换成实际的密码。

2. 通过VBA破解密码如果我们忘记了保护密码,我们也可以通过VBA来破解密码。

以下是一个简单的破解密码的VBA代码:```Sub CrackSheetPassword()Dim i As Integer, j As Integer, k As IntegerDim l As Integer, m As Integer, n As IntegerDim i1 As Integer, i2 As Integer, i3 As IntegerDim i4 As Integer, i5 As Integer, i6 As IntegerOn Error Resume NextFor i = 65 To 66: For j = 65 To 66: For k = 65 To 66For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66 For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66 For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126 ActiveSheet.Unprotect Chr(i) Chr(j) Chr(k) _Chr(l) Chr(m) Chr(i1) Chr(i2) Chr(i3) _Chr(i4) Chr(i5) Chr(i6) Chr(n)If ActiveSheet.ProtectContents = False ThenMsgBox "One usable password is " Chr(i) Chr(j) _ Chr(k) Chr(l) Chr(m) Chr(i1) Chr(i2) _Chr(i3) Chr(i4) Chr(i5) Chr(i6) Chr(n)Exit SubEnd IfNext: Next: Next: Next: Next: NextNext: Next: Next: Next: Next: NextEnd Sub```这段代码通过嵌套循环的方式尝试穷举所有可能的密码组合,直到找到可以破解保护密码的组合为止。

VBA 中的文件加密与解密技巧

VBA 中的文件加密与解密技巧

VBA 中的文件加密与解密技巧在日常办公中,我们经常需要处理敏感或机密的文件。

为了确保文件的安全性,文件加密和解密是重要的技巧。

在 VBA(Visual Basic for Applications)中,我们可以利用一些加密算法和函数来加密和解密文件。

本文将介绍 VBA 中的文件加密与解密技巧,帮助您保护文件的安全。

1. 加密文件在 VBA 中,我们可以使用 AES(Advanced Encryption Standard)算法对文件进行加密。

AES 是一种安全且常用的对称加密算法,能够对数据进行高效的加密和解密。

下面是一个示例代码,演示如何使用 AES 算法对文件进行加密:```vbaSub EncryptFile(filePath As String, password As String)Dim fso As ObjectDim tsIn As ObjectDim tsOut As ObjectDim dataIn() As ByteDim dataEncrypted() As ByteDim aes As ObjectSet fso = CreateObject("Scripting.FileSystemObject")Set tsIn = fso.OpenTextFile(filePath, 1)dataIn = tsIn.ReadAlltsIn.CloseSet aes =CreateObject("System.Security.Cryptography.AesManaged")aes.GenerateKeyaes.GenerateIVaes.Mode = 1 ' CipherMode.CBCaes.Padding = 2 ' PaddingMode.PKCS7dataEncrypted = aes.CreateEncryptor.TransformFinalBlock( _ dataIn, 0, UBound(dataIn) + 1)Set tsOut = fso.OpenTextFile(filePath, 2)tsOut.Write StrConv(dataEncrypted, vbUnicode)tsOut.CloseMsgBox "文件已加密。

破解VBA保护工作表的密码方法

破解VBA保护工作表的密码方法

破解VBA保护工作表的密码方法OFFICE功能强大,但安全性实在让人胆心,从另一个方面来看应该是关注她的人太多了!注意:首先打开要解除的EXCEL文檔,同时按Alt+F11打开VBA编辑器,”视图”——“代码窗口”,然后将以下代码COPY进去,再按F5运行,等待破解完成Option ExplicitPublic Sub AllInternalPasswords()Const DBLSPACE As String = vbNewLine & vbNewLineConst AUTHORS As String = DBLSPACE & vbNewLine & _"Adapted from Bob McCormick base code by" & _"Norman Harker and JE McGimpsey"Const HEADER As String = "AllInternalPasswords User Message"Const VERSION As String = DBLSPACE & "Version 1.1.1 2003-Apr-04"Const REPBACK As String = DBLSPACE & "Please report failure " & _"to the microsoft.public.excel.programming newsgroup."Const ALLCLEAR As String = DBLSPACE & "The workbook should " & _"now be free of all password protection, so make sure you:" & _DBLSPACE & "SA VE IT NOW!" & DBLSPACE & "and also" & _DBLSPACE & "BACKUP!, BACKUP!!, BACKUP!!!" & _DBLSPACE & "Also, remember that the password was " & _"put there for a reason. Don’t stuff up crucial formulas " & _"or data." & DBLSPACE & "Access and use of some data " & _"m ay be an offense. If in doubt, don’t."Const MSGNOPWORDS1 As String = "There were no passwords on " & _"sheets, or workbook structure or windows." & AUTHORS & VERSIONConst MSGNOPWORDS2 As String = "There was no protection to " & _"workbook structure or windows." & DBLSPACE & _"Proceeding to unprotect sheets." & AUTHORS & VERSIONConst MSGTAKETIME As String = "After pressing OK button this " & _"will take some time." & DBLSPACE & "Amount of time " & _"depends on how many different passwords, the " & _"passwords, and your computer’s specification." & DBLSPACE & _"Just be patient! Make me a coffee!" & AUTHORS & VERSIONConst MSGPWORDFOUND1 As String = "You had a Worksheet " & _"Structure or Windows Password set." & DBLSPACE & _"The password found was: " & DBLSPACE & "$$" & DBLSPACE & _"Note it down for potential future use in other workbooks by " & _"the same person who set this password." & DBLSPACE & _"Now to check and clear other passwords." & AUTHORS & VERSIONConst MSGPWORDFOUND2 As String = "You had a Worksheet " & _"password set." & DBLSPACE & "The password found was: " & _DBLSPACE & "$$" & DBLSPACE & "Note it down for potential " & _"future use in other workbooks by same person who " & _"set this password." & DBLSPACE & "Now to check and clear " & _ "other passwords." & AUTHORS & VERSIONConst MSGONL YONE As String = "Only structure / windows " & _ "protected with the password that was just found." & _ ALLCLEAR & AUTHORS & VERSION & REPBACKDim w1 As Worksheet, w2 As WorksheetDim i As Integer, j As Integer, k As Integer, l As IntegerDim m As Integer, n As Integer, i1 As Integer, i2 As IntegerDim i3 As Integer, i4 As Integer, i5 As Integer, i6 As IntegerDim PWord1 As StringDim ShTag As Boolean, WinTag As BooleanApplication.ScreenUpdating = FalseWith ActiveWorkbookWinTag = .ProtectStructure Or .ProtectWindowsEnd WithShTag = FalseFor Each w1 In WorksheetsShTag = ShTag Or w1.ProtectContentsNext w1If Not ShTag And Not WinTag ThenMsgBox MSGNOPWORDS1, vbInformation, HEADERExit SubEnd IfMsgBox MSGTAKETIME, vbInformation, HEADERIf Not WinTag ThenMsgBox MSGNOPWORDS2, vbInformation, HEADERElseOn Error Resume NextDo 'dummy do loopFor i = 65 To 66: For j = 65 To 66: For k = 65 To 66For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126With ActiveWorkbook.Unprotect Chr(i) & Chr(j) & Chr(k) & _Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)If .ProtectStructure = False And _.ProtectWindows = False ThenPWord1 = Chr(i) & Chr(j) & Chr(k) & Chr(l) & _Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)MsgBox Application.Substitute(MSGPWORDFOUND1, _ "$$", PWord1), vbInformation, HEADERExit Do 'Bypass all for...nextsEnd IfEnd WithNext: Next: Next: Next: Next: NextNext: Next: Next: Next: Next: NextLoop Until TrueOn Error GoTo 0End IfIf WinTag And Not ShTag ThenMsgBox MSGONL YONE, vbInformation, HEADERExit SubEnd IfOn Error Resume NextFor Each w1 In Worksheets'Attempt clearance with PWord1w1.Unprotect PWord1Next w1On Error GoTo 0ShTag = FalseFor Each w1 In Worksheets'Checks for all clear ShTag triggered to 1 if not.ShTag = ShTag Or w1.ProtectContentsNext w1If ShTag ThenFor Each w1 In WorksheetsWith w1If .ProtectContents ThenOn Error Resume NextDo 'Dummy do loopFor i = 65 To 66: For j = 65 To 66: For k = 65 To 66For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66 For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126.Unprotect Chr(i) & Chr(j) & Chr(k) & _Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)If Not .ProtectContents ThenPWord1 = Chr(i) & Chr(j) & Chr(k) & Chr(l) & _Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)MsgBox Application.Substitute(MSGPWORDFOUND2, _ "$$", PWord1), vbInformation, HEADER'leverage finding Pword by trying on other sheetsFor Each w2 In Worksheetsw2.Unprotect PWord1Next w2Exit Do 'Bypass all for...nextsEnd IfNext: Next: Next: Next: Next: NextNext: Next: Next: Next: Next: NextLoop Until TrueOn Error GoTo 0End IfEnd WithNext w1End IfMsgBox ALLCLEAR & AUTHORS & VERSION & REPBACK, vbInformation, HEADER End Sub如果该宏被禁止运行,将菜单“工具”-“宏”-“安全性” 设置为中或低。

撤销工作表保护密码是多少

撤销工作表保护密码是多少

撤销工作表保护密码是多少工作表保护密码是指在Excel中对工作表进行保护,以防止未经授权的用户对工作表进行修改或删除。

当工作表被保护后,用户需要输入密码才能对工作表进行编辑或格式更改。

然而,有时候我们可能会忘记或需要撤销工作表保护密码,那么该怎么办呢?撤销工作表保护密码的方法有多种,下面将介绍几种常用的方法:方法一,使用已知密码进行撤销。

如果你之前设置了工作表保护密码,并且还记得这个密码,那么撤销工作表保护密码就非常简单了。

只需要按照以下步骤操作即可:1. 打开Excel文档,找到被保护的工作表。

2. 在工作表上方的菜单栏中点击“审阅”选项卡。

3. 在“审阅”选项卡中找到“保护工作表”按钮,并点击下拉箭头。

4. 在弹出的选项中选择“撤销工作表保护”,然后输入之前设置的密码。

5. 点击“确定”即可完成撤销工作表保护密码的操作。

方法二,使用VBA代码进行撤销。

如果你忘记了工作表保护密码,或者无法使用已知密码进行撤销,那么可以尝试使用VBA代码来进行撤销。

下面是具体的操作步骤:1. 打开Excel文档,按下“Alt + F11”组合键,打开VBA编辑器。

2. 在VBA编辑器中,依次展开“VBAProject”、“Microsoft Excel Objects”文件夹,找到需要撤销保护的工作表。

3. 在工作表的代码窗口中输入以下VBA代码:Sub UnprotectSheet()。

Dim ws As Worksheet。

Set ws = ThisWorkbook.Sheets("Sheet1") '将“Sheet1”替换为你需要撤销保护的工作表名称。

ws.Unprotect "password" '将“password”替换为你设置的密码。

End Sub。

4. 点击运行按钮执行代码,即可完成撤销工作表保护密码的操作。

方法三,使用第三方工具进行撤销。

VBAProject密码清除

VBAProject密码清除

VBAProject密码清除 for EXCEL2003下载了多个⼯具都是浮云,只有这个好⽤⽂章转载于⽹络在空⽩excel⽂档vba⾥⾯插⼊模块,运⾏此模块Option ExplicitConst LANG_ENGLISH As Integer = 9Type CommandLineInfoName As StringValue As StringStartPos As LongEnd TypeSub main()Dim fName As StringfName = Application.GetOpenFilename("Excel⽂件(xls ; xla),*.xls;*.xla", , "选择要破解的EXCEL2003包含VBA密码的⽂件")If fName = "False" Then Exit SubDim fNewName As StringfNewName = MoveProtect(fName)If Len(fNewName) ThenIf MsgBox("转换完成,另存为:" & vbLf & fNewName & vbLf & "要打开吗?", vbQuestion + vbYesNo, "完成") = vbYes Then Workbooks.Open fNewNameElseMsgBox "未发现VBAProject有密码特征字符串", vbInformation, "提⽰"End IfEnd SubPrivate Function MoveProtect(fName As String) As StringDim myExcelFileData As StringDim myCommandLinesInfo() As CommandLineInfomyExcelFileData = GetFileData(fName)If SearchSpecificCommandInfo(myExcelFileData, myCommandLinesInfo) ThenMoveProtect = Write2File(Left(fName, Len(fName) - 4) & "_覆盖VBA密码.xls", CoverData(myExcelFileData, myCommandLinesInfo)) End IfEnd FunctionPrivate Function GetFileData(fName As String) As StringDim DAT() As ByteReDim DAT(1 To FileLen(fName))Open fName For Binary As #1Get #1, , DATCloseGetFileData = StrConv(DAT, vbUnicode, LANG_ENGLISH)End FunctionPrivate Function SearchSpecificCommandInfo(Content As String, myCommandLinesInfo() As CommandLineInfo) As BooleanDim i As LongDim objRegEx As Object, m As ObjectDim m0 As String, m0StartPos As LongSet objRegEx = CreateObject("VBScript.RegExp")objRegEx.IgnoreCase = TrueobjRegEx.Pattern = CreateSearchCommandPattern()Set m = objRegEx.Execute(Content)If m.Count Thenm0 = m(0).Valuem0StartPos = m(0).firstindex + 1ReDim myCommandLinesInfo(1 To 4)For i = 1 To 4With myCommandLinesInfo(i).Value = m(0).submatches(i - 1).StartPos = m0StartPos + InStr(1, m0, .Value) - 1End WithNextEnd IfSet m = NothingSet objRegEx = NothingSearchSpecificCommandInfo = m0StartPos > 0End FunctionPrivate Function CreateSearchCommandPattern() As StringDim p(1 To 4) As StringDim myPattern As StringDim i As Integerp(1) = "ID=""{00000000-0000-0000-0000-000000000000}"""p(2) = "CMG"p(3) = "DPB"p(4) = "GC"For i = 1 To 4myPattern = myPattern & "(" & p(i) & IIf(i > 1, "=""[a-z0-9]+""", "") & ")" & vbCrLf & "[\s\S]*?"NextCreateSearchCommandPattern = myPattern & "[Host Extender Info]"End FunctionPrivate Function CoverData(Content As String, myCommandLinesInfo() As CommandLineInfo) As Byte() Dim i As LongDim s As Strings = ContentFor i = LBound(myCommandLinesInfo) To UBound(myCommandLinesInfo)With myCommandLinesInfo(i)Mid(s, .StartPos, Len(.Value)) = CreateFillContent(Len(.Value))End WithNextCoverData = StrConv(s, vbFromUnicode, LANG_ENGLISH)End FunctionPrivate Function CreateFillContent(ContentLen As Long) As StringCreateFillContent = Replace(Space(ContentLen \ 2), " ", vbCrLf) & IIf(ContentLen Mod 2, Chr(32), "") End FunctionPrivate Function Write2File(fName As String, DAT() As Byte) As StringIf Dir(fName) <> "" Then Kill fNameOpen fName For Binary As #1Put #1, , DATCloseWrite2File = fNameEnd Function。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

如何破解VBAProject属性的保护密码
1、打开任一excel文件
2、在宏里粘贴下面的代码
3、运行下面的代码
4、选择需要破解密码的文件
5、点击“打开”
'移除VBA编码保护
Sub MoveProtect()
Dim FileName As String
FileName = Application.GetOpenFilename("Excel文件(*.xls & *.xla&*.xlsx),*.xls;*.xla;*.xlsx", , "VBA破解")
If FileName = CStr(False) Then
Exit Sub
Else
VBAPassword FileName, False
End If
End Sub
'设置VBA编码保护
Sub SetProtect()
Dim FileName As String
FileName = Application.GetOpenFilename("Excel文件(*.xls & *.xla&*.xlsx),*.xls;*.xla;*.xlsx", , "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。

相关文档
最新文档