Как защитить свой программный код?

Возможные дубликаты:
Как защитить свое программное обеспечение от незаконного распространения? Лучшая практика для предотвращения копирования программного обеспечения

Гипотетическая ситуация:

Предположим, что я создал программный продукт с нуля, и он делает замечательные вещи. Единственная проблема заключается в том, что, когда кто-то взглянет на код, они поймут это очень легко, и они смогут легко создать его сами.

Теперь дело в том, что я построил код с нуля на 100% и использует смесь вызовов API. Никто еще не участвует в разработке кода.

Если я хочу продать этот продукт, какова гарантия того, что кто-то гораздо умнее меня перепроектирует все это и придумает лучший продукт?

Сейчас я думаю о фрагментации всего кода. Добавление большого количества избыточного кода и тонны комментариев.

Есть ли какое-либо программное обеспечение, которое шифрует программный код, который будет выполнять отладку, устранение неполадок и понимание того, как код работает практически невозможно? и все же работает как обычно? так что разработчик может иметь спокойствие?

Ответы

Ответ 1

Очень немногие вещи в программе поистине новы. Почти все, что вы, вероятно, вложите в свой код, кто-то другой может изобретать самостоятельно. Как правило, легче, чем они могли бы узнать, читая ваш код. Чтение кода сложнее, чем писать, и большинству программистов это не нравится делать так или иначе.

Так что гораздо более вероятно, что они будут смотреть на ваше приложение и думать "Я мог бы это сделать", затем "Это круто, я собираюсь прочитать этот код, а затем скопировать его!". Даже если они это понимают, вы по-прежнему будете владеть авторским правом, вы все равно выйдете на рынок первым.

Я рекомендую вам просто забыть об этом.

Ответ 2

как только кто-то взглянет на кода, они это поймут легко и они могут легко создать его сами по себе.

Поэтому никому не давайте исходный код.

Если я хочу продать этот продукт, что является гарантией того, что кто-то много умнее меня будет перепроектировать все это и придумать лучший продукт?

(а) Итак, начните продавать его сейчас и захватите рынок. Обратное проектирование требует времени, в течение которого вы захватываете рынок и "долю разума". (b) Поставьте в лицензионное соглашение положение, запрещающее обратное проектирование. (c) Убедитесь, что все, кто получает продукт, подписывают соглашение.

Сейчас я думаю о фрагментации весь код. Добавление большого количества избыточный код и тонны комментариев.

У этого есть только точка, если вы собираетесь распространять исходный код. В этом случае никто даже не нуждается в обратном проектировании. У них есть исходный код. Не отдавайте их им.

Есть ли программное обеспечение...

Там много программного обеспечения, которое предназначено для выполнения этой работы. Однако это техническое решение для бизнес-задачи. Все программное обеспечение может быть реконструировано, потому что в какой-то момент он должен быть дешифрован и дефискурирован до такой степени, когда ЦП его поймет. В этот момент это, по сути, открытый текст. Таким образом, техническое решение не является формальным (возможно, что-то вроде кода, который выполняется в защищенном от несанкционированного доступа HSM).

Я добавлю, что существует другой бизнес-механизм, который вы можете использовать для защиты от потери бизнеса, что и есть все: цена. Сделать цену настолько высокой, чтобы лицензиаты оценивали свою копию и не разрешали ее проверять, или делали ее настолько низкой, что обратное проектирование было бы неосуществимым; или сделать его бесплатным и заработать деньги на контракте на поддержку.

Ответ 3

Как только у вас действительно есть знания и опыт для написания такой кодовой базы, вам будет ясно, что обфускация предназначена для предотвращения случайного нарушения IP-адресов.

Кто-то, кто хочет знать ваш код, будет знать ваш код.

Если это станет проблемой денежного убытка, то ваша защита будет судом.

Как это работает.

Ответ 4

Кто-то всегда сможет понять и разработать ваш код. Черт, если бы у вас было 0 способов добраться до кода, даже просто использовать систему достаточно, чтобы кто-то смог реплицировать процесс.

Пример: Я беру кувшин с водой и выливаю его в чашку, а спина обращена к другому человеку. Этот другой человек знает, что вода и гравитация являются удивительными, когда вещи попадают в другие контейнеры, поэтому они могут затем разработать процесс подъема кувшина, чтобы гравитация (вызов API) работала в их пользу. Возможно, они не знают точно, какой угол вы использовали в своем предплечье и какие-нибудь сверхсовременные методы удержания чашек, которые вы использовали, но они могут повторить тот же процесс и улучшить его с течением времени.

tl; dr: вы не можете защитить код.

Ответ 5

То, что нужно сделать, - это придумать еще более прекрасные вещи, в то время как конкуренция реконструирует ваш текущий материал. Он назвал конкуренцию инновациями.

Ответ 6

Я не юрист

