Как стать автором
Обновить

Комментарии 63

Детали реализации всего были бы очень к месту
Будут… был бы интерес
У вас лицензия привязана к железу компьютера? То есть при замене жесткого диска или сетевой карты как быть?
Я сейчас тоже работаю над системой для учета продаж для малого бизнеса (совсем малого, другая весовая категория). Избрал для себя другой способ монетизации: само ПО абсолютно бесплатно, и даже с открытыми исходниками подо все платформы (все равно сломают, если программа будет популярной, не вижу смысла тратить на это силы), но вот «облачный» функционал — основная фишка программы за небольшую сумму (действительно небольшую — доступную даже для продавца арбузов на базаре) по подписке.
Весовая категория та-же. Софт так-же рассчитан на мелкую розницу. А лицензия — да, привязывается либо к винчестеру, либо к сетевой карте. Я думал над выбором — стоит ли привязываться? Решил для себя что стоит.
Ну значит будем конкурентами, рад познакомиться)
Смена жесткого диска или компьютера целиком, не такая уж редкая штука. Надеюсь вы предусмотрели штатную возможность переноса лицензии на новый компьютер.
А если произойдет смена жесткого диска или сетевой карты, то придется заново получать ключ активации.
А если произойдет смена жесткого диска или сетевой карты, то придется заново получать ключ активации. Штатная возможность — это получить заново свой код активации через интернет. Правда эта штатная возможность пока не реализована. Были бы клиенты — реализовать можно. А так, если реализовывать, то отследить именно эту установку не сложно. В регистрационном ключе содержится информация о релизе продукта (что для коммерческих версий уникальная штука).
Ну, разве что попробовать деактивировать активацию, зарезервировав её за собой.

И прописать крупными буквами, что при переинсталляции оси или изменении набора железа надо заранее деактивировать ключ, чтобы он мог быть сгенерирован на новую конфигурацию. И повторять это каждый понедельник в Splash Window.
Хорошая идея
Потом кто-то пишет эмулятор твоего сервера и все.
Асимметрично шифровать трафик, так что расшифровать сможет только аутентичный сервер, и всё.
Проще NOP-нуть проверку или подменить JE/JNE.
Используем SSL. Заодно надо certificate pinning приделать, чтоб корневой не прописали.
в общем и целом обычно на велосипеде надо кататься, а не изобретать

Enigma+Eazfuscator(virtualization) — экономично и ОЧЕНЬ сердито
Немного не согласен.
Все конечно зависит от целей. Я все-таки скромный программист, даже не фирмочка.
Моя цель — без вложения денежных средств. К тому же полученный опыт все-таки бесценен.
если опыт ради опыта, то конечно — пожалуйста

но если ради результата, то:

1) если без своих вложений, то — это Linux Open Source, используйте пока нечего вложить, потом если появится возможность — вложите безвозмездно
2) вы собираетесь сделать защиту как коммерческий продукт, доступный для других?
3) если надо нормальную отлаженную защиту или другую широко распространенную функциональную особенность, то надо вложить хотя бы по цене simple license, чтобы купить готовый продукт, который обычно дешевле на 3 и более порядка стоимости разработки (т.е. exclusive license)
2) вы собираетесь сделать защиту как коммерческий продукт, доступный для других?

Нет… это защита только моей программы.
Какое то мышление середины девяностых. Приложение должно привязываться к человеку а не к машине. У каждого есть множество устройств и они часто меняются.
Нет. К сожалению именно человек привязывается к машине. Человеку назначают ИИН, создают аккаунты, и заносят в базы. С помощью каких приложений, интерфейсов и устройств человек будет авторизироваться в этих базах — дело третье. Ну и приложения соответственно тоже привязываются к машинам на которых они стоят. Приложения — это часть системы интерфейсов для работы с разными функционалами.
К тому же это позволяет заработать.
Блин… я только сейчас понял что Вы сказали.
К сожалению это не ваше мнение, а аналитиков Майкрософта Сильвера и Макдоналда в 2008 году… Как мы видим политика компании не сильно изменилась. И они говорили об Windows, т.е об операционной системе. А при чем тут ПО по автоматизации торговли?
Вот вам и мнение середины девяностых.
Сценарий №1 (быстрый)
Покупается одна легальная копия. Функции получения hardware id патчатся, чтобы отдавать те же id, которые были на оригинальном компьютере. Если эти функции зашифрованы — дампим после расшифровки, вставляем в открытом виде, расшифровщик убиваем. Распространяем.

Сценарий №2 (обезличенный)
Покупается одна легальная копия. Все зашифрованные блоки данных и кода дампятся и вставляются обратно в открытом виде, расшифровщики убиваются. Создаем генератор активаций, заменив все ключи шифрования на свои.

