Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
9 live by DuoMark SETUP

Оформил: DeeCo
Автор: http://www.cracklab.narod.ru

взят на диске "Хакер №10"

Вот попалась мне эта прога, которая автоматически следит за изменениями в системных файлах и если эти изменения были зделаны несознательно и это, недай бог, привело к каким-то проблемам, то эта программка восстанавливает файлы так, что даже намёка на глюки не будет. Так вот, запустил я инсталяцию (setup.exe) и увидел душераздирающую надпись: "Извините, но триал этого сетапа истёк! сорри!". Ну ни хера себе, подумал я. Мало того, что сама прога триальная, так ещё и установка её триальная. "Я увидел это всё и стал подругам звонить..." Короче говоря, после недолгих раздумий я решил установить таки прогу (судя по виду установки - прога не крепкая). Первым делом я дизассемблировал прогу WDasm'om и начал искать сообщение об ошибке в String Reference, но ничего дельного там не нашел :( Затем по привычке открыл айс и ввёл такой вот бряк:

bpx GetLocalTime
и соответственно запустил прогу, послен нажатия ОК в первом окне, а как я уже говорил, после этого нажатия выскакивает окно о конце триальности, и выскочил в айсе, после чего нажал F11 (чтобы очутиться не в kernel32.dll, а в setup.exe) и вот что увидел:
call [kernel32!GetLocalTime]
lea ecx, [esp+00]
push ecx
call [kernel32!GetSytemTime]
mov dx, [esp+0A]
....
....
Это всё не то, и до процедуры реальной проверки ещё нужно скролить и скролить, поэтому нажимаем F10 до тех пор, пока не увидим это место:
add edx, ecx
cmp edx, -05 ; проверяем результаты проверок
jl 00401589  ; если они негативные - прыгаем
cmp edx, 5A  ; опять проверим
jge 00401589 ; опять прыгнем туда же :)
cmp edx, 50  ; ещё проверка
jl 00401517  ; ещё прыжок.
Я сначала хотел убрать эти проверки, после чего у меня выскакивало таки то окно, но при нажатии ОК, выскакивало другое, что триальная установка ещё действует, но мне смотреть на эти галимые окна не захотелось и я начал думать дальше. Потом я снова проделал шаги, описанные выше и обнаружил, что чуть ниже последнего листинга (около 3 строчек вниз есть четрые подряд call'a:
call 00405470 ;загрузка текста для первого message
...
...
call 00405670 ;вызов первого сообщения
...
...
call 00405470 ;загрузка текста для второго message
...
...
call 00405670 ;вызов второго сообщения
:0040152C mov bl,01
я подумал и придумал вот что: а если убрать все проверки, о которых я писал выше, и вместо них зделать прыжок (jmp) сразу за вызовы сообщений об окончании триальной установки и о его волшебном возобновлении :)
и правда, когда я заменил первую строку проверок (cmp edx, -05) на (jmp 0040152C), то после этих изменений никаких сообщений не осталось (кроме приветственного) и потом сразу же начиналась установка.

На таком простом примере я показал, как бороться с "триальными" Setup'aми (хотя я чесно говоря с таким родом защиты столкнулся впервые, чтобы триальную прогу да ещё и триальным сетапом :)

А для особо ленивых вот готовый крак:
----------вырезать тут--------
9live's SETUP CRACK by vallkor//PTDS(vallkor@chat.ru)

you can install it when you want!
setup.exe
000008EB: 83 EB
000008EC: FA 3F
000008ED: FB 90
----------вырезать тут--------
исследовал и наваял туториал:
vallkor //PTDS (vallkor@chat.ru)
{Комманда PTDS нуждается в новых членах! Если вы считаете, что способны на многое и хотите поделиться своими знаниями и взамен получить новые пишите мне}

Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay