Pyrhon

2006/Jul/15


สวัสดีครับเพื่อน ๆ ทุก ๆ ท่าน วันนี้ผมอยากพาท่านไปถอดรหัสผ่านฐานข้อมูล ACCESS กันครับ.. อันนี้ทำไว้ใช้งานในกรณีที่เราลืมรหัสผ่านฐานข้อมูล ACCESS (MDB) นะครับ..

หลักการทำงานคือ
- รหัสผ่านไฟล์ MDB ถูกเก็บไว้ใน Headfile จากไบต์ที่ 67 ถึง 79 (ทั้งหมด 13 ไบต์)
- นำแต่ละไบต์มาทำการ Exclusive OR กับค่าคงที่จำนวน 13 ค่า
- ผลลัพธ์จากแต่ละหลักแปลงให้เป็นรหัส ASCII

ขอให้ศึกษาการทำงานจากตัวอย่างโปรแกรมต่อไปนี้ :
def main():
fn = raw_input("ป้อนชื่อฐานข้อมูล mdb : ")
f = open(fn,'rb')
const = [0x86, 0x6b, 0xec, 0x37, ox5d, 0x44, 0x9c, oxfa, oxc6, ox5e, ox28, 0xe6, 0x13]
t = f.read(66)
t = f.read(13)
password = ''
for i in range(len(const)):
password += chr(ord(t[i]) ^ const[i]])
print 'รหัสผ่านของฐานข้อมูล %s คือ %s '%(fn,password)

เมื่อทดลองเรียกใช้งานทำได้โดยเรียก
>>> main()
ป้อนชื่อฐานข้อมูล mdb : c:\dbjs_password.mdb
รหัสผ่านของฐานข้อมูล c:\dbjs_password.mdb คือ สวัสดี1234

- จากการศึกษาและค้นคว้าทำให้สามารถเขียนโปรแกรมถอดรหัสฐานข้อมูล MDB ได้
- แม้จะเข้ารหัสด้วย Character Set ภาษาอะไรก็ตาม สามารถถอดออกได้หมด

----

nprotech !! -

---


edit @ 2006/07/15 09:49:08

2006/Jul/15

http://www.citecclub.org

http://blog.citecclub.org/login.php


edit @ 2006/07/15 09:47:36