В обоих варианта по ситуации (сложно сказать не видя софта) убиваем обращения к серверу и прочее подобное. Как-то так.
Разумеется. Надо просто сделать стоимость взлома дороже энной ценовой границы. Обычно двукратной цены одной корпоративной лицензии, в параноидальных случаях N-кратной.
еще можно какую-нибудь необходимую, но достаточную малость вычислять на сервере через RPC
Тогда надежнее делать сразу SaaS версию и продавать подписку, а не городить десктоп версию, которой нужно обязательное подключение через интернет.
десктопный GUI одиночке делать значительно выгоднее чем web, SaaS разве накладывает жесткие ограничения на реализацию GUI?
Активировать ПО можно без интернета и 1 раз на машине, где установлена база. Как вы представляете себе автоматизацию ретейла (а конкретно кассового меса) посредством SaaS?
А зачем всё так усложнять?
1) считаем hw-id компьютера клиента
2) делаем запрос на свой сервер — получаем все данные по подписке, связанной с этим hwid

Обмен запросами/ответами между клиентом и сервером зашифрован, например, AES'ом. Обмен ключом и iv для AES между клиентом и сервером по классической схеме с использованием пары RSA ключей, приватный на сервере, публичный получит клиент при первом запросе к серверу авторизации.

Бонусом, на сервере можно хранить особенно чувствительные данные / блоки кода и получать их по уже созданному защищённому соединению.
Все правильно, товарищи взломщики! Но как в виде защиты можно подложить небольшую свинью в виде еще одной процедуры проверки, которая проявит себя в период сдачи налоговой отчетности, например. Так же, наверное, будет очень эффективно постоянно добавлять в ПО какие-нибудь полезные обновления и менять зашифрованные блоки кода и данных.
Так, народ! тут есть программисты которым нужна система лицензирования, или тут одни крякеры?
>Но как в виде защиты можно подложить небольшую свинью в виде еще одной процедуры проверки, которая проявит себя в период сдачи налоговой отчетности, например.

1С так распространялась. Очень эффективно, по их же отзывам :) Т.е. работает себе пиратская версия, а в ответственный момент — ВНЕЗАПНО ломается. Срок неделя, дальше фирма попадает на космического размера неприятности, ни один из пиратских дистрибутивов не пашет. Продажи вырастали в несколько раз :)
Но как в виде защиты можно подложить небольшую свинью… которая проявит себя в период сдачи налоговой отчетности…

Вот смешно-то будет, если она проявится у легитимных пользователей из-за вашей ошибки в защите, например пропущенном где-то в условиях 'not'
Да, всяко бывает в разработке. Тестироваться и еще раз тестироваться.
Спортсмены?
Все эти «внезапные» процедуры обычно вполне себе видны при анализе программы (xref'ы на все выставленные флаги или обращения к лицензии/месту хранения лицензии), чтобы их действительно спрятать — надо знать, как вообще это можно сделать. Я почему-то более чем уверен, что в вашем случае все зашифрованные блоки кода и данных будут сразу же находится по xref'ам на расшифровщик. В дополнении, так как используется OpenSSL, то все криптографические функции, а также ключи шифрования, используемые в программе, тоже будут найдены автоматически и быстро. Все эти велосипеды были уже многократно изобретены и никого ими не удивить =)

И это мы ещё не обсуждали серверную часть: ddos сервера конкурентами; уязвимости самого сервера, он же будет подниматься и настраиваться в большинстве случаев кем попало.
Я описываю слабые места в вашем продукте, чтобы вы могли улучшить его (если такое желание возникнет). Дальнейшее лично меня мало волнует, потому что я считаю, что самостоятельно программист должен защищаться только если он фанат этого дела и потратил очень много времени и сил на изучение этого вопроса. В остальных же случаях защита должна быть или просто для галочки (остальное обеспечивается поддержкой лояльности клиентов и развитием программы) и не создавать каких-либо неудобств клиенту (и не дай бог встраивать в программу что-то коверкающее данные при «взломе»), или делаться профессионалами.
Кем угодно. Сколько было потрачено времени на создание этой защиты? Потому что на её взлом уйдёт, думаю, от пары часов до пары дней, в зависимости от квалификации.
На ее создание было потрачено 3 месяца. Но, думаю это все равно лучше чем никакая защита. Я не готов тратить деньги на профессиональную защиту. Продукт, который она защищает сырой и не распространен. По крайней мере она не даст воровать продукт прям из под моего носа.
Наверно одна из самых главных ошибок при защите ПО:
На ее создание было потрачено 3 месяца. Но, думаю это все равно лучше чем никакая защита. Я не готов тратить деньги на профессиональную защиту.


