Thursday, July 3, 2014

Cách phá Pass Protect sheet trong Excel



Yêu cầu hệ thống:
  1. Có MS Office
  2. Có cài VBA, nếu bạn không biết nó là gì, hãy thử mở excel, xong ấn Alt+F11, nếu nó mở ra cửa sổ Microsoft Visual Basic tức đã cài VBA, nếu nó không ra thì hãy chạy lại bộ cài MS Office, chọn update, xong tìm trong nhóm cuối cùng của các gói cài đặt sẽ thấy nó.Sau khi đã chuẩn bị đầy đủ đồ chơi, tiếp theo thực hiện các bước sau:
  3. Mở file excel cần mở khoá lên
  4. Ấn Alt+F11 để mở VBA
  5. Ấn F7 để mở cửa sổ soạn thảo mã nguồn
  6. Dán đoạn code bên dưới vào cửa sổ vừa mở ra đó
  7. Ấn F5, hoặc vào menu Run\Run Sub/User form để chạy đoạn mã này
  8. Nếu ấn F5 mà nó yêu cầu lựa chọn Macroname thì chọn SheetXXX.unprotectedAll rồi click Run nó sẽ chạy
  9. Chờ từ một đến vài phút (tuỳ tốc độ CPU từng máy tính) sẽ có thông báo sheet đã được unprotect. Mỗi khi một sheet được unprotected thành công, bạn sẽ nhận được thông báo, nhớ nhấn Ok để nó unprotect sheet tiếp theo nhé. Nếu không muốn nhận được thông báo này, bạn chỉ cần xoá 3 dòng mã từ dòng 50 đến dòng 54 là xong.
Sub unprotectedAll() Dim i As Integer
For i = 1 To Application.Sheets.Count PasswordBreaker Application.Sheets(i) Next
End Sub
Sub PasswordBreaker(MySheet)
Dim pass As String
If MySheet.ProtectContents = False Then
MsgBox "Sheet '" & MySheet.Name & "' is unprotected!", vbInformation
Else
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
pass = Chr(i) & Chr(j) & Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)


MySheet.Unprotect pass
Next: Next: Next: Next: Next: Next
Next: Next: Next: Next: Next: Next
If MySheet.ProtectContents = False Then
MsgBox "Sheet '" & MySheet.Name & "' is unprotected!", vbInformation
End If
End If
End Sub

No comments:

Post a Comment