Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Subj: HEXEDIT.EXE Version 1.5__________________



Полезная утилитка, но большей частью для новичков, так как очень неудобна в обращении при хаканье кода... но зато под Windows! Разумеется, ShareWare; т.е. хочешь пользоваться — регистрируйся. Не то чтобы в незарегистрированной версии были заблокированы какие-то полезные возможности... но все же надпись "UnRegistred" довольно неприятна...

Ломается это не сложно — для регистрации выбираем специальный пункт меню, куда вводим свое имя, а затем код регистрации. Первая мысль, приходящая в голову: ВРХ GetWindowText. Оппс! Это сработало... теперь трассируем и видим, что условный переход выполнялся после сравнения с переменной [OECOh], которая в регистрированной версии не должна быть равна нулю. Ну, тут теперь и нечего делать — ВРМ DS:OECOh и перезагружаем программу. Ответ отладчика на ВРМ:

С6 06 СО ОЕ 00 MOV Byte ptr [OECOJ.O <-- это

C4 7E 06 LES Dl, (BP+6]

Теперь заменим это на:

С6 06 СО ОЕ 01 MOV Byte ptr [OECO],1

C4 7E 06 LES Dl, [BP+6]

Интересно, что сейчас в окне регистрации можно вводить что угодно и это работает!

Примененный способ достаточно универсален для защит "регистрации" — приложение вводит переменную "Registred", обычно булевскую (хотя и не обязательно), и в инициализационных процедурах, делая проверку регистрации, устаналивает ее. Вот эту-то строку мы изменили в данном случае! (И в других случаях тоже перспективнее именно такая замена)...

Теперь все отлично, но все же почему-то в заголовке окна вместо имени редактируемого файла горит 'Unregistred version...' Непорядок! Ну, тут задачка для начинающих — ставим ВРХ SetWindowText и ждем появления оного в заголовке. Оп-пс! Сначала появился 'верный' заголовок, затем затерся просьбой о регистрации... Просматривая окружающие коды в дизассемблере, находим те, которые могут шунтировать это сообщение. Где-то сверху на приличном расстоя­нии мы их и находим. Вот они:

7403 JE Loc_l

Е9 7F 00 JMP Ругательное_сообщение

:Loc_l

26 3В 85 54 04 CMP AX,ES:[DI+454]

75 78 JNZ Ругательное сообщение

: Normal Cont

Хм, можно сразу заменить JE Loc_l на NormaLCont, а можно последовательно: JE Loc_l -> JMP Loc_l; JNZ NormaLCont -> NOP+NOP. Как кому по душе...

Вот "защита" и взломана...





Дата публикования: 2014-12-08; Прочитано: 204 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...