|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
Против отката системной даты, такая защита, конечно бессильна (и не только так можно обойти), но сам откат, для многих пользователей весьма неудобен - это ведь придётся всё время держать дату машины некорректной, когда используется защищаемый софт (для доменных машин вообще не годится). Для серьёзного софта, наверное это не те издежки, которые отвратят от воровства, а для мелких утилей на ЛИСПе... ну лично я не стал бы дату компа менять, даже еслиб мог - просто купил бы или отказался от использования, если неадекватно дорого. Очистка от "меток", как метод взлома, в данном случае не работает - отсутствие корректной "метки" (файл или запись в реестре - всё равно), это уже критерий нарушения защиты.
|
|||
![]() |
|
||||
Армспорт Регистрация: 18.07.2006
Ейск
Сообщений: 355
|
Такой подход к защите как у вас не выживет. Очень неудобно то, что только чтобы посмотреть на работу програмы, пользователю необходимо связаться с вами по интернету, разрешить программе послать вам неизвестные данные со своего компьютера (!!! это ведь может быть какой-нибудь важный пороль или ещё чего), дождаться от вас ключ, и только после всего этого опробовать программу. Это, извините, антиреклама, которая всех только отпугнёт. Это уже не нужно никому. Без открытого демо-режима очень сложно что-то раскрутить.
Самый надёжный из простых методов защиты на мой взгляд - это физическая привязка кода программы к конкретному "железу" и ограничение в демо-режиме на определённые функции (к примеру размер обрабатываемого файла - тут по вкусу любой вариант). Если это на лиспе, то компилировать всё в один Vlx файл, с использованием собственного именного пространства, оптимизации и связывания. То есть свести взлом программы к использованию дизассемблирования. Остаётся только грамотно организовать в коде лабиринт с ловушками для хаккера, чтобы ему было не сладко, а заказчику - очень дорого! Недостатки конечно тоже есть, но если продавать не по1000 програм в день ( ![]() ![]() ![]() |
|||
![]() |
|
||||
CNC Регистрация: 07.07.2007
Israel
Сообщений: 302
|
я добавил одну строку к коду программы для того чтобы нельзя было отматывать дату назад, и еще вопрос, пути привязки к уникальным ключам в реестре машины, это
означает, что "Ключ" сделанный на другом компьютере небудет работать? Код:
|
|||
![]() |
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
Цитата:
* То, что я выложил, это только демка для показа принципов - на реальную защиту она похожа очень условно. |
|||
![]() |
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
Цитата:
![]() Код:
PS: Писать в файл лицензии чтото отличное от ключа, конечно можно, но тогда надо обрабатывать и ошибку получения ключа. |
|||
![]() |
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
На моей домашней машине последний ключ не работает, при том, что сгенерированые на ней самой работают нормально. Думаю и на других будет так же. НО в функции demo:get-validatekey по завершению работы vl-string-translate перед применением atoi надо бы делать проверку на содержимое (формат) строки иначе, теоретически может и пройти.
|
|||
![]() |
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
Сейчас, при получении из файла лицензии чегото отличного от ожидаемого (например, строки символов выходящих из определённого диапазона или длинны строки) функции могут возвражать неожиданные результаты. Т.е. прочитав строку из файла, по хорошему, надо бы убедиться, что прочитан именно ключ, а не что попало (юзер добрался и отредактировал или вообще стёр файл или всё папку...).
|
|||
![]() |
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
> Holon
То, что я выложил, это простейшая демка практически без проверок. Таких проверок должно быть несколько, как на наличие файла (или записи в реестре) лицензии, так и на наличие уникального ключа, которым производится шифрование, потом проверка формата лицензионного ключа, а возможно и не только... Переделывать демку в рабочую программу - неправильно. Быстрее и проще написать своё, а от демки использовать только принципы, может быть какието приёмы... Например, проверка формата должна быть сразу после чтения лицензионного файла и только при её успешности должны производится дальнейшие действия. При неуспешной проверке, функция аналог demo:get-validateKEY должна возвращать какойто осмысленный результат, например nil, или 0, или -1.., а не вылетать с ошибкой. Возвращённый результат, должен перед основной проверкой проверяться на тип или диапазон и только потом на соответствие дат...да и шифровать можно-бы попричудливее, чем сделано в демке, а то бОльшая часть ключа сейчас незначима. Что-нить типа: Код:
|
|||
![]() |
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
Цитата:
Откомпилировать не забудь, иначе всё бесполезно. ![]() |
|||
![]() |