Защита C# (.NET) приложений

Issues related to VMProtect
Post Reply
Duss
Posts: 4
Joined: Sun Mar 18, 2018 3:31 pm

Защита C# (.NET) приложений

Post by Duss »

Здравствуйте!
Я знаю что защита этих приложений не поддерживается, однако не могли бы Вы дать некоторые рекомендации по работе с ними?

Также нашел на этом форуме сообщение от Dec 22, 2014
Эксперименты с .NET (в планах на 4.0):
Как результаты экспериментов? Есть успехи или идея заброшена?


У меня стоит задача защитить приложение написанное на .NET (или переписать его на С++ :( )
Как выяснилось в .NET все плохо с защитой исходного кода. После исследований на эту тему приходит в голову следующий вариант:

Написать нативное приложение на С++ иди Delphi, которое будет защищаться через WMProtect. Приложение C# будет добавлено в ресурсы этого приложения и будет вызываться из защищенной секции. Дополнительно на C# будет повешен какой-нибудь обсуфикатор но не суть.
Я в общих чертах понимаю как работает защита в обычных приложениях но не спец в этом. Подскажите насколько такой вариант работы будет надежным? Не смогут ли вытащить исполняемый файл C# из оперативной памяти или ресурсов?
Может дадите какие-то другие рекомендации, понимаю, что полностью защититься не получится, но как максимально усложнить взлом приложения?
Admin
Site Admin
Posts: 2566
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Защита C# (.NET) приложений

Post by Admin »

Не проще перевести из C# на C++ в виде DLL (и затем вызывать эту DLL из .NET приложения) только тот код, который вы хотите защитить?
Duss
Posts: 4
Joined: Sun Mar 18, 2018 3:31 pm

Re: Защита C# (.NET) приложений

Post by Duss »

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


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

P.S. Я понимаю, что VMProtect не предназначен для защиты С# приложений и не прошу их поддержку из коробки. Мне бы пару советов от специалистов, разбирающихся в тонкостях защиты кода больше чем я.
Или в случае С# все безнадежно? :(
dzid
Posts: 16
Joined: Fri Jul 03, 2009 5:48 am

Re: Защита C# (.NET) приложений

Post by dzid »

А как насчёт mixed assemblies (разумеется, только наивный код)?
Admin
Site Admin
Posts: 2566
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Защита C# (.NET) приложений

Post by Admin »

Никак.
Admin
Site Admin
Posts: 2566
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Защита C# (.NET) приложений

Post by Admin »

Post Reply