Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 12 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Регистрируем Date X Pro v1.0

Обсудить статью на форуме

Массу крэкерских инструментов, видеоуроков и статей вы сможете найти на видеокурсе от нашего сайта. Подробнее здесь.
 Инструменты: старый, добрый S-Ice, я пользовался версией 3.24,
                     немного терпения и совсем немного усилий со стороны
                     головного мозга.
 

О программе...

Это программа-прогноз. С её помощью можно узнать дату смерти и предположительную причину. Так что если вы хотите узнать это, то вам сюда : http://store.in.ru/~nop/PROGRAMS/date_x.exe

Взлом

Ну поехали.

Запускаем объект исследования и появляется такое нестандартное окошечко с 2-мя полями:
1) Серийный номер данной копии программы : у меня он равнялся 464698505, сразу хочу сделать небольшое отступление, данный параметр на разных машинах будет изменяться, соответственно изменяется и 2-ая строка, поэтому вероятность того, что он у кого-то будет одинаковый, очень мала;

2) Пожалуйста введите соответствующий код, ну с этим всё понятно, заплати 100 р. и умирай! Также присутствуют 2 кнопулечки; одна для регистрации, другая для продолжения без регистрации (но оговаривается, что без регистрации прога работает с ограничениями, а именно вы не узнаете даты смерти, своей или другого испытуемого человека, что меня совершенно не устроило, да и вас наверное тоже). И ещё одно важное замечание, программа пожата Shrinker-ом. Все попытки по распаковке ни к чему хорошему не привели, может у вас получится. Итак, ныряем в сайс и ставим бряк на функцию Hmemcpy (естественно после заполнения 2 поля), жмём зарегистрироваться и оказываемся в сайсе, в модуле Kernel32, выходим по F12 в модуль нужной нам программы и видим, что код в котором мы оказались "вложенный", но не нужно выходить из него начинайте трассировать (F10) пока не выйдете из всех вложений. Если сделали всё правильно, то окажетесь вот в таком месте:
 :004A736C          mov EAX, [EBP-04] ;  запись в eax введённого нами кода 
 :004A736F          push EAX ;               код на стек 
 :004A7370          lea EDX ,[EBP-08]
 :004A7373          mov EAX , [004B3480]
 :004A7378          mov EAX, , [EAX]
 
и далее будет CALL , нам туда (F8), а в нём ещё один по адресу : 00407401, опять заходим и добираемся до такого места:

 00408155           mov EDX , 00001001
 0040815A           call 00407D48 ;  его можно пропустить
 0040815F           mov EBX , EAX ;  здесь можно увидеть длину правильного рег.кода(9), набрав
                                                d ebx, и далее трасируем до такого кусочка:
 00408184           lea EDX , [EBP+FFFFEFFE] ; тут увидим интересные цифри-ЭТО ПРАВИЛЬНЫЙ КОД
 0040818E           call 00403988 ; пропускаем
 00403922           mov EAX , ESI ;правильный код из esi в eax
 00403924           call 0040275C ; заходим
 0040275C           push ESI ; правильный код на стек
 0040275D           push EDI
 0040275E           mov ESI , EAX ; тут,думаю всё понятно
 00402760           mov EDI , EDX
 00402763           mov EAX , ECX ; в eax длину верного кода далее доходим до ret , перед выходом
                                               забираем из стека верный код в edi и esi, причём с разных адресов
 00403929           mov EAX , EBX ; мы здесь
 0040392B           call 00403824
 
 

далее выходим из 4 функций и оказываемся вот в таком коде:
004A737F mov EDX , [EBP-08] ; в edx верный код 004A7382 pop EAX ; забираем со стека введённый нами код в eax 004A7383 call 00403BB0 ; прцедура проверки?ныряем туда 00403BB0 push EBX 00403BB1 push ESI 00403BB2 push EDI 00403BB3 mov ESI , EAX ; наш код в esi 00403BB5 mov EDI, EDX ; верный код в edi (у меня он был 136767175) 00403BB7 cmp EAX, EDX ; сравниваем наш код с правильным 00403BB9 jz 00403C4E ; по идее этот переход должен быть критичным для нас, на самом же деле это не так.
Если ввести рег. код равный по количеству цифер, серийному номеру, то критичными окажутся следующие места:

 1)00403BDF JNZ 00403C39
 2)00403BEC JNZ 00403C39
 3)00403C0B JNZ 00403C4E
 
Я поменял значение флага нуля на противоположное и получил регистрацию, открыв ключик в реестре [HKEY_LOCAL_MACHINE\Software\NOP\DateXPro]

"Version"="Vеrsiоn 1.0"
"Code"="136767175"
я с удивлением увидел не введённый код, а правильный, вот такие дела.

Теперь не мешало бы сделать патч, но сразу скажу что с этим у меня нечего не вышло, пробовал я Riscp и некоторые другие модификаторы для патча в памяти, но ничего кроме error-а не получил. Если у вас выйдет можете написать мне. Да, был замечен такой прикол, правда на моей машине я такого не наблюдал, но мне рассказал один друг, так вот после 3 попыток введения неправильного кода, прога выдавала такое сообщение: "Вы сделали 3 попытки, все они оказались неудачными," и далее идёт форматирование диска С, появляется окошечко с линией прогресса "формата", но на самом деле, конечно никакого форматирования не происходило, автор прикалывается.

---
Ну и конечно-же этот материал написан для образовательных целей, а не для использования в целях взлома данной программы, не забывайте что это коммерческий продукт который стоит денег, если вы хотите пользоваться этой программой заплатите автору, тем более, что он тоже живёт в России.

До скорых встреч GoKs!!!

Перепечатано с разрешения www.uofg.com.ua



Обсуждение статьи: Регистрируем Date X Pro v1.0 >>>


Комментарии к статье: Регистрируем Date X Pro v1.0

Данил 09.08.2005 23:53:46
Все это очень интересно, так какой же всетаки код. Если можно то скиньте на danil@list.ru
---

Материалы находятся на сайте https://exelab.ru



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS