本文目录一览:
如何破解Excel VBA密码
Excel是一个专门用于整理数据的电子表格,为了保障表格的安全,用户可以为文档进行加密,可以设置以下类型密码:打开密码、编辑密码、工作表密码、共享账簿密码以及VBA密码。VBA全称是VisualBasicforApplications,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。VBA是VisualBasic的一种宏语言,主要能用来扩展Windows的应用程式功能,特别是MicrosoftOffice软件,特别是Excel表格。另外,也可说VBA是一种应用程式视觉化的Basic脚本。实际上VBA是寄生于VB应用程序的版本,可以具备VBA的宏功能。VBA密码就是为变成语言设置访问权限。破解VBA密码有两种方法:1、使用宏代码,这种方法比较专业,不具有普遍的适用性;2、使用专业的第三方密码破解工具,这个可以广泛被使用,传播比较广泛的是AdvancedOfficePasswordRecovery,使用软件打开Excel文档,程序会自动开始破解VBA密码的操作,一旦破解成功,用户可以更改Excel文档的VBA密码,重新获取权限。
如何破解EXCEL VBA密码
方法/步骤
打开需要破解的文件,并点开需要输入密码的界面,如图
使用EXCEL.EXE重新打开一个工作簿。
打开新工作簿的VBA代码区域,并插入一个模块。
插入如下代码
Sub test()
Dim st, nd, th3, th4, th5, th6, th7, th8 As Variant
Dim ii, jj, kk, ll, mm, nn, oo, pp, qq As Integer
Dim PADN, PD, IJ, JK, PADNO, speed
speed = 0.005
st = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")
nd = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")
th3 = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")
th4 = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")
th5 = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")
th6 = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")
th7 = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")
th8 = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")
PADN = InputBox("How long the password is", "Guilin Hu", 4)
PADNO = CInt(PADN)
For IJ = 1 To 100
If Sheet1.Cells(IJ, 1) = "" Then
Sheet1.Cells(IJ, 1) = Now
Exit For
Else
End If
Next IJ
PauseTime = 2
Start = Timer
Do While Timer Start + PauseTime
DoEvents
Loop
Finish = Timer
Select Case (PADNO)
Case 1
For ii = 0 To 61
PD = st(ii)
SendKeys PD
PauseTime = speed
Start = Timer
Do While Timer Start + PauseTime
DoEvents
Loop
Finish = Timer
SendKeys "{enter}"
PauseTime = speed
Start = Timer
Do While Timer Start + PauseTime
DoEvents
Loop
Finish = Timer
SendKeys "{enter}"
Next ii
Case 2
For ii = 0 To 61
For jj = 0 To 61
PD = st(ii) nd(jj)
SendKeys PD
PauseTime = speed
Start = Timer
Do While Timer Start + PauseTime
DoEvents
Loop
Finish = Timer
SendKeys "{enter}"
PauseTime = speed
Start = Timer
Do While Timer Start + PauseTime
DoEvents
Loop
Finish = Timer
SendKeys "{enter}"
Next jj
Next ii
Case 3
For ii = 0 To 61
For jj = 0 To 61
For kk = 0 To 61
PD = st(ii) nd(jj) th3(kk)
SendKeys PD
PauseTime = speed
Start = Timer
Do While Timer Start + PauseTime
DoEvents
Loop
Finish = Timer
SendKeys "{enter}"
PauseTime = speed
Start = Timer
Do While Timer Start + PauseTime
DoEvents
Loop
Finish = Timer
SendKeys "{enter}"
Next kk
Next jj
Next ii
Case 4
For ii = 0 To 61
For jj = 0 To 61
For kk = 0 To 61
For ll = 0 To 61
PD = st(ii) nd(jj) th3(kk) th4(ll)
SendKeys PD
PauseTime = speed
Start = Timer
Do While Timer Start + PauseTime
DoEvents
Loop
Finish = Timer
SendKeys "{enter}"
PauseTime = speed
Start = Timer
Do While Timer Start + PauseTime
DoEvents
Loop
Finish = Timer
SendKeys "{enter}"
Next ll
Next kk
Next jj
Next ii
Case 5
For ii = 0 To 61
For jj = 0 To 61
For kk = 0 To 61
For ll = 0 To 61
For mm = 0 To 61
PD = st(ii) nd(jj) th3(kk) th4(ll) th5(mm)
SendKeys PD
PauseTime = speed
Start = Timer
Do While Timer Start + PauseTime
DoEvents
Loop
Finish = Timer
SendKeys "{enter}"
PauseTime = speed
Start = Timer
Do While Timer Start + PauseTime
DoEvents
Loop
Finish = Timer
SendKeys "{enter}"
Next mm
Next ll
Next kk
Next jj
Next ii
Case 6
For ii = 0 To 61
For jj = 0 To 61
For kk = 0 To 61
For ll = 0 To 61
For mm = 0 To 61
For nn = 0 To 61
PD = st(ii) nd(jj) th3(kk) th4(ll) th5(mm) th6(nn)
SendKeys PD
PauseTime = speed
Start = Timer
Do While Timer Start + PauseTime
DoEvents
Loop
Finish = Timer
SendKeys "{enter}"
PauseTime = speed
Start = Timer
Do While Timer Start + PauseTime
DoEvents
Loop
Finish = Timer
SendKeys "{enter}"
Next nn
Next mm
Next ll
Next kk
Next jj
Next ii
Case 7
For ii = 0 To 61
For jj = 0 To 61
For kk = 0 To 61
For ll = 0 To 61
For mm = 0 To 61
For nn = 0 To 61
For oo = 0 To 61
PD = st(ii) nd(jj) th3(kk) th4(ll) th5(mm) th6(nn) th7(oo)
SendKeys PD
PauseTime = speed
Start = Timer
Do While Timer Start + PauseTime
DoEvents
Loop
Finish = Timer
SendKeys "{enter}"
PauseTime = speed
Start = Timer
Do While Timer Start + PauseTime
DoEvents
Loop
Finish = Timer
SendKeys "{enter}"
Next oo
Next nn
Next mm
Next ll
Next kk
Next jj
Next ii
Case 8
For ii = 0 To 61
For jj = 0 To 61
For kk = 0 To 61
For ll = 0 To 61
For mm = 0 To 61
For nn = 0 To 61
For oo = 0 To 61
For pp = 0 To 61
PD = st(ii) nd(jj) th3(kk) th4(ll) th5(mm) th6(nn) th7(oo) th8(pp)
SendKeys PD
PauseTime = speed
Start = Timer
Do While Timer Start + PauseTime
DoEvents
Loop
Finish = Timer
SendKeys "{enter}"
PauseTime = speed
Start = Timer
Do While Timer Start + PauseTime
DoEvents
Loop
Finish = Timer
SendKeys "{enter}"
Next pp
Next oo
Next nn
Next mm
Next ll
Next kk
Next jj
Next ii
End Select
For JK = 1 To 100
If Sheet1.Cells(JK, 2) = "" Then
Sheet1.Cells(JK, 2) = Now
Exit For
Else
End If
Next JK
End Sub
按F5执行代码,输入密码长度。如果不知道密码的长度,就猜,第一次输1,第二次输2。。。依次试。
输入密码长度后,点击确定。并在2s内将鼠标的焦点点在最开始要破解文件的密码输入框里边。接下来的工作就是“静候佳音”了。。哈哈。。
没有破解不开的密码。主要的是你有时间就好!1位密码破解最长时间:62/(1/0.005)=0.31秒;2位数密码破解最长时间:62*62/(1/0.005)=19.22秒。。。依次类推:N位数密码破解时间:(62)的N次方/(1/0.005)秒的时间。就看您的耐性了!破解完成之后就会自动进去VBA代码模块。
接下来就是修改别人的密码了!进去果断点击VBA工程属性,。。。“干啥?”。。。。哈哈 改密!!
9
看哥的密码改的!哈哈。。。
如何破解vba工程密码
首先以下方案只针对 Word 文档和 Excel 文档的 VBA 工程密码。
打开一个 Excel 的程序实例(无论待破解的是什么文档一律打开 Excel 实例),按 Alt + F11 打开 VBE,左侧“工程资源管理器”右键新建一个模块,复制下列代码粘贴进去后定位至过程 VBA_Password_remove 按 F5 运行选择要破解的包含工程密码的文件。
Option Explicit
Private Sub VBA_Password_remove()
Dim Filename As String, i As Integer
Filename = Application.Caption
If InStr(Filename, "Excel") 0 Then
Filename = openfile()
Else
MsgBox "请在 Microsoft Office Excel Visual Basic of Application 环境下运行本程序!", vbExclamation
Exit Sub
End If
If (Filename = "False") Then Exit Sub
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
Close #1
MsgBox "VBA 工程未设置密码", vbQuestion, "提示"
Exit Sub
End If
Dim St As String * 2
Dim s20 As String * 1
Get #1, CMGs - 2, St
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
MsgBox "文件解密成功!", vbQuestion, "提示"
Close #1
End Sub
Function openfile()
openfile = Application.GetOpenFilename("Excel 文件(*.xls *.xla *.xlt),*.xls;*.xla;*.xlt,Word 文件(*.doc *.dot ),*.doc;*.dot", , "选择破解 VBA 工程密码的文件")
End Function