搜档网
当前位置:搜档网 › ecel宏密码破解方法

ecel宏密码破解方法

一、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 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)

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 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)

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 PasswordBreaker()

Dim i As Integer, j As Integer, k As Integer

Dim l As Integer, m As Integer, n As Integer

Dim i1 As Integer, i2 As Integer, i3 As Integer

Dim i4 As Integer, i5 As Integer, i6 As Integer

On Error Resume Next

For 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 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 = False Then

MsgBox "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)

(1).Select

Range("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 Sub

End If

Next: Next: Next: Next: Next: Next

Next: Next: Next: Next: Next: Next

End Sub

相关主题