Понимаю, что отвечать на такие вопросы надоело уже всем гуру шаровары, но читая форум для себя ничего не нашел
Сабж. Допиливаю свой первый проект. Для поддержания штанов привлечения инвестиций взялся писать корпоративную прогу в основе которой мой проект. А за одно протестировать и отладить "ядро" проекта в боевых условиях + $ на карманные запуск проекта. Назрел вопрос защиты от тиражирования и препарирования. Тиражирование меня не очень волнует т.к прога будет заточена под эту контору и иметь неконкурентный ui (на мой взгляд). А вот логику хотелось бы скрыть от чужих глаз но без фанатизма. Проект на delphi, да-да-да, представляю как все зазевали, вспоминая свои проекты двадцатилетней выдержки.
Всезнающие шароварщики есть ли готовые средства защиты своих шедевров all in one, чтобы:
— установка защиты без лишнего геморроя, как пишут в рекламе в пару кликов,
— препятствовала тиражированию, а не провоцировала на свободное распространение,
— работала как сетевой ключ для нескольких копий,
— имела изменяемое ограничение по времени,
— стоила бы <= $150
— хоть как-то пыталась замести логику, но надо уточнить, что для меня очень критична скорость. Сейчас же в старом декомпиляторе видны говорящие названия классов, процедур и наверное (я не специалист по вскрытию) много чего другого. Хотелось бы хоть немного осложнить жизнь потенциальным клонерастам, вдруг я захвачу мир)
Пока нашел только решение на аппаратных hasp ключах, но не знаю защищает ли envelope логику (хоть как-то). Отвожу им свистульку, а потом шлю версии для тестирования.
Напоминаю, что сейчас речь идет только об одном единственном пользователе с заточенной под него прогой, а не о релизе проекта.
Здравствуйте, Kotov M, Вы писали:
KM>Понимаю, что отвечать на такие вопросы надоело уже всем гуру шаровары, но читая форум для себя ничего не нашел KM>Сабж. Допиливаю свой первый проект. Для поддержания штанов привлечения инвестиций взялся писать корпоративную прогу в основе которой мой проект. А за одно протестировать и отладить "ядро" проекта в боевых условиях + $ на карманные запуск проекта. Назрел вопрос защиты от тиражирования и препарирования. Тиражирование меня не очень волнует т.к прога будет заточена под эту контору и иметь неконкурентный ui (на мой взгляд). А вот логику хотелось бы скрыть от чужих глаз но без фанатизма. Проект на delphi, да-да-да, представляю как все зазевали, вспоминая свои проекты двадцатилетней выдержки. KM>Всезнающие шароварщики есть ли готовые средства защиты своих шедевров all in one, чтобы:
KM>- установка защиты без лишнего геморроя, как пишут в рекламе в пару кликов, KM>- препятствовала тиражированию, а не провоцировала на свободное распространение, KM>- работала как сетевой ключ для нескольких копий, KM>- имела изменяемое ограничение по времени, KM>- стоила бы <= $150 KM>- хоть как-то пыталась замести логику, но надо уточнить, что для меня очень критична скорость. Сейчас же в старом декомпиляторе видны говорящие названия классов, процедур и наверное (я не специалист по вскрытию) много чего другого. Хотелось бы хоть немного осложнить жизнь потенциальным клонерастам, вдруг я захвачу мир)
KM>Пока нашел только решение на аппаратных hasp ключах, но не знаю защищает ли envelope логику (хоть как-то). Отвожу им свистульку, а потом шлю версии для тестирования.
KM>Напоминаю, что сейчас речь идет только об одном единственном пользователе с заточенной под него прогой, а не о релизе проекта. VMProtect
Здравствуйте, Kotov M, Вы писали:
KM>Напоминаю, что сейчас речь идет только об одном единственном пользователе с заточенной под него прогой, а не о релизе проекта.
Если это не коробочное решение, то защита на куй не нужна.
Пока ты допиливаешь локигу/ГУИ для своего клиента, ты ему хрен знат сколько раз этот эксешник будешь менять.
Ну привяжись ты к HDD или процу, если на нескольких компах, то лучше сразу используй сетевое решение сенселока (не для защиты, для собственного спокойствия)
— Про WMProtect тебе сказали
— Про закрытие алгоритма, лучше спросить у мышцах, его одноразовую векторизацию (вроде так алгоритм называл), круче него ничего нет (как он утверждает) и очень быстро выполняется.
При поставленных ограничениях не думаю что получится найти решение. VMProtect, да и другие IP протекторы, стоят больше 150 уе.
KM> но не знаю защищает ли envelope логику (хоть как-то).
Не защищает.
Если бы не требование к сетевому лицензированию — я бы посоветовал посмотреть смарт-карты, либо senselock для сокрытия логики. Но у последнего сетевой модуль не очень сильный.
A>Пока ты допиливаешь локигу/ГУИ для своего клиента, ты ему хрен знат сколько раз этот эксешник будешь менять.
Да, много. Поэтому и подумал про hasp. Один раз отдал ключ, а потом все экзешники зашивать под него.
A>Про закрытие алгоритма, лучше спросить у мышцах, его одноразовую векторизацию (вроде так алгоритм называл)
Можно немного подробнее, гугл нем.
A>— Про WMProtect тебе сказали
По их сайту в мой скромный бюджет вписывается только lite, я так понимаю это только логика. Читал, что все эти виртуализации, мутации сильно сказываются на скорости, как быть если весь твой алгоритм это циклы? Из их форума видно, что сделать защиту не так просто — много ручной работы в коде, пользователи часто делают что-то не то. Есть ли варианты применения сразу к экзешнику? Бывают ли случаи, что после защиты прога работает "немного иначе"?
pva>Если бы не требование к сетевому лицензированию — я бы посоветовал посмотреть смарт-карты, либо senselock для сокрытия логики. Но у последнего сетевой модуль не очень сильный.
Как senselock скрывает логику, это ведь тот же апп. ключ?
Здравствуйте, Kotov M, Вы писали:
A>>Пока ты допиливаешь локигу/ГУИ для своего клиента, ты ему хрен знат сколько раз этот эксешник будешь менять.
KM>Да, много. Поэтому и подумал про hasp. Один раз отдал ключ, а потом все экзешники зашивать под него.
A>>Про закрытие алгоритма, лучше спросить у мышцах, его одноразовую векторизацию (вроде так алгоритм называл)
KM>Можно немного подробнее, гугл нем.
A>>— Про WMProtect тебе сказали
KM>По их сайту в мой скромный бюджет вписывается только lite, я так понимаю это только логика. Читал, что все эти виртуализации, мутации сильно сказываются на скорости, как быть если весь твой алгоритм это циклы?
В VMProtect всё настраиваемо — до конкретных защищаемых процедур. Так что можно выбрать что и как защищать и как "тяжко". (Виртуализация, мутация, виртуализация+мутация, сколько виртуальных машин). Настраииваешь, пробуешь, выбираешь.
KM>Из их форума видно, что сделать защиту не так просто — много ручной работы в коде, пользователи часто делают что-то не то. Есть ли варианты применения сразу к экзешнику?
VMProtect так и работает — с готовым бинарником. KM>Бывают ли случаи, что после защиты прога работает "немного иначе"?
Бывает. У меня было цельных аж два раза. Тщательный аналис прасходящева (C) показал что это я сам такое "иначе" в коде написал. Если шутки в сторону — то нет, такого не бывает.
pva>>Если бы не требование к сетевому лицензированию — я бы посоветовал посмотреть смарт-карты, либо senselock для сокрытия логики. Но у последнего сетевой модуль не очень сильный.
KM>Как senselock скрывает логику, это ведь тот же апп. ключ?
Часть логики зашивается в ключ. Ох там можно развернуться.
Здравствуйте, Kotov M, Вы писали:
KM>Напоминаю, что сейчас речь идет только об одном единственном пользователе с заточенной под него прогой, а не о релизе проекта.
1. Зарегаться на RegNow
2. Через саппорт запросить бесплатный ключ для SoftwarePassport
3. Прогу защитить с привязкой по hardware ID, это предотвратит тиражирование
4. Ключевые алгоритмы обернуть в secured sections — в экзешнике они будут зашифрованы, расшифровка в рантайме по ключу
5. Наномитов (nanomites) напихать в текст для мутаций
Насколько просядет по скорости — не знаю, надо тестировать.
Re[5]: Одноразовая защита под win32 и Linux [OFFTOP]
Здравствуйте, Grayscaler, Вы писали:
G>2. Через саппорт запросить бесплатный ключ для SoftwarePassport
скажите пожалуйста через сколько времени после регистрации вы попросили
вы сами пользутесь SoftwarePassport
это правдо что зашишенные им программы старутют очень долго
Здравствуйте, AWSVladimir, Вы писали:
AWS>- Про закрытие алгоритма, лучше спросить у мышцах, его одноразовую векторизацию (вроде так алгоритм называл), круче него ничего нет (как он утверждает) и очень быстро выполняется.
что-то не помню, чтобы я упоминал векторизацию. скорее всего речь шла о трансляции части логики в DFA. работает быстро, но наклаывает на логику определенные ограничения. зависит от задачи. можно заюзать и сеть петри. она предотвращает модификацию логики, поскольку правка сети в одном месте приводит к далеко идущим последствиям (мусор на выходе). так же понять логику работы из бинарного представления сети -- практически нереально (даже если написать визуализатор). затраты времени -- огромны.
но все эти подходы требуют от программиста определенных усилий и по велению одного клика задача не решается. над сокрытием логики следует думать еще на стадии проектирования программы.
простой пример:
foo(int a)
{
if (a == 0x666) return inferno();
return 0;
}
а вот вариация на тему:
foo(int a)
{
if (hash(a) == 0x32732) return inferno();
return 0;
}
и все. сушите весла. в данном случае можно прогнать все возможные значения int'a через hash(), сгенерить таблицу и понять что ждет программа. но если это не int, а строка? причем, не константа, а ввод пользователя или данные, полученные из сети?
с дуба можно рухнуть, чтобы рекоструировать алгоритм.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, мыщъх, Вы писали:
М>и все. сушите весла. в данном случае можно прогнать все возможные значения int'a через hash(), сгенерить таблицу и понять что ждет программа. но если это не int, а строка? причем, не константа, а ввод пользователя или данные, полученные из сети?
Я похожее применял раньше — тупо скардили программу и выдернули константы.
Труднее всего взламывать программы, написанные на дельфях, в них куча лишнего кода
Так что, само по себе использование дельфи даёт определенное преимущество. Встройте простую защиту и всё.
Здравствуйте, Alexey Neorov, Вы писали:
AN>Труднее всего взламывать программы, написанные на дельфях, в них куча лишнего кода AN>Так что, само по себе использование дельфи даёт определенное преимущество. Встройте простую защиту и всё.
Здравствуйте, Alexey Neorov, Вы писали:
AN>Труднее всего взламывать программы, написанные на дельфях, в них куча лишнего кода AN>Так что, само по себе использование дельфи даёт определенное преимущество. Встройте простую защиту и всё.
не то что бы труднее, код получается какой-то говнистый, некрасивый, как макаронный