|
Special LinksNotes & ArticlesSearch Engine
|
Unprotected Access PasswordThis document available only in Bahasa Indonesia'******************************************* ' ' Copyright by CyberBoy – BEGO ' April 2004 – Uber Bandung ' '*************************************** ' Diharapkan tidak menghilangkan ' nama pembuat source code Option Explicit ' ' Untuk Access 97 ' Private Sub GetMs97(Filename As String) ' di procedure ini kita akan mencoba mengetahui ' password untuk ms.access 97 terlebih dahulu ' kita buat variable array sebanyak 20 dengan ' tipe byte. Kenapa harus 20? Ini disebabkan ' panjang maximal password access adalah 20. Dim data(0 To 19) As Byte, Pwd As String ' Sekarang kita buka dan ambil data dari file ' yang akan di crack passwordnya. Open Filename For Binary As #1 ' Kita ambil data mulai dari posisi 67. ' kenapa harus pd posisi 67? Ini dikarenakan ' password yang disimpan ' oleh ms.access ada pada posisi tersebut Get #1, 67, data Close #1 Dim MaxSize, I As Integer, TempPwd Dim EncDec As String, nKey ' untuk enskripsi dibawah ini, saya tidak bisa ' menjelaskannya. Karena terlalu panjang utk ' dijelaskan. Enskripsi ini hasil penelitian saya ' jadi anda tinggal pake aja OK! ' Panjang keseluruhan enskripsi ini tentunya sama ' dengan panjang max password (20). ' Kemudian kita split ke variable nKey. EncDec = "86 FB EC 37 5D 44 9C FA C6 5E 28 E6 " & _ "13 B6 8A 60 54 94 7B 36" nKey = Split(EncDec, " ") Dim spos As Integer ' Nah sekarang kita gunakan metode/fungsi XOR ' untuk mendapatkan password aslinya ' Nilai yang ada pada variable data, ' dibandingkan dengan nilai enskripsinya. For I = 0 To 19 TempPwd = TempPwd & Chr(data(I) Xor ("&H" & nKey(spos))) 'var ini digunakan untuk mengetahui panjang password yang ada pd file yang dicrack. spos = spos + 1 Next I 'hasilnya kita cetak ke listbox(lstpass) Dim inLen As Integer inLen = InStr(1, TempPwd, Chr(0)) lstPass.AddItem "Panjang password: " & _ IIf(inLen = 0, 20, inLen - 1) lstPass.AddItem "---------------------" lstPass.AddItem TempPwd End Sub '*********************************************** ' ' Untuk Access 2000/XP ' '*********************************************** Private Sub GetMs2000XP(Filename As String) ' kita buat variable array sebanyak 40 dengan tipe byte. ' kenapa harus 40? Ini disebabkan panjang maximal password ' access adalah 20, kemudian dikalikan 2 maka hasilnya 40. Dim data(39) As Byte, cek As Byte Open Filename For Binary As #1 ' Kita ambil data mulai dari posisi 67. ' kenapa harus pd posisi 67? Ini dikarenakan ' password yang disimpan ' oleh ms.access ada pada posisi tersebut Get #1, 67, data Get #1, 151, cek Close #1 ' Sebelum melanjutkan mecrack 2000, ' kita periksa dahulu versi dari file tersebut ' jika versinya 97 maka kita panggil prosedur ' GetMs97 dan keluar dari rutin 2000 If cek = 0 Then GetMs97 Filename: Exit Sub 'Kita buat var2 pendukung Dim EncDec As String Dim I As Integer Dim H As Integer, nKey Dim nHex As String Dim Pwd As String ' untuk enskripsi dibawah ini, saya tidak ' bisa menjelaskannya. ' Karena terlalu panjang utk dijelaskan. ' Enskripsi ini hasil penelitian saya ' jadi anda tinggal pake aja OK! ' Tentunya enskripsi berikut berbeda dengan ' enskripsi untuk msa97 EncDec = "00 EC DB 9C 40 28 95 8A D2 7B 73 DF " & _ "F1 13 49 B1 B2 79 14 7C" nKey = Split(EncDec, " ") 'Kita cari tau panjang passwordnya, dengan metode XOR Dim inLen As Integer For H = 0 To UBound(nKey) If H Mod 2 0 Then If (data(H * 2) Xor ("&H" & nKey(H))) = 0 Then inLen = H Exit For End If End If Next H ' Hasil pencariannya kita cetak pada listpass lstPass.AddItem "Panjang password: " & _ IIf(inLen = 0, 20, inLen) lstPass.AddItem "---------------------" ' Nah disini kita cari tau passwordnya ' Kita gunakan looping sampai dengan 255 kali ' ini dilakukan karena kita akan membadingkan ' sampai dengan karakter pertama sampai ' karakter terakhir(255) For I = 0 To 255 ' looping kedua berfungsi untuk ' membandingkan nilai asli dari file ' dengan nilai enskripsi For H = 0 To UBound(nKey) If H Mod 2 = 0 Then 'membandingkan nilai nHex = Hex((("&H" & nKey(H)) Xor I)) Else nHex = nKey(H) End If 'membandingkan nilai Pwd = Pwd & Chr((data(H * 2) Xor ("&H" & nHex))) Next H 'Cetak hasil enskripsi yang didapat ke lstpass If InStr(1, Pwd, String(20 - inLen, Chr(0))) Then If InStr(1, Pwd, String(20, Chr(0))) Then lstPass.List(0) = "nggak ada passwordnya" Else lstPass.AddItem Pwd End If ElseIf InStr(1, Pwd, Chr(0)) = 0 Then lstPass.AddItem Pwd End If Pwd = "" Next I End Sub ' ' Untuk tahap terakhir kita tulis code pada cmdExec ' Private Sub cmdExec_Click() With CD .CancelError = True On Error GoTo X .Filter = "Ms. Access 97/2000/XP|*.mdb" .ShowOpen lstPass.Clear GetMs2000XP .Filename Exit Sub X: End With End Sub 12.06.2008. 11:03 This article hasn't been commented yet. |
Articles Pages |
|
| | © 2008, Firdaus Maulana | sNews/FCKEditor | | |
Write a comment
* = required field