Подтвердить что ты не робот

Как я могу запутать свой код С#, так что его нельзя легко деобфусить?

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

Как я могу защитить свою программу? Я пробовал HWID, но люди все еще могут взломать его. Я знаю, что я ограничен С#, но это наиболее удобно использовать. Мне просто нужен способ защитить свои программы от людей, пытающихся это сделать.

4b9b3361

Ответ 1

Вы могли бы взглянуть на многие инструменты запутывания, которые существуют, например, упомянутые в https://stackoverflow.com/questions/805549/free-obfuscation-tools-for-net (примечание: вопрос в настоящее время недоступен для просмотра).

РЕДАКТИРОВАТЬ: указанный выше вопрос был удален и, следовательно, недоступен для просмотра. В качестве ссылки здесь приведен список работающих в данный момент ссылок, опубликованных в приведенном выше вопросе, которые были получены с помощью некоторых опытных пользователей:

http://gapotchenko.com/eazfuscator.net
http://orangeheap.blogspot.nl
http://confuser.codeplex.com (см. https://yck1509.github.io/ConfuserEx/) http://ntoolbox.com

Ответ 2

Ну, проблема с такими языками, как С#/Java, заключается в том, что они, как правило, намного проще де-путать. Способ обеспечить это, как правило, заключается в том, чтобы помещать этот материал в веб-сервис, но вы сказали, что не можете этого сделать. Как переносить конкретные нетривиальные функции на язык, такой как C, и обфускать это. Затем ваша программа С# может использовать отражение для совершения вызовов этой внешней/неуправляемой dll. Это увеличило бы трудность де-обфускации, но проблема в том, что, если кто-то хочет, чтобы он был достаточно плохим, они могут понять это, поскольку это клиентская сторона.

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

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

Ответ 3

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

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

Ответ 4

Там Dotfuscator (http://www.preemptive.com/products/dotfuscator/overview). Но лучшим решением в некоторых случаях является предложение того, что вы делаете как веб-сайт (Программное обеспечение как услуга).

Рассмотрим этот инструмент, например, для преобразования VB в С#: http://converter.telerik.com/

Или этот инструмент для форматирования JSON: http://jsonformatter.curiousconcept.com/

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