Вы в разделе: Ловушка для взломщика
Математика защиты
Как правило, защита оперирует не менее чем двумя наборами данных, полученными из различных источников (например, введенные пользователем имя и фамилия и полученный от разработчика регистрационный ключ). Чтобы определить, легально ли используется программа (или в каком режиме она используется + демонстрационном или полнофункциональном), над этими наборами выполняются определенные преобразования, и результаты затем сравниваются. Понятно, что соответствующие фрагменты кода + главный объект внимания хакера.
По большому счету хакер может применить при взломе два различных подхода: либо, исследовав алгоритмы преобразования данных, научиться самому генерировать регистрационные ключи, которые программа будет воспринимать как правильные (это более престижный метод), либо просто испортить защиту + слегка подправить программу, так чтобы защита перестала работать или считала бы любого пользователя легальным.
Один из возможных способов борьбы с попытками воспроизвести алгоритм генерации ключей + создание самомодифицирующегося кода. В этом случае статический код, анализируемый дизассемблером, не дает необходимых сведений для восстановления алгоритма генерации регистрационных ключей, и возникает необходимость анализа программы в режиме отладки. Если предположить, что мы успешно засекаем отладчики и не активизируем защиту в их присутствии, то локализовать нужный фрагмент кода будет сложно. А поскольку нельзя перманентно модифицировать код, который динамически формируется только на стадии выполнения программы, отключить защиту тоже становится невозможно или, по крайней мере, очень трудно (ведь это требуется делать для большего объема кода в различных частях программы).
Реализовать самомодифицирующийся код на языке высокого уровня довольно сложно + лучше использовать ассемблер. Можно, правда, обойтись и без модифицирующегося кода, но тогда желательно, чтобы преобразования данных при проверке прав пользователя не сводились к элементарным операциям.
Например, разработчики условно-бесплатных программ довольно часто применяют для получения регистрационного ключа из имени пользователя (или наоборот) сложные комбинации побитовых и целочисленных арифметических операций. Однако настырного хакера такие упражнения по большей части только радуют: утилиту регистрации нелегальных пользователей он строит за несколько часов. Единственный выход + использовать что-нибудь более зубодробительное, скажем шифрование с открытым ключом или нетривиальные операции с плавающей запятой.
Страницы: [1] [2] [3]
Советуем посетить:
Все виды строительства - строительство загородных коттеджей , выгодно! установка перегородок в офисных пространствах установка перегородок Надежность и качество - цена строительства дома , гарантия качества! |
 |
 |
Полезная информация |
|
 |
»
«··· «··· «··· «··· «···
»
«··· «··· «··· «··· «··· «··· «··· «··· «··· «··· «··· «··· «··· «···
»
«··· «··· «··· «··· «··· «···
»
«··· «··· «··· «··· «··· «··· «··· «···
»
«···
»
«··· «··· «··· «··· «··· «··· «··· «··· «··· «···
»
«··· «··· «··· «···
»
«··· «··· «··· «··· «··· «··· «··· «···
»
«··· «··· «··· «··· «··· «··· «··· «···
»
«···
|
| Компьютерные статьи |
| профнастил текстура |
|
|
|
|
|
|
|