Потому что:
… на её взлом уйдёт, думаю, от пары часов до пары дней, в зависимости от квалификации.


Но в качестве практики — почему бы и нет, полезно, если от этого не зависит ваш семейный бюджет =)
Ваше право, но даже если мне потребуется ваш софт и я его куплю — после покупки скачаю ломаную портабельную версию, чтобы записать на флешку и иметь всегда с собой. Вы ведь не против?
Эх. О чем мы говорим… все мы пользовались ломаным софтом. Как создатель софта я против. Но как потребитель, я вижу, как люди учатся на ломаном софте, как из мальчиков вырастают матерые программисты и админы — и мне совсем не жалко.
Ну а зачем тогда делать хуже послушным покупателям, если всё равно сломают и сломанная версия будет удобнее не сломанной?
А как им стало хуже? Они могут работать и на ломаном и на не ломаном софте. Защита требует активации только 1 раз. Версия так сказать портабельная)
Привязка к диску и сетевой карте же?
Ах, Вы в это смысле… да.
Но специфика именно того ПО не подразумевает замену оборудования на котором оно работает. Только в случае поломки.
Но думаю свои деньги нужно отрабатывать, и если на софте стоит защита, то это как-то организует пользователя, чтобы он оплатил. Знаете, там не только привязка к оборудованию, но и ко времени и к количеству соединений к базе данных.
Ничего личного, только бизнес.
Но несмотря на все, я все-же очень лояльно отношусь к взломам программы. Пока. И надеюсь не изменюсь.
НЛО прилетело и опубликовало эту надпись здесь
а разве vmprotect виртуализует DotNet код или что Вы предлагаете обфусцировать?
тоже самое можно сказать об Enigma, Themida и им подобных native ориентированных нашлепках для дельфинистов
соответственно дамп — и весь дотнет код вот он

единственно известный мне виртуализатор DotNet — Eazfuscator, если кто знает другие, пожалуйста дайте знать (напишите тут)
Enigma (для привязки к железке) в паре с Eazfuscator работает очень хорошо, удивительно, что авторы до сих пор не сделали bundle общими силами или хотябы предложение купить их вместе — вкуснее.
Есть такое правило среди копирастов: если твой софт представляет интерес, то рано или поздно будет сломан. Лично я против всяких костылей для конечного пользователя в виде всяких мониторов блоков памяти, DRM, привязки к сетевухе и т.п., это доставляет уйму проблем честным пользователям, у которых нет сети, или они запускают Nый софт в виртуалке/под wine.

ИМХО, есть более эффективные способы мотивации потенциальных покупателей.
Я когда-то делал простую защиту: клиентское место получало с сервера необходимые для работы данные, распаковывало их своим ключом и работало (по сути это было шифрование RSA). Если приложение не получало данных — оно просто не могло без них работать, т.к. эти данные использовались. Взять откуда-то снаружи и прошить — никакого толку, точно так же как и отключение — приложение просто становилось «демо-версией» c ограниченным функционалом. Никаких привязок к оборудованию, ибо незачем. При этом каждое рабочее место имело свой ключ-лицензию.
В один чудный день я получил письмо от «хакера», в котором он рассказал насколько легко отключить проверку. После моего совета опробовать взломанную программу в работе он куда-то пропал. :-)
Народ. Такое чувство, что меня немного не до поняли. Я рассказываю о системе лицензирования, и как это вижу я, а не об защите ПО на уровне байтиков. Как я понимаю система лицензирования позволяет более эффективно контролировать распространение ПО и система защиты в ней (пусть и не совершенная), это лишь ее функционал. Если же устанавливать систему лицензирования на приложение автоматизации торговли, то от этого поставщик ПО только выиграет, а потребитель не прогиграет. Много известных компаний используют лицензирование в своих продуктах, думаю их названия даже перечислять не нужно. Кроме того, даже производители оборудования требуют лицензии на свои железки. Разве не так? И требуют обслуживание сертифицированным персоналом (тоже лицензии, если посмотреть с другой стороны). А производители СУБД? и у них покупаются лицензии.
Все гребут бабло.
И меня здесь пытаются убедить, что лицензирование это плохо? Не делай защиту самостоятельно — купи ее у профессионалов?
Мне смешно, господа.
Тех. задание от самого себя самому себе ставилось такое:
4. ПО не должно работать не получив ключа активации
5. Ключ активации не должен храниться в дистрибутивах ПО и его нельзя просто вычислить (вычислить можно, но не просто)
6. ПО не должно запускаться, если его «пропатчить»
7. Ключ активации должен быть привязан только к одному работающему экземпляру ПО
8. Возможность менять ключи активации после обновления ПО
9. Возможность ограничивать действие ключа активации по времени
10. Ключ активации должен нести информацию об задействованных модулях в программе.