если вы действительно обеспокоены этим, к тому моменту, когда вы готовы вкладывать в него деньги, не защищайте свой код (помимо чего-то разумного, как обфускация или шифрование), а скорее patent ваша идея и ваш Изобразительное искусство. Тогда, если кто-то это возьмет, перепроектируйте его и сделайте лучший процесс, основанный на вашем, у вас есть юридические основания для получения ваших денег.

Есть тонны вещей, которые вам нужно будет сделать, включая подтверждение того, что они взяли вашу идею (что не так просто), но если это решение мирового голода и всех гуманитарных проблем, сделать.

Теперь для недостатка, я думаю, и, вероятно, на 90% правильно, что ваш метод:

  • Невозможно патентоспособно по различным причинам (я был поражен количеством уже запатентованных идей и как трудно было идентифицировать оригинальное искусство).
  • Не новый или уникальный (т.е. для него уже создано искусство)
  • Не стоит патентовать, потому что расходы намного превосходят преимущества.

Адвокат IP может вам точно сказать, и расходы на консультацию не так уж много. В целом, будет дешевле проконсультироваться с ними, а затем потратить много времени на скрытие кода.

Удачи.

Ответ 7

Даже не беспокойтесь. Если ваш код действительно "делает замечательные вещи", убедитесь, что он будет взломан. И будь это просто для любопытства.

Ответ 8

Существует 100% -ный способ защитить ваш код от обратного проектирования. На каком языке мы говорим? Если это C/С++, то довольно сложно перепроектировать, больше вы можете удалить его из отладочной информации и т.д. Но если это, например, Java, то даже если вы запутываете код, есть некоторые довольно классные инструменты (например, JAD), который покажет большую часть вашей работы.

Несмотря на все это, я думаю, вы должны попытаться изменить свое отношение. Большие компании платят большие деньги за простые решения, и кажется, что в настоящее время сервис - это самое главное, а не программное обеспечение (отсюда успех компаний, работающих на открытом ПО). Итак, если у вас отличное программное обеспечение, не бойтесь, что кто-то может его украсть, скорее подумайте, как продать его хорошо.

Ответ 9

Есть ли какое-либо программное обеспечение, которое шифрует программный код, который будет выполнять отладку, устранение неполадок и понимание того, как код работает практически невозможно? и все же работает как обычно? так что разработчик может иметь спокойствие?

Это совершенно неправильный образ ИМО. Что произойдет, если вас ударит автобус? Ваша компания обанкротилась? Все ваши данные уничтожаются при пожаре? Для каждого из ваших клиентов стоимость их инвестиций в ваше программное обеспечение снизится и, в конечном итоге, достигнет нуля, потому что программное обеспечение не может быть разработано или устранено без каких-либо проблем без вас. Я видел столько денег, потраченных таким образом, я думаю, что это ужасная бизнес-модель.

Я зарабатываю свой хлеб с самим программным обеспечением, поэтому знаю трудности, связанные с этим зарабатыванием на жизнь. Тем не менее, обфускация не может быть сегодня. Навязывайте своим клиентам строгие лицензионные соглашения, напугайте их, поэтому они даже не думают о перераспределении программного обеспечения, но оставляют его открытым.

Ответ 10

Это бесполезно. Всегда есть кто-то умнее вас, и поэтому они смогут переделать вашу обфускацию.

Ответ 11

Обычно кто-то достаточно умный, чтобы взломать ваш код и использовать его значимым образом, достаточно умен, чтобы сделать это сам по себе, и, вероятно, думает, что он может сделать это лучше, чем вы, поэтому они не будут воровать ваши вещи.

Не беспокойтесь о людях, которые могут взломать ваш код, но не могут его осмысленно использовать. Если вы проделали хорошую работу, это может только укрепить качество выполняемой вами работы (подумайте обо всех дрянных сенсорных телефонных имитаторах).

Ответ 12

Они собираются перепроектировать ваш код. Ничто не может остановить их. Единственное, что вы можете сделать, это сделать это сложнее. Это варьируется от обфускационного кода, который наследуется как открытый, например PHP и Javascript, вплоть до засорения вашего кода с помощью грубой загрузки самомодификации.

Ответ 13

Во многом, я думаю, то, что делает ценность программного обеспечения ценным, - это не безумное технологическое продвижение, которое он предоставляет, а скорее то, что, по нашему мнению, может показаться будучи третичным для части программного обеспечения. Как и тот факт, что вы будете там, чтобы поддержать его. Или, что он предоставлен в качестве веб-службы, и вы будете там, чтобы убедиться, что сервер работает. Или что это сообщество, и вы будете там, чтобы смягчить и построить сообщество.

Пока вы действительно продаете код, ценность, которую вы используете для своего кода, не является неотъемлемой частью самого кода, а скорее вытекает из функций и экосистемы, которая окружает ваш код.