***************************************************************************
'
' Visual Basic Source Code
' Situs mengenai seputar pemograman menggunakan visual basic.
' http://www.geocities.com/vb_bego
'
' Kirim pertanyaan anda ke:
'
' vbhelp_us@ yahoo.com
' mail42me@ telkom.net
' VanJava@ telkom.net
'
' Author: CyberBoy - BEGO admin
' Update terakhir, Maret - 2004
' � http://groups.yahoo.com/group/vb_bego
'
' NB: Anda Boleh mengedit source code ini, tanpa menghilangkan
' nama pembuat asli
'***************************************************************************
' VIVA PROGRAMMER INDONESIA
'
Option Explicit
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 "Nama File: " & Filename
lstPass.AddItem "Ukuran : " & FileLen(Filename) & " bytes"
lstPass.AddItem "Panjang password: " & IIf(inLen = 0, 20, inLen - 1)
lstPass.AddItem "---------------------"
lstPass.AddItem TempPwd
End Sub
' EOF For access 97 password
'Nah sekarang kita coba untuk access 2000/xp
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 "Nama File: " & Filename
lstPass.AddItem "Ukuran : " & FileLen(Filename) & " bytes"
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(2) = "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
Private Sub Form_Load()
lstPass.AddItem "Jebol Password Ms.Access 97/2000/XP"
lstPass.AddItem "Copyright 2004 by CyberBoy - BEGO"
lstPass.AddItem "Update terakhir, April 2004"
lstPass.AddItem ""
lstPass.AddItem "* Open Source *"
lstPass.AddItem ""
lstPass.AddItem "Email: [EMAIL PROTECTED]"
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Me.WindowState = vbMinimized
End
End Sub
Private Sub Label2_Click()
On Error Resume Next
Shell "explorer mailto:[EMAIL PROTECTED]", 1
End Sub
Untuk keluar dari millis ini, kirim email kosong ke:
[EMAIL PROTECTED]
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/programmer-vb/
<*> To unsubscribe from this group, send an email to:
[EMAIL PROTECTED]
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/