Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
n «\.SIWVIDSTART»
n «\.SICE»
n «\.SIWVID»
Ну вот с отладчиками и закончили.
Дизассемблеры
Перейдём к дизассемблерам, которые позволяют анализировать код без его исполнения. Чтобы им противостоять, оптимальным вариантом считается шифрование критических участков программы. Также определённое распространение получила техника под названием «перекрывающийся код». Рассмотрим листинг:
mov eax,04ebh
jmp $-4
next:
Что же делает выделенная восклицательными знаками часть кода?
n В eax помещается значение 04ebh(это опкод команды jmp $+4)
n jmp $-4, переходит на значение 04ebh
n jmp $+4, переходит на метку next
Таким образом, можно строить сколь угодно сложный перекрывающийся код. Ещё в перекрывающемся коде есть один большой плюс, с его помощью можно прятать неприятные для кодоанализаторов инструкции.
Защита от изменения кода
Многие программисты видели так называемые патчи (заплатки) для программ, которые сводят суть защиты программы на нет. Как же с этим бороться?
Существуют два метода защиты:
n Шифровать при помощи контрольной суммы критического места программы важные данные.
При этом если даже защита будет снята, программа будет работать некорректно. И это сведёт попытки взломщика на нет. А для полноценного взлома такого вида защиты нужно будет полностью разобраться в алгоритме, что доступно далеко не каждому взломщику.
n Использование помехозащищённого программирования.
Смысл данной техники заключается в том, что программа сама восстанавливает изменённые в своём коде байты. Существует множество методов реализации данной схемы.
Мониторы
Мониторам противодействовать практически невозможно, поэтому при построении защиты для программы необходимо свести обращения к файлам и реестру либо к минимуму, либо к максимуму.
Первый способ скрывает защитный механизм внутри программы. А второй запутывает своими обращениями к различным файлам.
Надеюсь, данный материал поможет вам достойно ответить на вызов крэкеров.