ANTICHAT Forum
HOME FORUMS MEMBERS RECENT POSTS LOG IN  
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ
loading...
Скрыть
Вернуться   ANTICHAT > ИНФО > Статьи > Чужие Статьи
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Пример взлома программ защищеных с помощью криптоалгоритма Md5
  #1  
Старый 14.08.2006, 23:38
bobob
Участник форума
Регистрация: 02.06.2006
Сообщений: 241
С нами: 10495658

Репутация: 142
По умолчанию Пример взлома программ защищеных с помощью криптоалгоритма Md5

Пациент
KiXscripts Editor v1.х , (2.2мб)

Инструменты
Numega SmartCheck любой версии
DAMN Hash Calculator v1.5.0
Hiew или любой дизассемблер


Запускаем программу вместе со SmartCheck. Пишем чего-нибудь в диалоге регистрации. Я вводил "Corbio" и "1234567". Естественно получаем сообщение, что наш серийник неверен.

-Click
| OnError
| Len returns LONG:7 // Это размер моего серийника
| MsgBox returns Integer:1 // "Registration is invalid!"


Интересно, а зачем нужен размер серийника? Смотрим в правом окошке SmartCheck offset для строки - Len returns LONG. У меня 11С608, для других версий этой программы будет другой offset. Смотрим в Hiew по адресу 11С607.

call _куда-то
xor ecx,ecx
cmp eax,20h


....Ну и так далее.
Логично предположить, что раз длина серийника сравнивается с 32, то он должен быть именно 32 символа. Проверяем это и видим что я, как всегда, был прав . Посмотрим на получившийся листинг. Теперь, когда размер правилен, мы вышли на саму проверку валидности. Интересный кусок:

Rtrim$ "sHa50WFaXaND6LaMdr1n65Te3l"
String$
CryptCreateHash returns BOOL:1
Len retorns LONG:32 "CorbiosHa50WFaXaND6LaMdr1n65Te3l"
CryptHashData returns BOOL:1
Space$
CryptGetHashParam returns BOOL:1


Строка "sHa50WFaXaND6LaMdr1n65Te3l" статична, ее можно найти в екзешнике. Похоже на то, что эта строка добавляется к имени юзера и от результата считается какой-то хеш. Так как строка начинается с "sHa", то я и подумал, что это алгоритм SHA.
Но посмотрим на листинг дальше. 128 битный хеш "плавно превращается" в строку. Вот она:

RTrim$ "8165591BD4EFB8B67C94925210D388AE"
CryptDestroyHash BOOL:1
Strings$
Strings$
Strings$
MsgBox returns Integer:1 // "Registration is invalid!"


Вот. А так как вводить надо было 32х символьный серийник и полученная строка тоже 32 символа, то скорее всего, это и есть правильный серийник. Проверяем. Так и есть.
Почти все понятно. Остался единственный вопрос - а какой все таки это алгоритм? Тут нам поможет тулзень от Ivanopulo - DAMN Hash Calculator.
Вводим "CorbiosHa50WFaXaND6LaMdr1n65Te3l". Оказывается, это никакой не SHA а MD5.

P.S. - Конечно далеко не все программы защищенные MD5 так бесполезно его используют. Но подавляющее большинство. Стойкость криптоалгоритмов обесценивается неумением их применять.
 

  #2  
Старый 15.08.2006, 00:53
bobob
Участник форума
Регистрация: 02.06.2006
Сообщений: 241
С нами: 10495658

Репутация: 142
По умолчанию

сори, копирайтов не имеется, просто из сборки статей!
 
 



Предыдущая тема Следующая тема
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Онлайн база номеров De1eT Skype, IRC, ICQ, Jabber и другие IM 154 07.01.2008 20:37
«Лаборатории Касперского»: Количество вредоносных программ под Linux резко возросло dinar_007 Мировые новости. Обсуждения. 9 20.08.2006 20:50



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.