Underground InformatioN Center [&articles] 
[network & security news] [RSS & Twitter] [articles, programing info] [books] [links, soft & more...] [soft archive][home]

Взлом протектора 1Way или как не надо писать защиты

Данная статья написана только c целью изучения стойкости протектора 1Way.

1Way это защита навешиваемая на шароварные программы, выполненная в качестве dll. Заявленные свойства:

  • DLL запакована и имеет проверку целостности кода
  • размер dll 38кб
  • Скачавший версию пакета 1Way с сайта разработчиков не сможет воспользоваться им для взлома программ
  • при создании регистрационных ключей используется криптоалгоритм
  • замечает трюк с изменением даты

Чтобы проверить это нам потребуется:

Начнем. Вообще первое правило при исследовании протекторов - читай, внимательно читай документацию. Так и поступим. Вот интересные функции:

Автор создает ключики для своей шароварки с помощью:

GenRegCode{
  RegString   Registration string (such as the user's name), null-terminated string
  NDays       Number of days before registration code will expire, 16-bit integer
  RegOptions  Registration Options, 16-bit integer
}

В результате получаем Serial.

Проверка введенного юзером ключика осуществляется функцией:

SharewareReg{
  Company    Company Name, null-terminated string
  Product    Product Name, null-terminated string
  RegString  Registration string (such as the user's name), null-terminated string
  Serial     Serial number or registration code, null-terminated string
}

В результате получаем:
0 - если Serial верный
1 - если нет
2 - если срок работы программы закончился

Замечаем, что и при создании и при проверке серийника используется некий параметр RegString. Причем для создания серийника фактически только эта RegString и нужна.

Вот на этом этапе, только прочитав документацию протектора можно сделать вывод о том, что стойкость защиты минимальна, авторы протектора ничего не понимают в вопросе а те, кто купил 1Way потратили свои деньги зря.
Взломщику нужно всего лишь найти в программе вызов SharewareReg, посмотреть, что туда передается как RegString, и воспользовавшись утилитой для генерации ключей из пакета 1Way, получить готовый серийник.

Чтоб не быть голословным, коротенько рассмотрим реальный пример. Установим что-нибудь с www.idexworld.com (я установил плагин WebPublisher). Среди установленных файлов замечаем OneWay.dll. Размер 38кб. Оно. Длл пожата PE-Compact что, видимо, должно было обеспечить невозможность изучение ее кода.
Запускаем программу. Доходим до регистрационного диалога, запускаем PE Tools, дампим OneWay.dll и суем ее в IDA. Конечно можно было дллку распаковать, но так, как нам надо только посмотреть ее код то сойдет и простой дамп. В листинге находим функцию SharewareReg по адресу 4000F2BC. Все, IDA нам больше не нужна.
Запускаем программу под OllyDbg, опять идем регистрировать программку. Ставим брейк в OneWay.dll на SharewareReg. Введем в качестве имени "UiNC" и серийник "123". Останавливаемся на брейке:

  4000F2BC > 55               PUSH EBP

Смотрим на стеке параметры для SharewareReg:

  0012EF54   011A596C  ASCII "DVA_LTD"           -> Company
  0012EF58   011A5980  ASCII "WebPublisher"      -> Product
  0012EF5C   011AB590  ASCII "WebPublisherUiNC"  -> RegString
  0012EF60   011A819C  ASCII "123"               -> Serial

Все. Мы получили RegString.
Вот так просто можно пробить эту "профессиональную" защиту.

Всем кто меня знает - привет.
[c] Corbio
Статья написана в Июне 2003 года специально для UiNC (www.uinc.ru)

Keywords: 1Way, shareware protection, reversing, cracking, защита программ, взлом программ

Все документы и программы на этом сайте собраны ТОЛЬКО для образовательных целей, мы не отвечаем ни за какие последствия, которые имели место как следствие использования этих материалов\программ. Вы используете все вышеперечисленное на свой страх и риск.

Любые материалы с этого сайта не могут быть скопированы без разрешения автора или администрации.


[network & security news] [RSS & Twitter] [articles, programing info] [books] [links, soft & more...] [soft archive][home]
 Underground InformatioN Center [&articles] Choose style:
2000-2015 © uinC Team