Страницы: 1
RSS
Обход пароля защиты страницы
 
Рискую нарваться на грубость)), т.к эта тема уже много раз тут обсуждалась. Но вдруг данный аспект в ней еще не затрагивался (поиском не нашел).  
В общем, есть такой несложный код (ниже). Удивительно хорошо работает (по-крайней мере, то, что нужно было, освободил от защиты). Но никак не могу понять, как он работает. Опишите кто-нибудь, плиз.  
 
ПС смотрел, что пишет макрорекордер - никакого намека на пароль.  
ПС1 ссылка откуда взял http://spreadsheetpage.com/index.php/tip/spreadsheet_protection_faq1/#P1  
 
Sub PasswordBreaker()  
   'Author unknown  
   'Breaks worksheet password protection.  
   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  
   ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & _  
       Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _  
       Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)  
   If ActiveSheet.ProtectContents = False Then  
       MsgBox "One usable password is " & Chr(i) & Chr(j) & _  
           Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _  
           Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)  
        Exit Sub  
   End If  
   Next: Next: Next: Next: Next: Next  
   Next: Next: Next: Next: Next: Next  
End Sub
 
перебором комбинацией строки из 12 символов с подстановкой символа по его коду от 65 до 126  
ActiveSheet.Unprotect вот это снятие защиты
 
> Но никак не могу понять, как он работает.  
Простой перебор 12-символьных строк, причем первые 11 букв могут быть A или B, а 12-я буква - символы с кодом от 32 до 126.
 
{quote}{login=Казанский}{date=18.11.2010 01:51}{thema=}{post}> Но никак не могу понять, как он работает.  
Простой перебор 12-символьных строк, причем первые 11 букв могут быть A или B, а 12-я буква - символы с кодом от 32 до 126.{/post}{/quote}  
 
Я разделяю непонимание автора, так как этот макрос скинул пароль "555" строкой AABBABBAAAAG
 
{quote}{login=The_Prist}{date=18.11.2010 02:06}{thema=Re: Re: }{post}{quote}{login=webley}{date=18.11.2010 02:03}{thema=Re: }{post}Я разделяю непонимание автора, так как этот макрос скинул пароль "555" строкой AABBABBAAAAG{/post}{/quote}Не надо потому что воспринимать пароли, как нечто буквенное. Это шифрованные символы в виде байтов. И подбор ведется изсходя из этого.{/post}{/quote}  
Я понимаю функцию for... next. Вопрос глубже)  
Пример с 555 и AABBABBAAAAG. По идее тут зашифрована одна и та же комбинация байтов. Но какая? Почему автор кода написал его именно так? и почему отличается последний символ? загадка...
 
Кое-что тут: http://faqs.org.ru/softw/editors/office_pwd.htm  
Цитата:  
"Хеш (hash) - однонаправленная функция, при помощи которой для произвольного  
блока данных вычисляется уникальный идентификатор фиксированной длины. В FAQ  
мы будем говорить в основном о хеше пароля, который представляет набор байт,  
полученных из пароля по определенному алгоритму. Использование хешей позволяет  
осуществить проверку правильности пароля, не храня его в документе."
 
{quote}{login=Казанский}{date=18.11.2010 01:51}{thema=}{post}> Но никак не могу понять, как он работает.  
Простой перебор 12-символьных строк, причем первые 11 букв могут быть A или B, а 12-я буква - символы с кодом от 32 до 126.{/post}{/quote}  
таблица символов ascii  
http://techonthenet.com/ascii/chart.php  
я вот недогоняю, почему перебор от 64 до 65? почему не от 0 до 126?  
(поставил у себя значения для всех 32-126: думает уже минут 10))
 
{quote}{login=Казанский}{date=18.11.2010 02:53}{thema=}{post}Кое-что тут: http://faqs.org.ru/softw/editors/office_pwd.htm  
Цитата:  
"Хеш (hash) - однонаправленная функция, при помощи которой для произвольного  
блока данных вычисляется уникальный идентификатор фиксированной длины. В FAQ  
мы будем говорить в основном о хеше пароля, который представляет набор байт,  
полученных из пароля по определенному алгоритму. Использование хешей позволяет  
осуществить проверку правильности пароля, не храня его в документе."{/post}{/quote}  
VelvetSweatshop что-то не сработал))
Страницы: 1
Наверх