|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
26.11.2008, 16:55 | #1 | |
Можно ли из нескольких лиспов и меню сделать программу с активационным ключом?
ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
Торонто
Регистрация: 23.10.2007
Сообщений: 1,980
|
||
Просмотров: 14823
|
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Ну как вариант с помощью vl-registry-write, vl-registry-read записать в реестр пару ключей - один - тупо проверка есть он или нет, ну что-то вроде если его нет - то (alert "Незарегистрированная копия..."), а во втором (специально чтоб взлом более 5-ти миут длился), данные, да или кусок кода, из самой сложной функции (а лучше двух) в которой самому, на 5-ый день после написания самому толком не разобраться. При всей простоте метода, без рабочей (только с украденной) копией "взломать" будет ох как не просто.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
Дима_,
Можешь на примере показать? Допустим самый простой лисп нужно защитить. Скажем этот Код:
__________________
Блог |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Red Nova, вряд ли ты в открытом форуме дождешься работающей системы защиты.
Кстати, код, скажем так, не совсем корректный в общем случае и при заявленных условиях выбора объектов.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Кулик Алексей aka kpblc,
Цитата:
Цитата:
__________________
Блог |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Хорошо вариант (скажу честно) будет хоть как-то работать только в компилированном лиспе (fas / vlx)
Ну, например, самое простое: проверять значение (getenv "USERNAME") и / или (getenv "COMPUTERNAME"). Если значение не попадает под указанный диапазон или маску, вываливать сообщение типа "Воровать нехорошо" Остальное, что мне приходит в голову, достаточно сложно в реализации. --- Добавлено: насчет лиспа... В таком виде он будет гарантированно работать только с многострочными текстами, длина строки которых (включая служебные символы и добавляемый номер) не превышает 255 символов. Для однострочных текстов - только если текст имеет выравнивание влево вверх. Я не уверен, но, возможно, будут определенные проблемы при работе не в мировой системе координат.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
джедай Регистрация: 31.01.2005
Магадан
Сообщений: 460
|
а если чуть усложнить?
в принципе активация большинства програм по этому способу сделана: берете любую переменную допустим ту же (getenv "USERNAME") производите с ней некоторые действия - допустим представить все буквы числами и умножить на 2 - это будет код активации для активации программы - acadinfo - полученный файл пользователь дает вам, вы, выбрав нужные переменные, генерируете ключ, отсылаете его пользователю если привязаться к мак адресу - прийдется каждый раз исходник программы править активировать программу через запись ключа в реестр на мой взгляд хуже - для мониторинга доступа к реестру меньше знаний нужно, чем для написания генератора ключа
__________________
тут была подпись( Последний раз редактировалось Димас, 27.11.2008 в 03:05. |
|||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Эх все равно не спиться:
Вот программа из 4 поста с защитой (обрати внимание добавленны 2 новые переменные): Код:
Код:
Код:
Удачи в защите интелектуального продукта.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
Дима_, Спасибо за пример. Но я как честный чайник пока не въехал.
Итак ты вырезал кусок программы. Дал ей имя "HKEY_CURRENT_USER\\SECRET\\NUMCOD" и предлагаешь записать ее в реестр. Я потестил прожку, если загрузить лисп без предварительного прогона в акаде строчки Код:
Но вот не понятно как это связать с активационным кодом. То есть нужно исполнить то что ты описал в #8.
__________________
Блог |
||||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Я если честно не понимаю зачем нужен этот серийник, все равно копию с рабочей машины можно сделать и не зная его, но если очень хочешь, то с помощью (vl-string->list) и (vl-list->string) сложи значения ключа и шифруемой процедуры, а на этапе активации проверь сумму чисел введенного ключа: (setq serial (getstring "Введите серийный код")) (apply '+ (vl-string->list serial)), на случай неправильного случайного ввода. Если все верно запиши (vl-registry-write...) либо расшифрованный код (при помощи вычитания ключа), либо серийный номер номер - тогда расшифровыать придеться по ходу выполнения программы. Подчеркиваю - криптостойкость от этого не увеличится не на грамм, просто голову юзеру поморочить.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
Поясню что именно я имею ввиду.
Цитирую твой пост #8 Цитата:
Мы сейчас имеем 3 кода 1. Сам лисп 2. Активационный лисп 3. Деактивационный лисп Предполагаю что нужно сделать так. После ввода активационного номера который я продиктую юзеру автоматически должен загрузится Активационный лисп. Во время ввода активационного номера нужно проделать еще одну проверку. Вводится активационный номер и тут же проверяется скажем имя юзера. Если активационный номер соответствует имени юзера то только тогда запускается Активационный лисп. Сорри за каламбур. В таком случае лисп будет работать только на данной машине. Я не прав?
__________________
Блог |
||||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Для этого нужен еще один лисп - собирающий информацию о компе пользователя и высылающий ее тебе (ну или юзер это делает сам). Тогда в принципе проще не делать активационного лиспа - а тупо переделвыать исходную программу (автоматически), но, если больше нравиться, можно и с кодом - не очень понятно в чем вопрос - вроде что нужно делать ты понимаешь?
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
- Регистрация: 24.07.2005
Москва
Сообщений: 1,335
|
Цитата:
|
|||
|
||||
А что если так.
Нужна маленькая программа которая считывает username и преобразует это дело в некий код, это просто чтобы напустить туман, и не дать каждому чайнику понять что мне нужен username. Для простоты все можно делать в ком строке Акада. Понятно что начало должно быть типа такого. Код:
"Ник" А вот как теперь "Ник" преобразовать в простенький код чтобы потом выдать этот код в оповещающем окошке? Можно как ты ранее говорил перевести букву в цифру и умножить на два, тогда "Ник" = "302024" Ну допустим мы уже имеем такой код, юзер посылает мне этот код, я перевожу его обратно и вижу что USERNAME - "Ник". Теперь я пишу ответный код, который также связан с USERNAME, ну например к первому элементу прибавляю 111, к второму 222, к третьему 333, и так далее, получается такой код "141242357" Теперь нужно этот код как-то ввести в компьютер так чтобы в результате сработал активационный лисп То есть что то типа этого -декомпилируем код -проверяем равен ли результат USERNAME -если да, то запускаем код Код:
__________________
Блог |
||||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Расширяй кишку , есамое главное уже пройдено - ты понимаешь что нужно сделать - уверяю тебя это сложнее чем написать код, попробуй - что не получиться спрашивай - подскажу(жем).
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
Ну тогда начинай подсказывать
Какие функции нужны для этого? Цитата:
__________________
Блог |
||||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Ну для начала-бы я не использовал бы для генерации ключа только лишь имя пользователя
(strcat (getenv "USERNAME") (getvar "ACADVER")...) посмотри сам, что еще можно добавить. Для переделки в список значений (vl-string->list), далее преобразовываем что-бы было не так ясно (mapcar (lambda (x) (сдесь функция хитрого преобразованя - придумай сам хотябы алгоритм - будут вопросы - по предудыщей схеме)) ), ну и обратно в текст (vl-list->string), показать в окошке - (alert...)
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
- Регистрация: 24.07.2005
Москва
Сообщений: 1,335
|
Цитата:
Только это пока теория, а как говорица теория без практики ... Я примерно также рассуждал, на протяжении года или двух, пока не перешел к конкретным кодам, а перешел я к ним только тогда когда мне стали за это платить. А пока мне платили за другое я и делал другое , в любом случае удачи. PS. А из темы "Научите чайника лиспу?" что нибудь хорошее для вас выгорело, просто я ниасилил слишком много букаф. А по теме, тоже готов помочь если чего не понятно, да и сам поучусь - людей умный у нас на dwg многа. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вопросы по работе системы RuCAD | Олег К. | Прочее. Программное обеспечение | 142 | 17.09.2019 05:06 |
Мониторы LCD CRT | Разное | 94 | 17.06.2008 10:51 | |
ЮМОР 2006 =) | Perezz!! | Разное | 1122 | 04.01.2007 00:46 |
Попасть в слой. | Vova | AutoCAD | 106 | 10.03.2006 04:36 |