2010-03-03 8 views
16

Возможные Дубликаты:
How do you protect your software from illegal distribution?
Best practice to prevent software copyКак защитить свой программный код?

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

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

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

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

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

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

+9

Люди людей одержимы такими вещами. – ChaosPandion

+0

Это может помочь, если вы укажете, с какого языка вы работаете ... –

+28

Я запираю его в своем комоде. рядом с моими носками. Этот способ защищен и теплый. –

ответ

22

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

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

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

0

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

1

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

2

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

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

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

3

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

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

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

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

+0

Да, вам придется посвятить все свое жизнь, чтобы взломать, чтобы действительно быть в состоянии бороться с вуду, который продолжается. – ChaosPandion

1

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

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

2

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

0

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

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

2

Я не юрист

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

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

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

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

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

Удачи.

1

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

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

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

0

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

5

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

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

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

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

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

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

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

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

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

0

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

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