Як зняти захист з файлу, створеного під ACCESS 2000, MS Office, Програмні керівництва, статті

Існує кілька програм, які знімають пароль з файлів Access. Ось адреси сайтів. www.lostpassword.com, www.elcomsoft.com та інші. В основному вони показують пароль довжиною від 2-16 символів (залежить від версії програми). Можна було обмежитися цією відповіддю, але так як ми займаємося детально питаннями програмування та захисту бази даних розглянемо його більш серйозно.
Опис алгоритму пароля для Access 2000 у мене немає, хоча шматочки інформації щодо шифрування Аccess 97 в англомовному Інтернеті є. Сутність інформації в тому, що пароль шифрується найпростішим алгоритмом XOR і його зсув від початку файлу = 67 байт. Але цих даних явно недостатньо для розшифровки. Тому, спробуємо скласти програму, яка сама проаналізує пароль. Сутність запропонованого методу полягає в багаторазовому порівнянні файлів з паролями і без них, і пошуку закономірностей. Всі результати експерименту зберігаються в таблиці і використовуються для аналізу пароля. Приклади програм для визначення пароля Access 2000 записані в 7 прикладі файлу: la_prot.mdb
Таким чином, ми зможемо визначити а) довжину пароля, б) зміщення пароля від початку файлу, в) позицію мінливих байтів г) маску пароля (слово для розшифровки). Використовуючи функцію funAnalysisPassword, можна отримати наступну інформацію.
1. Cмещеніе пароля від початку файлу 67 байт.
2. Маска пароля складає 40 байт (довжина пароля 20 символів)
3. Байти маски:
 [67 – 69]       055 056 212 156 250 163 206
 040 230 118 038 138 096 049 004 123 054
 144 226 223 177 018 100 019 067 170 063
 177 051 081 241 121 091 247 037 124 042
 …
 [115-117]
Байти Маски [67-69] змінюються в залежності від дати, встановленої на комп’ютері. Наприклад, на 17.03.2001 = 228,107,236. Перевірено, що 67 байт – змінюється щодня, 68 байт – щорічно, а 69 байт має ще більш тривалий період зміни. Байти [115-117] змінюються при кожному створенні бази даних. Звідси можна зробити – що це байти, які зберігають деяку інформацію по даті створення бази даних.
4. Алгоритм шифрування XOR.
Приклад зашифровки: p XOR m =?.
Приклад розшифровки:? XOR m = p. В прикладах використовуються наступні позначення: p-байт пароля бази даних, m – байт маски пароля,? – Зашифрований байт.
5. Символи зберігаються в форматі UNICODE, тобто 2 байта на символ, тому необхідно провести конвертацію рядка пароля. Це робиться так: password = StrConv (s, vbFromUnicode)
Таким чином, для знаходження пароля досить визначити байти 67-69, використовуючи інформацію з байтів 115-117. Задачка дуже цікава і оригінальна, так що подумайте трохи самі. У наведених ж прикладах la_prot маска пароля визначалася по іншому, приблизно. Для цього дивіться функцію funGetMaskPassword. Сутність методу. а) читаємо дату створення файлу FileDateTime (myDataBase), б) встановлюємо час Time = timeDB, в) створюємо незахищену базу і читаємо маску в масив, г) повертаємо поточний час і видаляємо зайві файли.
Після того як файл розшифровується, запускалася програма для тестування пароля. Використовуючи цю програму, можна знаходити деякі байти пароля звичайним перебором символів. Код її наведено нижче:
Public Function funTestPassword(strMdb As String, strPassword As String) As Boolean
Dim cnn As New ADODB.Connection
cnn.ConnectionString = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” & strMdb & “;Mode=Read;Jet OLEDB:Database Password=” & strPassword
cnn.Open
“Далі йде перевірка на помилку
PS. У прикладі 7 (la_prot.mdb) Ви знайдете і інші функції, що працюють з паролем. Використання їх необов’язково, тому що якщо Ви знаєте пароль, то його можна видалити або змінити, використовуючи Access, але для перевірки різних алгоритмів можуть стати в нагоді.






Питання 59 (14.11.2000). Ось зіткнувся з такою проблемою. Як на Access 97 (зі своєї програми) викликати – Диспетчер пов’язаних таблиць? Як в Access 2.0 робиться знаю, але в 97 це вже не проходить.
Відповідь. Варіанти створення диспетчера таблиць є на сайті, підійдуть і для Access 97. Для Access 2000 можна запустити команду: Application.CommandBars (“Menu Bar”). FindControl (, 3996,,, True). Execute
PS: Команда буде працювати в тому випадку, якщо у Вас є зв’язані таблиці, і Диспетчер пов’язаних таблиць встановлено при інсталяції Access.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*