Af en toe krijg ik een vraag om een wachtwoord van een Excel blad te halen. Doodsimpel met VBA. Hier een script dat ik gebruik:
Sub WachtwoordCrack()
Dim a As Integer, b As Integer, c As Integer, d As Integer, _
e As Integer, f As Integer, g As Integer, h As Integer, _
I As Integer, j As Integer, k, m As Integer
Dim begin As Date, eind As Date
Dim duur As String
Dim objSheet As Worksheet
begin = TimeValue(Time)
On Error Resume Next
For Each objSheet In Application.Worksheets
For a = 65 To 66: For b = 65 To 66: For c = 65 To 66
For d = 65 To 66: For e = 65 To 66: For f = 65 To 66
For g = 65 To 66: For h = 65 To 66: For I = 65 To 66
For j = 65 To 66: For k = 65 To 66: For m = 32 To 126
ActiveSheet.Unprotect Chr(a) & Chr(b) & _
Chr(c) & Chr(d) & Chr(e) & Chr(f) & _
Chr(g) & Chr(h) & Chr(I) & Chr(j) & Chr(k) & Chr(m)
If ActiveSheet.ProtectContents = False Then
eind = TimeValue(Time)
duur = Format(eind - begin, "hh:mm:ss")
MsgBox "Werkblad is wachtwoord-vrij." _
& Chr(10) & "in: " & Chr(10) & Chr(10) & duur, vbInformation, "Kraker"
Exit Sub
End If
Next: Next: Next
Next: Next: Next
Next: Next: Next
Next: Next: Next
Next
End Sub
Even kopiëren naar een Excel VBA module en draaien maar.
Het script verwijdert geen wachtwoorden die op de VBA code zijn gezet.
Voor verder Excel tips klik hier.
Sub WachtwoordCrack()
Dim a As Integer, b As Integer, c As Integer, d As Integer, _
e As Integer, f As Integer, g As Integer, h As Integer, _
I As Integer, j As Integer, k, m As Integer
Dim begin As Date, eind As Date
Dim duur As String
Dim objSheet As Worksheet
begin = TimeValue(Time)
On Error Resume Next
For Each objSheet In Application.Worksheets
For a = 65 To 66: For b = 65 To 66: For c = 65 To 66
For d = 65 To 66: For e = 65 To 66: For f = 65 To 66
For g = 65 To 66: For h = 65 To 66: For I = 65 To 66
For j = 65 To 66: For k = 65 To 66: For m = 32 To 126
ActiveSheet.Unprotect Chr(a) & Chr(b) & _
Chr(c) & Chr(d) & Chr(e) & Chr(f) & _
Chr(g) & Chr(h) & Chr(I) & Chr(j) & Chr(k) & Chr(m)
If ActiveSheet.ProtectContents = False Then
eind = TimeValue(Time)
duur = Format(eind - begin, "hh:mm:ss")
MsgBox "Werkblad is wachtwoord-vrij." _
& Chr(10) & "in: " & Chr(10) & Chr(10) & duur, vbInformation, "Kraker"
Exit Sub
End If
Next: Next: Next
Next: Next: Next
Next: Next: Next
Next: Next: Next
Next
End Sub
Het script verwijdert geen wachtwoorden die op de VBA code zijn gezet.
Voor verder Excel tips klik hier.
Andere blogs over Excel
Voor het beste overzicht verwijs ik naar een pagina van mijn website: http://www.walmar.nl/spreadsheets.asp
Reacties
Bij k, is k geen integer? (declarering)
Bij run loopt hij bij mij steevast vast.
Zou je mij kunnen vertellen waarom.
Vriendelijke groet,
Eric
Sub WachtwoordCrack()
Dim a As Integer, b As Integer, c As Integer, d As Integer, e As Integer, f As Integer, g As Integer, h As Integer, i As Integer, j As Integer, k As Integer, m As Integer
Dim begin As Date, eind As Date
Dim duur As String
Dim objSheet As Worksheet
begin = TimeValue(Time)
On Error Resume Next
For Each objSheet In Application.Worksheets
For a = 65 To 66: For b = 65 To 66: For c = 65 To 66
For d = 65 To 66: For e = 65 To 66: For f = 65 To 66
For g = 65 To 66: For h = 65 To 66: For i = 65 To 66
For j = 65 To 66: For k = 65 To 66: For m = 32 To 126
ActiveSheet.Unprotect Chr(a) & Chr(b) & Chr(c) & Chr(d) & Chr(e) & Chr(f) & Chr(g) & Chr(h) & Chr(i) & Chr(j) & Chr(k) & Chr(m)
If ActiveSheet.ProtectContents = False Then
eind = TimeValue(Time)
duur = Format(eind - begin, "hh:mm:ss")
MsgBox "Werkblad is wachtwoord-vrij." & Chr(10) & "in: " & Chr(10) & Chr(10) & duur, vbInformation, "Kraker"
Exit Sub
End If
Next: Next: Next
Next: Next: Next
Next: Next: Next
Next: Next: Next
Next
End Sub