Павел Ф.
62 сообщения
#17 лет назад
До недавнего времени у меня неплохо получалось удовлетворять все запросы заказчиков, используя C# и Visual Studio - 2005, пока один из них не потребовал защитить свою программу. Вот тут-то все и началось. До сих пор не могу найти оптимального решения - все перепробованные способы или требуют кучу денег или приводят к неработоспособности программы. Может кто-нибудь даст полезный совет в этом вопросе?
Илья К.
120 сообщений
#17 лет назад
От чего вы хотите защитить свой продукт?
Павел Ф.
62 сообщения
#17 лет назад
От декомпиляции, например, ildasm, то есть скрыть исходный код от просмотра.
Виктор Т.
1036 сообщений
#17 лет назад
p_fateev, оставьте эту идею. NET это не то, что можно хорошо защитить)
Павел Ф.
62 сообщения
#17 лет назад
Я уже готов с этим согласиться, но многочисленные разработчики обфускаторов, предлагающие свои продукты за бешеные деньги, вероятно, имеют на этот счет иное мнение...
Болатов А.
1090 сообщений
#17 лет назад
Можно некоторые ключевые функции программы вынести в DLL (ActiveX или Native).
Alex Antikom
5 сообщений
#17 лет назад
Вот почитай может пригодится
Павел Ф.
62 сообщения
#17 лет назад
Заказчику нужна программа, требующая регистрации (проверки рег. ключа), поэтому частичная защита не подходит, так как даже если фукции проверки регистрационного кода вынести, в любом случае их можно будет обойти
Вадим Т.
3240 сообщений
#17 лет назад
Цитата ("p_fateev"):
До сих пор не могу найти оптимального решения - все перепробованные способы или требуют кучу денег или приводят к неработоспособности программы. Может кто-нибудь даст полезный совет в этом вопросе?

А можете ли пожалуйста привести пример таких систем, которые "требуют кучу денег", и сколько именно они стоят?
Может быть "куча денег" - это вовсе не куча, а мелочевка для заказчика?
Павел Ф.
62 сообщения
#17 лет назад
Цитата ("AntiKom"):
Вот почитай может пригодится ]http://www.gotdotnet.ru/LearnDotNet/NETFramework/125201.aspx

Спасибо за ссылку, я уже не раз перечитывал эту статью.
Павел Ф.
62 сообщения
#17 лет назад
Например, Inquartos ® Obfuscator стоит 8000 рублей. При этом бесплатная ограниченная версия "калечит" программу. Я не думаю, что советовать заказчику этот вариант - отличная идея.
Вадим Т.
3240 сообщений
#17 лет назад
8000 руб (350 USD) - мелочи для любого разумного заказчика, если он конечно не студент.
Это разовая трата, и при этом приобретается продукт, который можно использовать для всех своих проектов.
А разработка подобного же решения с нуля своими силами выйдет неизмеримо дороже.
Ведь стоимость разработки не очень мощного .NET обфускатора - не менее 2-3 человеко-месяцев (даже если считать по джуниорскому рейту 10 USD в час, бюджет будет не менее 4000 USD).

Другой вопрос, что оно, возможно, кривое, и что-то "калечит".
В этом случае нужно выбрать другой солюшен, или с пообщаться с их саппортом, чтобы посмотреть на платную версию в работе.
Павел Ф.
62 сообщения
#17 лет назад
В принципе, я согласен с тем, что мне, как .NET разработчику, не помешало бы иметь среди своего инструментария какой-нибудь более-менее приличный обфускатор (купленный за средства какого-нибудь заказчика ), но в данной ситуации проект малобюджетный, поэтому хотелось бы найти и соответствующее решение.
Юрий Муленко
21 сообщение
#17 лет назад

пробовали ?
Илья К.
120 сообщений
#17 лет назад
Так все таки от декомпиляции или просмотра исходных текстов? Ищите вы все же обфускатор.
А вы пробовали декомпилить свое творчество, видели исходные тексты? Насколько они "похожи" на оригинал?
Павел Ф.
62 сообщения
#17 лет назад
Еще раз о сути вопроса: есть программа, написана на C#. Необходимо защитить программу от возможности внешнего вмешетельства, а именно обхода метода, проверяющего наличие и валидность серийного номера. Большое спасибо всем, кто откликнулся на мое сообщение, но мне хотельсь бы услышать совет от кого-нибудь, кто также сталкивался с такой проблемой и кому удалось все-таки ее решить. Я не сказал бы, что все сводится к поиску обфускатора - есть и другие решения этой проблемы (например, ), но если кто-нибудь мне скажет, что с успехом польуется каким-нибудь обфускатором и доволен этим - это тоже будет тот совет, которого я ожидал.
Павел Ф.
62 сообщения
#17 лет назад
Warvick: за Dotfuscator спасибо, достойный вариант.
Тимур Ч.
300 сообщений
#17 лет назад
Как человек, занимавшийся декомпиляцией всего и вся скажу вам откровенно - нихера у вас не получится. Грамотный кракер если даже не получит исходный код, который можно скрыть обфускатором, то за день-два изучит байт-код обычным декомпилером и по нему восстановит алгоритм генерации ключа, либо сделает битхак на пару-тройку команд и обойдет всю проверку. Защитить ПО чисто программными методами невозможно. А уж ПО на .NET и подавно.
Вадим Т.
3240 сообщений
#17 лет назад
akkort, конечно, 100% защиты нет, но можно код усложнить.
Например, нормальный обфускатор не только делает код нечитаемым, но и добавляет в него избыточный код, который ничего не делает. Бессмысленные присваивания переменных, небольшие циклы, куски крипто-алгоритмов.
Да, это несколько ухудшает производительность продукта... но зато тот, кто исследует код, вынужден тратить очень много времени на исследование огромного количества сложных, запутанных и бессмысленных конструкций.
Таким образом, на то, чтобы разобраться в подобном коде, можно тратить месяцы и годы, тем более учитывая, что в случае с .NET разбираться придется в IL, а не в высокоуровневых исходниках.
Тимур Ч.
300 сообщений
#17 лет назад
tvv, про месяцы и годы - это вы загнули. Неделя. А для профи со своими наработками, либо если решение стандартное, а программист в этом ничего не понимал - два-три дня. Про технологии снятия всего этого писать даже лень.