[VBA][Tools]Excel VBA密碼破解工具(VBA實現)

來源:互聯網
上載者:User

VBA密碼破解

 

建立一個Excel活頁簿,Alt+F11 開啟VBA編輯器,建立一個模組 ,複製以下代碼即可,經測試已經通過.

'1>破解程式測試WIN98+OFFICE97,WinXP+Office2003破解成功。
'2>用以下代碼對VBA加密保護後用offkey 6.5-7.0及Advanced VBA pASSWORD Recovery專業版均無法破解出保護程式碼的密碼

 

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


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.