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.

×

Создать сделку

Продавец: ник или ID

Название сделки:

Сумма USDT:

Срок сделки, дней:

Кто платит комиссию:

Условия сделки:

После создания сделки средства будут зарезервированы в холде до завершения сделки.

×

Мои сделки

Загрузка...
×

Сделка


Загрузка чата...