ExcelVBA access工程密码破解程序

Option Explicit

'移除VBA??保?

Sub MoveProtect()

Dim FileName As String

FileName = Application.GetOpenFilename("Excel文件(*.xls & *.xla),*.xls;*.xla", , "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),*.xls;*.xla", , "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) Dim i As Integer

On Error Resume Next

If Dir(FileName) = "" Then

Exit Function

Else

FileCopy FileName, FileName & "_" & Format(Date, "YYYYMMDD") & Format(Time, "hhmmss") & ".bak"

If Err.Number = "55" Then

MsgBox "指定されたファイルは開けています。閉じてください。"

Exit Function

End If

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 "このExcelに、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 "VBAパスワードは削除しました!......", 32, "提示"

Else

Dim MMs As String * 5

MMs = "DPB="""

Put #1, CMGs, MMs

MsgBox "VBAパスワードは追加しました!......", 32, "提示"

End If

Close #1

End Function

Excel VBA工程密码破解程序(绝对可以破解)2007-06-24 11:28新建一个Excel工作簿,Alt+F11 打开VBA编辑器,新建一个模块,复制以下代码,注意如提示变量未定义,则把Option Explicit行删除即可,经测试已经通过.

'移除VBA编码保护

Sub MoveProtect()

Dim FileName As String

FileName = Application.GetOpenFilename("Excel文件(*.xls & *.xla),*.xls;*.xla", , "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),*.xls;*.xla", , "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

相关文档
最新文档