В чём будет заключаться взлом
этой программы. Мы просто должны её
зарегистрировать. То есть сделать так,
чтобы не появлялось при старте Winzip окно "Эта
программа не зарегистрирована и т.д."
Давайте этим как раз и займёмся. Заходим в
окно для ввода регистрационной информации
и вводим наше имя и пароль. Видим окно: "Incomplete
or Incorrect Information". Теперь идём в WinDasm и ищем
там строку: "Incorrect". Находим её по
адресу #004080B2. Посмотрим
чуть-чуть пониже(адреса:#004080D4)видим там:
inc dword ptr [004794A4](идёт приращения
константы на 1)
cmp dword ptr [004794A4], 00000003(идёт
сравнения этой константы с 3 попытками)
jne 00408198(ещё не рано?)
Мы на правильном пути. Теперь
посмотрим, что вызвало появление этого окна:
(идём на адрес:#00408044)и видим:
:00408049 cmp byte ptr [0047D928], 00
:00408050 pop ecx
:00408051 je 004080B2
:00408053 cmp byte ptr [0047D958], 00
:0040805A je 004080B2
:0040805C call 00407B4B
:00408061 test eax, eax
:00408063 je 004080B2
Очевидно, что по адресам:#00408049,#00408053
идёт проверка на пустые поля - адрес #0047D928
соответствует полю Name, а адрес #0047D958 - RegCode.
Далее самое вкусное - по адресу #0040805C идёт
вызов функции, которая и проверят наш REG
номер. Что же, давайте посмотрим на эту
процедуру поподробнее (для этого
воспользуемся SoftIce). Я не буду приводит весь
листинг, того что там понаписано - выделим
самое важное. Ставим Breakepoint
на адрес #0040805C (bpx #0040805C) нажимаем на F5 вводим
Имя и RegCode, вылетаем в SoftIce -
жмём F8(заходим в функцию), набираем d ebx (видим,то
что ввели), далее кому интересно, тот может
отдебужить всю процедуру целиком и
разобраться как из имени получается RegCode(написание
генератора выходит за рамки данной статьи) -
мы далее по средствам поисков находим
нужные нам строки:
:00407C4B lea eax, dword ptr [ebp+FFFFFEC0]
:00407C51 pop ecx
:00407C52 push esi
:00407C53 push eax
Ну видим, что RegCode заносится в
регистр eax, а тот в стек(командой push eax). Итак
ставим Breakepoint на адрес #00407С53 (да на любой от #00407C51
до #00407с53), вводим d eax и видим заветный номер.
Теперь идём в окно для ввода номера и вводим
его - получаем поздравления. Вот собственно
и всё.
Как видно даже такие программы
брезгуют защитой. А зря.
PS: Вот вам и
крек без патча.