Другие языки программирования и технологии

Как защитить свою программу от взлома

Проблема такова: программа будет работать с флешки. Защитить ее по типу носителя (съемное устройство) и серийный номер носителя (флешки) нет проблем - для этого есть программа ORiEN например. Тогда программа будет запускаться только с этой флешки и не будет даже с компа ни CD или DVD. НОООООООО и очень большое НО если создать образ флешки и записать этот образ на другую то вся защита летит в Тартарары. ПОМОГИТЕ пожалуйста как защитить свою программу. P.S. я пишу на Delphi 7
KS
Kuzmix Systems
314
Серийник флешки в зашифрованном виде должен лежать в отдельном файле на той же флешке (а можно и в бут-секторе, к примеру, его разместить) . Программа при запуске должна проверять наличие этого файла, смотреть на тот серийник, который записан в файле, определять серийник флешки программным образом, сравнивать и принимать решение.
Соответственно, при дистрибуции, необходимо добавлять на флешку помимо проги файл с зашифрованным серийником. Т. е. , когда готовишь дистрибутив, необходимо будет ещё одну прогу написать, которая бы подготавливала этот "ключевой" файлик для каждого носителя и записывала бы его на носитель.

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

По-другому как - не знаю. Вообще - любая защита ломается. Никто не мешает дизассемблировать твою прогу и забить nop ами код проверки. Могу только посоветовать делать не одну проверку, а нескольких, желательно в неожиданных местах, скажем, через n-ное случайное количество вызовов какой-нибудь из основных рабочих функций. Код проверки запутать как можно сложнее - вызовы левых процедур, выполнение проверки серез случайное количество вызовов, и т. д. - чем больше ты извращаться будешь, тем дольше кракер будет тебя материть ))) В конечном итоге всё равно сломает, но хоть помучается.
Александр Пинаев
Александр Пинаев
5 579
Лучший ответ
Идеальной 100%-й защиты от взлома нет и никогда не будет.
Но можно и нужно предпринять меры к тому чтобы взлом был экономически не выгоден.
Дима Удальцов
Дима Удальцов
32 502
Попробуй в дополнение к данной защите ещё и защитить её каким нибудь ключём. Пользователь при запуске программы с флешки или образа вводит ключ, каторый даёт возможность запустить данную программу. А ключи лучше всего подвязать к имени компьютера, пользователя, и просто к характеристикам системы. Т. е. в этом случаи получается прежде чем пользователь получит свой уникальный ключ он должен будет сообщить характеристики своего ПК. (объём памяти, диска, ОС и т. п. ) на основе этих характеристик ты генерируешь ключик и отправляешь его пользователю. Даже если такой ключ попадёт в чужие руки он сможет работать только с такими же характеристиками ПК, как и у пользователя, каторому он был выдан - а такое совпадение мало вероятно, т. к. 2 компьютера в 99% обязательно чем нибудь отличаются.
вам нужно ее защитить от копирования или от взлома?? ?
от взлома - криптуйте или архивируйте (aspack petite PE compac)
от копирования ну попробуйте типа проверять тип носителя и его характеристики при запуске
че там за программа-то?