скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Три примера крэка программ



Автор: Bad_guy
WEB сайт: http://cracklab.narod.ru

Вот три примера крэка программ с нарастанием по сложности (в пределах своей компетентности).

1. Самая простая защита программы, которая мне попалась за мой период работы - Screen Loupe for Windows 95 NT v4.5 [122 Kb] - она увеличивает часть рабочего стола, показывает координаты мыши на столе, цвет под указателем мыши в виде #XXXXXX, грабит экран и другое, вообщем иногда нужна.

Она относится к классу Shareware (мой любимый) и показав себя в действии требует регистрации в течение ХХ дней (это не имеет значения) с начала использования.

Ну, я взял и, недолго думая, поставил в SoftIce'е брэйкпойнты на GetWindowTextA и GetDlgItemTextA (надеюсь вы знаете как это делать, если нет, то сначала прочитайте текстик, ссылка на который находится в самом верху этой страницы), ввёл данные в поля Name, Company, Serial#, причём на месте Serial# я обычно ставлю 12345 (3039h). Нажимаю OK и программа забрейкпойнтилась по GetDlgItemTextA - нажав 2 раза F12 и посмотрев в регистре ESI вы увидите введённое имя, по следующему GetDlgItemTextA увидите вашу фирму, а далее по ещё одному GetDlgItemTextA, оказавшись по адресу 40626B можно посмотреть в регистре ECX (команда: db ECX) кое-что (ну, что узнали?), а затем пройдя по F10 до адреса 406271, посмотрите на EAX - я там увидел 3039 (это шестнадцатиричное 12345), далее EAX копируется в EBX. Сейчас можно предположить, что правильный номер, когда он вычислится, будет: во-первых - сравниваться с EBX, во-вторых - в шестнадцатиричном виде. Я посмотрел далее и вот оно !!! по адресу 4062B8 CMP EAX, EBX , а дальше JZ XXX... Смотрим правильный рег. номер командой ?EAX , можно записать его на бумажку и подпрыгивать от радости, когда программа скажет вам Thank You!, но я предлагаю сделать проще: когда вы ещё по адресу 4062B8 - пишите команду r ebx=eax - и выходим из SoftIce'a, ну что ж, одна программа сломана. Вот, где она сохраняет свои регистрационные данные: HKEY_CURRENT_USER\Software\Software by Design\Screen Loupe for Windows 95/NT\Registration

2. Более сложная защита программы (...но на самом деле очень простая :-), которой защищено БОЛЬШИНСТВО программ класса ShareWare была применена авторами программы BadCopy99 v1.5 [273 Kb] Программа эта весьма замечательная и интерфейс у неё симпатичный, она нужна для того, чтобы считывать информацию с попорченных дискет и дисков(помните такую ошибку: "Неудаётся произвести чтение с устройства"), нечитаемые сектора заменяются нулями.

Ну для начала я открыл её в Restorator'e и сразу понял, что написана она на Дельфи и установка брейкпонтов GetWindowTextA, GetDlgItemTextA ничего мне не даст, тогда я воспользовался ЗАМЕЧАТЕЛЬНЕЙШИМ брейкпойнтом bpx hmemcpy и, конечно, не безрезультатно.

Посмотрим, сколько раз программа прервётся по hmemcpy ---- 4 раза - появился MessageBox, ага - очень хорошо даже окошечко ввода данных не закрылось, теперь по четвёртому hmemcpy будем начинать смотреть алгоритм работы программы - смотрим, смотрим (жмём F12 пока RET ни кончатся) - ну вот мы пришли на код:

MOV EDX, [EBP-38]
POP EAX
CALL 00403E94

Перед входом в процедуру смотрим данные по адресу EAX

:d EAX - это введённый вами код;

теперь EDX:

:dedx - ну что ? вот и код - ещё тёпленький совсем ! 

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

3. Ну и наконец самый сложный способ защиты (для новичка)...надо сказать я долго думал, прежде чем выбрал эту программу...пожалуй это будет Xara3D4 (2 May 2000) [989 Kb] - вы набираете текст на клавиатуре, он выводится как трехмерный объект, вы можете вращать его, натягивать на него текстуру, на фоне тоже можно использовать текстуру из внешнего файла, выходной файл может быть либо анимация: GIF, AVI; либо картинка: BMP, GIF, JPG. Но плоха она тем, что пока вы не "зарегистрированы" на фоне КРУПНЫМИ БУКАМИ сотни раз написано слово DEMO, и ясно, что пока мы это не уберём, о качественном результате речь не идёт. Метод защиты у этой программы довольно запутанный, проверка пароля зарыта где-то в процедурах. Сразу же оговорюсь, что ломает она себя сама, как и Screen Loupe, но в отличие от неё она для вычисления своего пароля использует имя компьютера + случайно или псевдо-случайно сгенерированный для себя код. Вот это-то меня поначалу и подвело: поломавшись она создала свой ключ в реестре, а я взял, да и скопировал этот ключ + псевдо-случайно сгенерированный код (который она показывает в заголовке окна регистрации) из реестра в файл реестра и думал, что всё на этом, не тут-то было: пришёл я на работу, установил программу, подсунул в реестр те данные и круто обломался...ведь имя компьютера на работе другое. И тогда мне в голову пришла мысль злостно её поломать ХА-ХА-ХА

4. Сразу предупрежу вас о граблях-программах на которые иногда мне приходилось наступать. Дело в том, что существуют ShareWare программы (их примерно 25% от общего числа ShareWare), которые практически невозможно взломать (обычно они очень дорогие от 40$ или очень дешёвые 2$) Комментарий от 7 мая 2002 года: C прискорбием сообщаю, что программы скаченные мной в 2002 году удивили меня хорошей защитой - теперь не взломать где-то 50-70% этих программ. Что ж, может это и хорошо, что программисты умнеют ?!, а может это я скачиваю слишком "умные" программы ? Комментарий от 16 августа 2002 года: Оказалось, что программисты не умнеют, а просто юзают ASProtect и подобные программы, да ещё категорически отказываются изучать методы защиты своих программ (из личного общения с shareware программистами).






Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook