Здравствуйте, ivanchez0077, Вы писали:
I>Здравствуйте, Ambyte, Вы писали:
A>>NET Reactor + Enigma Virtual Box + Динамическое выполнение кода проверки лицензий
I>я в защите программ, в том числе на C#, ни бум-бум. где почитать можно об этом?
Почитать всегда можно в Google, об этих технологиях много всего написано.
Здравствуйте, ivanchez0077, Вы писали:
I>Здравствуйте, TheByteMan, Вы писали:
I>тогда уж лучше все делать на native языке, не?
Нееее....знаю, это вам решать, GUI на C# попрятней писать, чем на С++, да и не только GUI, тем более можно перенести не всю бизнес логику, а лишь часть. К тому же можете вынести какую-то часть кода на сервер и в связке WCF, что в NET сделать очень просто, приделать аутентификацию со всеми вытекающими.
Можете еще к примеру воспользоваться C++/CLI с нативными вставками, на выходите получается довольно запутанная и трудно анализируемая связка, правдо и майтейнить такие приложения еще то удовольствия.
Если уж хотите использовать чисто .NET решения, могу порекомендовать использовать ConfuserEx, он open-source и позволяет создавать приблуды через систему плагинов, правда будьте готовы к false-positive от некоторых антивирусов — вирусописатели уже не те...
А, да, еще можете тришечки зачекати, когда Microsoft .NET Native пойдет в массы
Еще есть вариант с ngen, но насколько я помню, это нужно будет делать на каждой устанавливаемой машине, и вот на этапе генерации native кода из управляемой сборки, управляемое приложения можно достать без проблем, хотя я особо не вникал, может как-то там по другому, да и не для защиты она а для ускорения.
Здравствуйте, ivanchez0077, Вы писали:
I> Как вы защищаете свои C# приложения?
Обфускаторами: коммерческим (9Rays.Net) и часть кода генерю своим. Раньше делал маленькую виртуальную машину (интерпретатор байткода), сейчас просто генерю код, который компилятор C# превращает в такую веселуху, что иные декомпиляторы просто падают или виснут, даже без обфускатора.
Здравствуйте, ivanchez0077, Вы писали:
I>Раз проги на C++ ломают на 1-2, то на C#, наверное, тем более? Как вы защищаете свои C# приложения?
Проги на C# ломают меньше так как недостаточно еще развита технология их взломов
Хорошо — навесная защита с двойной активацией limeLm и обфусцировать чем то новым
Здравствуйте, artkarma, Вы писали:
A>Проги на C# ломают меньше так как недостаточно еще развита технология их взломов
точно? они ведь почти как тестовые файлы
Здравствуйте, artkarma, Вы писали:
A>Здравствуйте, ivanchez0077, Вы писали:
A>Проги на C# ломают меньше так как недостаточно еще развита технология их взломов
Вы лет так на 10 с гаком отстали от жизни. Есть целый арсенал программ для взлома .NET приложений и огромное количества статей по этому поводу. Да и по уровню сложности, взлом NET приложений, по сравнению с простым нативным приложениям, несравненно, в разы, проще.
A>Хорошо — навесная защита с двойной активацией limeLm и обфусцировать чем то новым
Видно, вы совсем далеки от этой темы, навесная защита снимается на раз-два, существует куча инструментов для этого — от универсальных(от NTCore к примеру) до специализированных(de4dot), а обфускаторы в контексте взлома .NET — это вообще детский лепет и ниочем.
Здравствуйте, TheByteMan, Вы писали:
TBM>Здравствуйте, artkarma, Вы писали:
A>>Здравствуйте, ivanchez0077, Вы писали:
A>>Проги на C# ломают меньше так как недостаточно еще развита технология их взломов
TBM> Вы лет так на 10 с гаком отстали от жизни. Есть целый арсенал программ для взлома .NET приложений
Возможно,
огласите пожалуйста список из 10 популярных инструментов с ссылками я почитаю (дедот и рефлектор вычеркните)
или больше 2 рабочих отладчиков под MSIL-код (тоже с ссылками)
A>>Хорошо — навесная защита с двойной активацией limeLm и обфусцировать чем то новым
TBM>Видно, вы совсем далеки от этой темы, навесная защита снимается на раз-два, существует куча инструментов для этого — от универсальных(от NTCore к примеру) до специализированных(de4dot), а обфускаторы в контексте взлома .NET — это вообще детский лепет и ниочем.
Да наверно я безнадежно отстал...
Давайте я вам скину защищенную прогу именно такой навесной защитой и заобфусцированную уже несвежим обфускаторм . Вы её взломаете и поделитесь технологией быстрого взлома? Ок? За какое время Вы бы её взломали? Мне бы было интересно обсудить
Здравствуйте, artkarma, Вы писали:
A>огласите пожалуйста список из 10 популярных инструментов с ссылками я почитаю (дедот и рефлектор вычеркните)
А что еще нужно для правки MSIL кода? Достать сборку, удалить мертвые(недостижимые) блоки инструкций если есть, закинуть в рефлектор — найти что нужно, подправить MSIL, собрать и вуаля. Взлом NET-а до ужаса примитивен, по крайне мере в большинстве случаев, в подавляющем большинстве случаев. Вы можете хоть написать свою VM поверх CLR, но как показывает реальная практика — вы просто потратите время, не особо то и улучшив положения вещей.
A>или больше 2 рабочих отладчиков под MSIL-код (тоже с ссылками)
Я лично не пользовался ни одним, потому что в этом тупа нет необходимости, вообще никакой необходимости нет.
A>Давайте я вам скину защищенную прогу именно такой навесной защитой и заобфусцированную уже несвежим обфускаторм . Вы её взломаете и поделитесь технологией быстрого взлома? Ок? За какое время Вы бы её взломали? Мне бы было интересно обсудить
Давайте, скидывайте. За какое время? А за какое время вы выпускаете апдейты своих программ? За минуту, две? Или месяц/пол года?
Здравствуйте, ivanchez0077, Вы писали:
I>Раз проги на C++ ломают на 1-2, то на C#, наверное, тем более? Как вы защищаете свои C# приложения?
Да вроде бы вполне неплох бесплатный DotFuscator Community Edition, встроенный в VisualStudio 2013 Community Edition. Если надо, все равно взломают, а здесь, хотя бы, помучаются.
Для себя только отметил две вещи, которые надо делать руками:
1) переподписать обфусцированные файлы через sn, а иначе не запустится на другой машине;
2) у файла exe убрать флаг, указав, что это — не библиотека, а иначе до черта останется необфусцированным.
TBM>А что еще нужно для правки MSIL кода? Достать сборку, удалить мертвые(недостижимые) блоки инструкций если есть, закинуть в рефлектор — найти что нужно, подправить MSIL, собрать и вуаля. Взлом NET-а до ужаса примитивен, по крайне мере в большинстве случаев, в подавляющем большинстве случаев.
ну тогда как проверять, куплен у моей проги ключ пользователем или нет? Все равно в любом случае где-то в самой программе мне нужна будет строчка:
if (ключ не куплен)
message Купи ключ
else
// работаем....
Пропатчить C# исходники ведь элементарно, значит элементарно отключить эту проверку. И эту проверку, повторюсь, на сервер не вынесешь, все равно строчку "if (ключ не куплен)" нужно будет держать в программе по-любому.
Здравствуйте, ivanchez0077, Вы писали:
I>Пропатчить C# исходники ведь элементарно, значит элементарно отключить эту проверку. И эту проверку, повторюсь, на сервер не вынесешь, все равно строчку "if (ключ не куплен)" нужно будет держать в программе по-любому.
Например, объединить проверку с инициализацией каких-то важных данных, без которых все падает. Убрали или не прошли проверку — прога не работает. У меня так.