Надеюсь, что это за программа объяснять не надо.
Итак через определённый промежуток времени
программа выдаёт предупреждение, что период пользования продукта уже истёк и неплохо было бы
её приобрести, но весь вопрос опять упирается в финансы.
Финансов нет,но есть голова и руки, и главное есть желание что-нибудь сломать.
И объектом нашего нападения мы выбираем ACDSee v 2.3.
Сразу же обрисовываю план действий: Нам нужно убрать окно,
которое извещает нас о конце времени использования программы.
И сделать программу абсолютно похожей на легальную.
Итак начнём.  

Первым делом давайте посмотрим на
регистрацию. Вводим в полях что-нибудь и видим окно
"Your name and password do not match". ОК давайте попробуем
зарегистрироваться. Ищем в WinDasm "match", находим по адресу
#00407B40. Само окно вызвалось из адреса #00407ACA туда и идём, там 
видим: 
test eax,eax 
jne и наш адрес 

Вместо jne ставим je и видим, что
зарегистрировались, но окно Регистрации появляется снова
и в Caption есть слово Unregistered. От этого мы сейчас избавимся.
Ищем Unregistered находим  по адресу #0040132B вместо
je ставим jne. Видим, что теперь в Caption всё спокойно.
Но окно-то всё ещё появляется. Теперь настала очередь и окна. Идём по адресу #0040745D видим там: 

cmp eax,001 je (меняем на jne) 

Именно этот скачок нам даёт обойти MessageBox. Тут нашу миссию можно считать
выполненной,
но есть одно "НО" в пункте Tools осталась команда Register по
идее в нормальных программах такого рода команды исчезают.
Смотрим исчезает ли здесь она. Да исчезает - здесь есть функция
RemoveMenu и находится она по этому адресу #004010E4, а дальше идёт следующее: 

test eax,eax je (меням на jne) 

И в заключении давайте в окне "О программе" сделаем так,
чтобы не было написано, что это
незарегистрированная версия. Итак идём по адресу
0040173D. Видим там: 

cmp eax,001 
jne .000401775(меняем на je) 

Всё программа полностью сломана и теперь никто не отличит её от купленной. 

Резюме 

Не надо REG номер записывать в реестр и читать его от туда (здесь идёт проверка в лоб). Запишите ключ в конец своего же файла (например как это сделал автор программы SHDN, но
сделал он это слишком топорно) или раскидайте его по коду
предварительно подвергнув его XOR. Не надо менять Сaption при запуске в зависимости от правильности проверки из реестра.
Не задавать текст в окнах в явном виде. Получайте его по средствам преобразований.
Программа действительно хороша и действительно стоит денег,
но видите плохая система защиты, и всё идёт на смарку.
Не гоже таким программным продуктам иметь такую защиту. 

PS 

Предвижу ваши возгласы: "Почему версии 2.3".
Да потому что она мне показалась наиболее интересной.
Ну, например возьмём более позднюю версию 3.1.Там все ошибки только
приумножились. За чем-то автор стал использовать DLL для проверки
даты. И функцию назвал TrialPeriod_remindToday. Я просто скажу тем,
у кого этой программы просто нет - там каждый день выскакивает окно о
том, что это Trial версия. И нужно всего пойти по адресу:#004045C4
вместо 75 ставить 74 и все окна пропадают. Как видите функция вызывается из
DLL - сработал
синдром JukeBox.

Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии