| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Технологии защиты программного обеспечения > Защита програм от нелегального копирования |
| Автор: DJDOGgy 15.5.2006, 22:18 |
| Помогите пожалуйста начинающему програмисту. Я написал прогу для одной фирмы и ее согласны купить, но я хочу защитить ее от несанкционированого копирования. Возможно ли это? И если да, то расскажите как, пожалуйста(время поджимает)! Зарание большое спасибо!!!!! |
| Автор: Kagor 15.5.2006, 22:50 |
| Модератор: Перемещено из Новости IT/Новости из мира Delphi, Kylix и Pascal. |
| Автор: пользователь 16.5.2006, 00:39 |
| Ну например изменить код так, чтобы смысл был такой же, но было много лишнего. Вообщем усложнить его.... В случае чего можно будет доказать, что это твой код, так как ты сможешь подробно описать, что там лишнего ты приписал. |
| Автор: Rouse_ 16.5.2006, 09:29 |
| По закону пользователь имеет право создать резерную копию продукта на случай выхода из строя носителя. Так что защита от копирования будет противозаконна. |
| Автор: Snowy 16.5.2006, 09:47 |
| Вопрос для этого раздела http://forum.vingrad.ru/index.php?showforum=125 |
| Автор: Sunvas 18.5.2006, 07:12 |
Получай серийник винта и сравнивай при каждом запуске... |
| Автор: maximjon 29.5.2006, 20:43 |
| Sunvas, лучше тип процессора, его частоту и т.д. в общем привяжи к железу |
| Автор: Poseidon 29.5.2006, 21:04 |
| Нет, все же если привязываться, то лучше к винчестеру. По одной простой причине: если заменим винт, нто придется копировать все на другой. А именно от копирования нам и надо защититься. А вот если привяжимся к процессору, то при его замене программа начнет рузаться, что ее типо скопировали и т.п., хотя копирования не было. |
| Автор: skyboy 29.5.2006, 21:06 |
| maximjon, за такой сюрприз заказчик не четвертует? DJDOGgy, программа настолько уникальна? Или это "понты побросать" охотО? |
| Автор: maximjon 1.6.2006, 19:38 |
| Например мои проги привязываються к любой части компа, я не говорю что надо к железу, можно следить за логинами в винде, версии винды, но идея про винт не плоха, я с ней тоже согласен. |
| Автор: ConstantinXXX 1.6.2006, 22:15 |
| maximjon, Зайди на http://constantinxxx.narod.ru/ --------> Delphi7 --------> [Анти]взлом. Там я разместил несколько статеик про защиту от копирования и не только. Страничка совсем недавно поевилась так, что там немного статей. Добавлено @ 22:16 Вот насчет привязки к винту. Дайте маленький код. Я знаю, что есть такой компанент в Delphi, но мне желательно без него. Добавлено @ 22:26 maximjon, Я лично каждые 20 - 30 дней переустанавливаю Windows. Вот как твоя прога будет следить за моими логинами и т.п. |
| Автор: ConstantinXXX 1.6.2006, 22:31 |
| защите от копирования или Shareware в среде Delphi. Если разбивать на dll. Дробим прогу на exe и несколько DLL-ей, функциям в DLL-ях даем одинаковые public'и, а названия DLL-ям даем длинные, притом начальные части названий должны совпадать, так, чтобы короткие имена отличались только числом после тильды. Вот по коротким-то именам мы их вызывать и будем. А число после тильды, как известно, зависит от порядка копирования файлов на диск, при стирании файлов с "промежуточными" номерами не меняется и при копировании не воспроизводится. Так что, копируя в "неалфавитном порядке", перемежая рабочие DLL-и с "заглушками" (потом их можно стереть), легко можно добиться невоспроизводимости сочетаний длинное-короткое имя, и после несанкционированного копирования EXE будет вызывать не те функции из не тех библиотек. Единственная тонкость: неплохо поставить проверку на длинность имени в самих dll-ях, причем с использованием FindFirstFile, так как часть win32-платформ передает dll-и, вызываемой по короткому имени, как имя ее модуля именно короткое имя. А иначе прога будет легко копироваться из DOS (т.е. только короткие имена) без потери функциональности. Вот т так пойдет защититься от копирования. |
| Автор: kiberdog 2.6.2006, 10:40 |
| Могу предложить следующее, т.к. этим приходилось заниматься (клиент попался дотошный). В Вашей программе наверняка есть меню, названия кнопок и т.д. на русском языке поэтому делаем следующее: 1. То что написано в меню, кнопках и т.д. шифруем. В качестве ключа выступает дискета, флэшка, CD. Эти устройства имеют свой уникакальный номер, который можно узнать при помощи функции GetVolumeInformation, но следует учесть следующее что при форматировании дискеты, флэшки номер меняется, тоже происходит при перезаписи CD. После этого шифруем все надписи отдельной программой. 2. В Вашу программу добавляем только модуль дешифрации. 3. При запуске Вашей программы происходит дешифрация надписей меню, кнопок. 4. Ваша программа сможет нормально работать при наличии уникального ключевого носителя Да самое главное не советую использовать CD т.к. эмуляторы CD повторяют уникальный номер. Я обрисовал основную идею, которую я использовал. Возможно в ней есть недостатки. Все остальное зависит от Ваших возможностей. |
| Автор: maximjon 3.6.2006, 18:43 |
| Я не занимаюсь прогами для пользователей, только очень редко и в основном они свободны. А в крупных компаниях винду переустанавливают очень редко. Я, например, уже больше 10 месяцев не переустанавливал винду. |
| Автор: ConstantinXXX 5.6.2006, 13:40 |
| maximjon, В таком слючии можно привезать к винде. |
| Автор: Antonimus 12.1.2007, 17:12 |
| Пустое это все! Если что-то попадает в память компьютера (в зашифрованнои виде или нет), все становится достоянием хакера, потому что под дебагерами все видно как черным по белому. А зашифрованные фрагменты Вы хакеру сами же и расшифруете своей же программой в один прекрасный момент, потому что в этот самый момент эти фрагменты должны быть выполнены, а в зашифрованном виде их выполнить нельзя. Так дождавшись расшифровки фрагмента хакер его сохраняет расшифрованным и блокирует функцию расшифровки. После этого программа будет работать лучше и быстрее, чем защищенная. Вобщем, такого рода защиты называют пятиминутками (утрированно конечно). Сам я пользую защиту USB-ключами "LOCK". Они позволяют запрятать во внутренней памяти до 256К программного кода, который не читается из ключа, а выполняется прямо внутри ключа. Вот это действительно защита. Программа (достаточно большая ее часть) вообще в комп никогда не попадает, поэтому хакеру и ломать нечего. Единственный вариант - разобраться по потоку данных через USB и по куску кода, который остается в компе, что прога делает и написать аналог. Не крутовастая ли задачка? |
| Автор: Kagor 12.1.2007, 19:51 |
| Это на подобие хасп ключей? Если да, то уже давно есть хасп эмуляторы... |
| Автор: dumb 13.1.2007, 03:07 |
вообще, два одинаковых поста Antonimus'а в темах по защите выглядят как реклама упоминаемых там "затычек" - типа "ничем не защитить, и вот только lock рулит"... ![]() |
| Автор: nerezus 14.1.2007, 16:06 |
| Теоретически такие ключи помогут, если расчет ведется на них, да и себестоимость у них будет не такой уж и большой. До тех пор, пока алгоритм не рипнут с ключа =) |
| Автор: W4FhLF 14.1.2007, 16:59 | ||
Практически таких ключей существовать никогда не будет. Такие меры неоправданы. Чтобы исключить обмен данными с текущим компьютером в ключе фактически должен существовать свой небольшой компьютер. Причём логично предположить, что в его ПЗУ должен быть записан какой-то критический код, а не простая проверка серийника на валидность. Код этот естестсвенно должен быть x86 совместимым, иначе, чтобы написать программный комплекс помимо дополнительного ПО потребуется ещё и знание других языков. Страшно представить сколько будет стоить разработка такого защитного комплекса, а после помимо сибистоимости такой железяки будет кусаться накрутка от производителя, ибо окупать надо. В итоге цена такого ключа будет очень высока, реализация сложна, модификация накладна, а стойкость невысока. К программам, которые требуют таких мер защиты применяется совсем иная политика. |
| Автор: nerezus 14.1.2007, 23:54 | ||||
именно так )
нет, иначе ключ будет огромным и дорогим. достаточно поддержки примитивных "калькукляторных операций" и десятка килобайт памяти для кода. имхо себестоимость без накрутки - бакса 3(сколько стоит калькулятор на вещевом рынке?) |
| Автор: Antonimus 16.1.2007, 18:24 |
| Парни, вы не поняли. В ключе действительно компьютер (можно и так сказать), дамп с ключа не снять. Процессор там не x86, а ARM. По производительности достаточно шустрый. Языков других знать не надо, так как он программается на обычном С++. Мы в такой ключ запихали целиком САПР для оконного производства (все кроме функций операторской консоли), нормально рулит, народ даже не въезжает, что прога не в компе, а в ключе выполняется. |
| Автор: dumb 17.1.2007, 07:50 |
| Antonimus, давай я вместо твоей мутной пурги "мне бы защитить/мне бы поломать/итд.итп.", коей ты расплодил по всем форумам, просто приведу ссылку на описание http://www.astroma-spb.ru/lock.htm. кому надо - сам прочитает, что это и как это. бесплатный совет: заплатите 10$ студенту, чтоб вам страничку нарисовали хоть как-нибудь... |