Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
После этого программа будет запускаться без всяких окон.
Существует ещё один способ продления лицензии без изменения программы. Нужно перед её установкой установить дату в системе лет на 20 вперёд, а после установки вернуть старую дату.
Shadow Security Scanner 5.37
Эта программа – один из лучших сетевых сканеров безопасности. Она имеет ограничение по времени на использование (trial).
Метод, который применялся при взломе Customiser, не работает потому, что окно создаётся функцией CretaeWindowExA, это всё несколько усложняет.
Но можно пойти другим путём. Трассировать программу без вхождения в подпрограммы, пока не появится окно, уведомляющее, что время программы закончилось.
Нужно запомнить адрес подпрограммы, в которой выводится данное сообщение, и заглянуть туда. Там мы можем заметить какое-то странное сравнение:
cmp [ebx+14],0
После этого переход, если не равно нулю. Поиграем с флагом нуля, и что мы видим – программа заработала, осталось только её пропатчить:
593598: EB
Вот и всё, защита с программы снята.
Как мы можем видеть, взлом программы чаще всего отталкивается от перехвата WIN API-функций. Как можно этому противостоять?
Существует несколько методов:
Написание и использование своих функций с переходом куда-нибудь в середину WIN API-функции
Рассмотрим написание своих функций на примере функции GetWindowTextA.
Как устанавливается прерывание отладчика на имя функции? Вставляется байт «CC» перед первой инструкцией функции. Но мы ведь можем сделать так, что на этот первый байт инструкции управление никогда и не будет передано. Вы спросите, как это сделать?
Давайте рассмотрим, как начинается данная функция:
77d5c13a: push 0c
77d5c13c: push 77d6e498
77d5c141: call 77d439c0
Так начало функции выглядит у меня. Каждому необходимо посмотреть на её начало под отладчиком самому:
n Загрузить SoftICE
n Ctrl + D ( Всплываем в SoftICE)
n u GetWindowTextA
Теперь давайте разберёмся, как выглядит вызов нашей функции в программе в общем виде:
push xxxxxxxx
................
push xxxxxxxx
call GetWindowTextA
Причём при вызове GetWindowTextA идёт переход по адресу 77d5c13a. Мы же можем сделать следующим образом:
push xxxxxxxx
................
push xxxxxxxx