Судя по Вашему ТЗ это далеко не частный, а самый что ни на есть основной функционал Вашего ПО — другими словами ограничение области применения вашего софта.

А когда личности, считающие что это нормально, добираются до руля, мы получаем всякие няшные плюшки в виде secure boot, реестра запрещённых сайтов, SOPA/PIPA и т.д. И это печалит…
Есть примеры про личностей? По моему у Вас просто фобия. Может еще милицию распустить?
Самый большой пример: Microsoft — сговор/давление на производителей оборудования — результат в виде адовых костылей с подписью не виндовых бутлоадеров (распростроняться не буду, и так все знают). Борьба с Apple c джеилбрейками --> попытка узаконить запрет на unlock девайсов. Личностями в данном случае является маркетинговый отдел компаний. Крайний случай Мезулина-Мерзулина: «Ведите себя прилично в моём интернете».
И что? Вас все это раздражает? Да ВЕСЬ мир устроен так что правит сильнейший. И со школы нам внушают теорию Дарвина, которую Вы, я думаю поддержите вместо уроков по православию. Этот мир любит сильных, слабым здесь не место.
Слабый тот, кто боится, что его софтину стырят, кто борется за «недополученную прибыль» в судах. Я бы назвал человека сильным, сильным духом, если у него хватило смелости открыть исходники (хотя бы в том объёме, который не затронет «права» других копирастов.

Выбор в сторону Unix был сделан по экономическим соображениям. Хоститься на юниксе дешевле в 15 раз, чем на виндовс. Сервер стоит, и кушать не просит.


Почему разработчики FreeBSD дали Вам пользоваться своим детищем и предпочли не наживаться на этом? Вы об этом подумайте.
Во первых FreeBSD стоит у хостера, и в нашем случае хостер наживается на мне.
Во вторых FreeBSD детище Беркли, и права на саму FreeBSD принадлежат попечителям университета калифорнни, которые, думаю не бедные люди (но для меня 100% добрые меценаты). Люди писали эту систему тоже за денежное довольствие, иначе на что жить. Вы же мне предлагаете не заработав на своем ПО ни копейки все отдать людям.
Знаете ли, у каждого человека свои цели. Я хочу хорошую квартиру и машину. Да и Вы, наверное не программируете за еду?
Слабый тот, кто боится, что его софтину стырят, кто борется за «недополученную прибыль» в судах

О да, Майрософт, Эппл, Оракл, HP, IBM все слабы и должен умереть… только дождаться никто не может
Пока будут люди, которые тырят, я буду защищаться. А вы держите свою квартиру открытой? А почему закрываетесь? Вы определенно чего-то боитесь.
Беркли и К нашли способ монетизации open source софта как и многие другие люди.
Во-первых/во-вторых пишутся через дефис и выделяются запятой, т.к. это вводные слова.

Дальше… Если Вы думаете, что опубликовав исходники, Вы теряете право на них, а также, что на открытом софте нельзя заработать, то Вы глубоко заблуждаетесь.

В Норвегии многие не закрывают жилище… Повод к размышлению, опять же
Беркли и К нашли способ монетизации open source софта как и многие другие люди.

Слава Богу у меня еще осталось права выбирать что мне делать со своим софтом, как и у многих других программистов, как и у многих других людей творческой профессии — писателей, художников.
Мне было бы интересно посмотреть на ваши творения-продукты.

Во-первых/во-вторых пишутся через дефис и выделяются запятой, т.к. это вводные слова.
Если бы не правила форума, настоятельно рекомендующие следить за русским… Но извините, никто не идеален. И я и вы.

Если Вы думаете, что опубликовав исходники, Вы теряете право на них, а также, что на открытом софте нельзя заработать, то Вы глубоко заблуждаетесь.
Об этом в курсе, спасибо.

В Норвегии многие не закрывают жилище… Повод к размышлению, опять же
О чем же я должен рассуждать? О том, что не стал иммигрантом? Я этому рад.
Сделав выводы из Вашего последнего комментария, предлагаю окончить данную полемику. Что касается моих и совместных проектов, то милости прошу.

Разработкой algo-trading софта занимался, так что не понаслышке знаю, что это такое.
Да, давайте закончим.
Если честно, я под устал от этих философских баталий. Время покажет что лучше — открытый или закрытый код. Хотя, этот спор, наверное, всегда будет бессмысленным.
Не вижу ничего плохого что я хочу защитить СВОЮ собственность. Кстати в России еще она не так хорошо защищена. Вы бы почитали про становление капитализма на западе. Кажущаяся вседозволенность и толерантность прячется за очень суровыми законами.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации