Как стать автором
Поиск
Написать публикацию
Обновить

Комментарии 11

помнится когда я думал над способом защиты для одной своей программы я сразу отказался от обычных серийных ключей, вместо это я сделал файл лицензии на какой либо период

ну то есть шифрованный файл, в котором есть информация (по началу пустой, из коробки), в который генерировался ключ программы, исходя из крайней даты валидности лицензии, которая сравнивалась с датой на компьютере, имени пользователя, названия компьютера

вся эта информация и была ключем, который по верх просто в формате строки превращал символы в хекс коды (к примеру а -> 0x000001)

а снизу уже добавлял мусорные строки для отвлечения внимания,
[product key]
ololo
[serial]
atata
и тд

при этом на событиях инициации программы были назначены функции check_key() и validate_key(), которые ничего не делали

проверка лицензии происходила обратной дешифровкой и сравнением с параметрами системы в событиях создания нового проекта, открытия, сохранения, и вызове библиотеки

хотя такая защита не сказать что была очень нужной так как программа была не очень популярна -_-

Плоть, Север, мера, срок, необходимость

это что какой то мемитический агент?

Это вещи, которые бывают крайними, согласно правилам русского языка. Ко всему остальному полагается применять прилагательное «последний». (Не помню, из какой книги цитата. Кажись, «Акулы из стали».)

Но ведь живой язык постоянно изменяется, так что: ничто не вечно под луной, в том числе и этот список.

Он не меняется, его меняют. Конкретно это изменение инициировано мракобесами, которые непонятно с чего решили, что если они будут говорить "последний", то это повысит шансы указанного события действительно стать для них последним.

Поэтому не вижу смысла идти на поводу у чрезмерно суеверных людей, поддерживая подобные изменения.

Определение даты, чтение данных из системы - это же всё идёт через WinAPI, а потому ловится на раз. Хакеры могут даже и не ломать защиту, а просто отследить, что там ожидает найти программа, и подставлять нужное.

А вот например защита Themida помимо прочего привязывается к идентификатору процессора. И вот вызов инструкции cpuid ни один отладчик отследить не позволяет, да и хук на неё не поставишь.

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

Вот просто попробуйте сами написать простенькую программу, проверяющую ключ, навесьте сверху любую коммерческую защиту, да хоть той же Themida сверху завесьте, и попробуйте потом это сломать.

Первым делом сильно удивитесь, в какое *** там превращён код. Каждые 3 инструкции - jmp хз куда, код модифицируется прямо во время работы, всюду непрямые вызовы через ret с переписанным адресом возврата и вызовом контролируемых исключений. IDA покажет вам просто груду мусора, вы даже начальный загрузчик, который расшифровывает основной код, там разобрать не сможете.

Такое только "вживую" в отладчике изучать. Предварительно разобравшись, как бороться с антиотладочными приёмами, которых там выше крыши.

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

В общем и целом, современные коммерческие защиты уже вышли на уровень, на котором они принципиально не ломаются без специализированного самописного софта на тысячи человеко-часов работы. Поэтому-то тут рулят хакерские группы, где куча народу совместными усилиями пишет анализаторы с распаковщиками и специализированные инструменты. Этот софт очень сложный, в него вложена куча времени продвинутых спецов, и он приносит им реальные деньги, а потому в свободный доступ не попадает.

вот такую концепцию не совсем понимаю, пиши больше - делай меньше, почему тогда не имеет смысл доставить исходники этой приблуды на прямую поставщика, нежели ломать готовую программу?

Звучит очень интересно, я правда только начинающий разработчик, если так можно выразиться. Возьму на вооружение в дальнейшем, когда буду свои проекты защищать, хд

т.е. обойти её можно изменением даты ПК?

Странно. 2044CMJ или 164685СМ тоже работают...

Зарегистрируйтесь на Хабре, чтобы оставить комментарий