Исследование Ulead COOL 3D 3.5

Перейти на главную страницу, индексную страницу.


Автор: ViNCE [AHT] <vincelabs@pisem.net>

Инструменты: SoftICE, W32Dasm, FileInfo, Hex-редактор
Рейтинг программы: [8\10]
Download: www.ulead.com

iNTRO

Ulead COOL 3D (далее - "UC3D") мне попался чисто случайно. Однажды один знакомый рассказал, что нашёл забавную прогу для создания 3D заголовков с наложением текстур. Я особо не придал проге внимания, но вскоре знакомый опять обратился ко мне, но уже с просьбой "вылечить" прогу от trial-периода. Итак, прога попала мне в руки... Осмотрев "пациента" выяснилось, что триал всего 14 дней...
Приступим...

rIPPING

Итак у нас куча файлов в папке с установленной программе. Разработчики из Ulead явно перестарались наплодив 52 библиотеки, ну и конечно, два главных файла: u3dedit3.exe - главный файл программы и uvedit.exe - файл проги-редактора flash формата. Обе програмки при старте сияют нагом... а после 14 дней наг пишет "bla-bla-bla... expired!". В последнее время разработчики стали очень-очень часто навешивать всякие протекторы на свои детища.
Натравливаем FileInfo на exe-шник и видим... прога не запакована, она написана на Visual C++ v6.0. Теперь можно UC3D свободно отдать WinDASM'у. После дизасминга смотрим SDR (String Data References) - к сожалению ничего интересного так и не удалось найти. Даже поизучав код в районе строки "Serial Number" я так ничего путного и не нашёл. Тогда придётся попробовать SoftICE... Когда я смотрел код проги в WinDASM'е, то была куча вызовов функции RegQueryValueEx. Ставим точку останова:
bpx RegQueryValueEx
Запускаем прогу. Прога прервётся в какой-то непонятной библиотеке (среди библиотек UC3D я её не нашёл). Ладно, она нам не нужна. Жмём F12 пока не окажемся в модуле самой программы. Мы должны оказаться в секции ".text".
Как только мы окажемся там можно идти смело по F10. В итоге мы дойдём до такого вызова процедуры:
:0047CA19 E82AFB0300  Call 004BC548
Как только выполниться данный вызов появиться "всеми любимый" наг и напомнит нам о нашем долге перед разработчиками.
Что тут можно сделать? Занопить? 9090909090909090... Нет... В коде (если разработчики это предусмотрели) может быть защитный механизм, который обнаружит нопы... но мы лучше найдём ключевой переход:
:0047CA0D 7517                    je 0047CA26 //Если мы зарегистрированы, то прыгаем и минуем наг
:0047CA0F 8D8528FAFFFF            lea eax, dword ptr [ebp+FFFFFA28]
:0047CA15 50                      push eax
:0047CA16 FF766C                  push [esi+6C]

* Reference To: u32Cfg.ulcCheckLegality, Ord:0004h
                                  |
:0047CA19 E82AFB0300              Call 004BC548 //Наш наг
:0047CA1E 85C0                    test eax, eax
:0047CA20 0F845A030000            je 0047CD80

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0047CA0D(U)
|
:0047CA26 8DBEF8000000            lea edi, dword ptr [esi+000000F8]
:0047CA2C 6804010000              push 00000104
Т.е. нам следует поменять переход je по адресу 0047CA0D на безусловный (jmp). Теперь удаляем все бряки в Айсе и патчим файл в редакторе. Запускаем. Нага нет! Закрываем. Переводим время на год вперёд. Запускаем. Нага нет. Мы крякнули прогу.

oUTRO

Защиты как таковой нет... Раньше я видел продукты от Ulead защищённые VBox'ом, а теперь вообще без защиты...

---
ReleaseDate: [13.09.2003]

ViNCE [AHT]
vincelabs@pisem.net


Материалы находятся на сайте http://cracklab.narod.ru/doc/






Hosted by uCoz