Защита программы
сроки и ресурсы какие выделены?
Сроки - месяц-полтора. Ресурсы обсуждаемы
какой порядок количества установок?
Количество установок порядка тысяч
порядок стоимости одной установки?
несколько куе
1. привязывать на электронный ключ, в ключ зашивать часть функционала (а не просто номер).
2. ключи брать малораспространенные, т.е. в обязательном порядке проверять, что на этих же ключах не строится защита какого-нибудь 1С и т.д.
3. по всей проге расскидать кучу точек проверки:
а) ключа
б) целостности проги
4. антиотладочный код, код проверки целостности - лучше купить, причем скорее всего под win и linux по отдельности. причем в идеале код проверки должен генерится уникальный под каждую точку проверки, т.е. очень важно, чтобы не было одной функции типа void ДелаемЧтобыDebuggerНеВключался;
конкретные либы/ключи не подскажу, потому что последнее время не следил за этим
А не подскажешь, к кому можно обратиться за антиотладочным кодом и проверкой целостности?
тогда, грубо говоря, ставится ethernet-ный электронный ключ.
соответственно реализации может быть две:
1. либо это честный ethernet-ный ключ
2. либо есть сервер авторизации, который завязан на usb-ишный электронный ключ, а уж через этот сервер авторизуются все остальные
Тогда это хорошее решение.
1. Который никому не нужен (и ломать его если и будут, то ламеры)
2. Который кому-то оказался нужен (и тогда он будет сломан).
Потому делать защиту сколь угодно сложной - глупая трата сил.
Привязка к электронному ключу - хороший ход, т.к. сильно усложняет процес взлома и делает его более дорогостоящим.
А всякие програмные навороты будут вскрыты не за неделю так за две.
Моё мнение - единственное разумное решение - делать кроме проверок валидности лицензий ещё кучу проверок, которые будут пройдены у хакера, но не пойдут у простого смертного.
Например:
if( невалидный_ключ && не_стоит_вижл_студия ) {
вы пользуетесь пиратской версией, бла-бла-бла
}
if( левая_активация && будний_день && время_с_10_до_14 ) {
активационый_код_неверный, бла бла бла
}
и т.д.
В итоге хакер, ежели он не педант, прозевает десяток другой проверок, которые у него не сработают, а пользователь будет стадать и купит таки программу.
малораспространенный софт ломается реже и хуже.
т.е. он относится к 1й категории, т.е. нужна защита уровня "защита от дурака"
Как пример, чтобы крупной компании не захотелось, купив для вида десяток копий, поставить программу на сотню-другую машин.
Кстати, можно ещё как в лингве сделать, чтобы копии программы с одинаковыми серийниками друг-друга в сети видели и отказывались работать. На именованных пайпах - тогда файрволом сложно закрыть.
Как только этот вид защиты станет достаточно распространён, с ним научатся эффективно бороться. В интересах Lingvы чтобы им больше никто не пользовался
Если по цене не устроит- мб что-то подобное себе сами сделаете.
http://www.star-force.com/protection/protection.phtml?c=300
Спасибо, но старфорс не подходит по ряду причин.
Можно действительно аппаратный ключик, или привязку через веб, но второе - изврат и требует мощных сервантов... а по защите софтверной - в венде-нт ничто не спасет от дизасма
Теоретически от дизасма ничего не спасет, но вот жизнь взломщику можно сильно осложнить чем-нибудь вроде Themida. Но минус ее в том, что только под венду. Под linux пока не нашел ничего похожего
1) программа НЕ ДОЛЖНА сообщать юзеру, как только она поймет, что что-то с защитой не то. лучше всего, чтобы она просто вываливалась с искуственно созданной runtime error причем через некоторое время после "осознания". особенно, если вываливаться будет невесть где (с точки зрения кода. к примеру, в заведомо глючном кусе кода математических вычислений с плавающей запятой). при наличии множества средств отслеживания обращений программы к системе все обращения к ключу, по идее, можно выловить.
2) надо иметь в виду, что можно взять 2 копии программы: параллельно запускаем на двух компах под отладчиком, на одном компе ключ есть, на другом - нет, причем система на компах по возможности будет идентична. и смотрится на различия исполнения кода.
А как с точки зрения взломщика выглядит случай, когда программа откажется работать под отладчиком, причем не сразу?
Советую еще упаковщик AsProtect - на краклабе его очень не любят .
А если он успеет?
Вот он наткнулся на нужное место, программа зафиксировала взлом, но взломщик уже успел предупредить переход на подпрограмму защиты.
А вот с "от дизасма ничего не спасет" не согласен. Можно ТАК искалечить код, что расшифровка займет времени больше, чем написание того же "с нуля". Брутфорс тоже должен бы всегда спасать, ан нет, им почему-то пользуются лишь в безвыходных случаях.
Среди протекторов под Windows лучшими считаются ExeCryptor (ring3) и Themida (ring0). AsProtect - прошлый век.
Ты с 99% вероятностью путаешь AsPack и AsProtect. Это совершенно разные крипторы. AsProtect как и Themida постоянно обновляется.
для того же SoftIce есть примочки, которые защищают его от "антиотладчиков", которые с помощью SoftIce-интерфейса пытаются комп перегрузить, к примеру, или просто определить, присутствует оная программа в системе или нет
вопрос в том, насколько нужно будет ковырять твою программу. для популярных защит типа starforce умельцы писали программы, позволяющие обходить защиту, потому как выгода очевидна. А будет ли твоя программа настолько ценной, чтобы вообще браться ломать ее (с учетом всего геморроя и времени при копании в ней)?
Нет, AsPack и AsProtect я не путаю, поскольку AsPack снимается автоматически, а в случае AsProtect нужно приложить определенные усилия. Тем не менее, ExeCryptor не снимается никаким публичным методом и о существовании приватных мне тоже ничего не известно.
Execryptor - это XOR, в каждой версии на разные байты, видно это невооруженным глазом
Оставить комментарий
stm7583298
Необходимо реализовать хорошую защиту программного продукта от нелегального использования и отладки.Посоветуйте, плз, в какую сторону копать, к кому можно обратиться и т.д.
Платформы Win и Linux