Замъглявайте приложението си Silverlight с Dotfuscator
За Dotfuscator
Dotfuscator е обфускатор, който прави изходния код труден за четене, когато приложенията, написани с .NET Framework, са разглобени. Dotfuscator се предлага както в безплатни, така и в платени версии на дребно, които идват с Visual Studio.
Безплатната версия е достъпна само с много ограничени функции и предположението, че Visual Studio работи, но всеки с инсталирано Visual Studio може да го използва. Платената версия има много мощни функции за замъгляване, които не са налични в безплатната версия, но може да е досадно, че се предлага на цена, която е трудно за широката общественост да си позволи.
Dotfuscator може да има различни функции, цени и издания в зависимост от версията, така че моля, вижте следния уебсайт за подробности.
Анализиран код
Както бе споменато по-горе, приложенията, създадени с .NET Framework, могат лесно да четат оригиналния изходен код чрез разглобяване, но това, което всъщност се случва, е, че когато разглобите асемблерен файл, както е показано на фигурата, повечето от оригиналния изходен код, като пространства от имена, имена на класове и имена на методи, могат да бъдат възпроизведени.
Процедура по замъгляване
Започнете, като създадете приложението Silverlight, както обикновено, и направете компилация на Release. Тук създаваме приложение, което поставя само два бутона.
В папката Bin\Release на папката, където се намира проектът, въведете . xap" е пакетен файл, който обобщава програмите и файловете, използвани в приложенията на Silverlight.
Всъщност този файл се компресира и компилира като ZIP файл, така че разширението е ". цип".
Той е променен в ZIP файл.
Когато отворите файла, той съдържа файл с манифест и DLL. Този DLL е компилираната версия на програмата, която се изпълнява като приложение.
Между другото, DLL файлът също се поставя в папката Release, когато е изграден, така че този път ще замъглим този файл.
От менюто на Visual Studio изберете Инструменти и след това изберете Превантивен dotfuscator и анализ.
Когато стартирате за първи път, ще се покаже диалоговият прозорец "Лицензионно споразумение", така че прочетете внимателно съдържанието, проверете "Да, приемам лицензионното споразумение" и кликнете върху бутона "OK".
The PreEmptive Dotfuscator And Analytics CE започва.
Изберете "Входове" от дървото вляво и кликнете върху бутона "Добавяне на вход".
Изберете DLL файла, който сте генерирали по време на изграждането.
Изберете DLL файла, който сте добавили, и махнете отметката от Библиотечен режим > XAML преобразуване.
Ако е отметнато "Библиотечен режим", класовете и методите, дефинирани публично, няма да бъдат замъглени.
Ако е отметнато "XAML преобразуване", класовете, дефинирани в XAML, ще бъдат замъглени, но в зависимост от това как го създавате, това ще доведе до грешка при стартиране, така че ако се случи, моля, махнете отметката от нея.
По принцип всички класове, методи, свойства и имена на променливи са замъглени, но ако не искате да замъглявате конкретно пространство от имена или клас поради сериализация, изберете "Преименуване" от дървото вляво, изберете раздела "Изключване" и проверете целевото пространство от имена или клас.
Под Вградени правила се уверете, че полетата за Silverlight и WPF UserControls са отметнати. Проверката на това ще направи полето UserControls замъглено и ще се изпълни успешно. Можете да го махнете, ако изглежда, че работи правилно дори след замъгляване.
Когато приключите, кликнете върху бутона "Изграждане на проект" от лентата с инструменти.
Ако има промени в проекта, ще се покаже диалоговият прозорец за потвърждение на записването на проекта, така че кликнете върху "Да", за да запазите.
Проектът се нарича ". xml" файл. Замъглените файлове се записват на същото място.
Изчакайте изграждането да завърши, когато започне. Имайте предвид, че колкото по-голяма е програмата, толкова по-дълго е необходимо да се изгради. Когато изглежда като фигурата, конструкцията е завършена.
Полето за съобщения показва напредъка на компилацията и кратък резултат, като например колко замъглено е било.
Ако изберете Резултати от дървото вляво, можете да видите подробности за това как са се променили имената на класовете и методите.
Под имената на класовете и методите ще има икона на Dotfuscator и имена като "a" и "b", които ще бъдат замъгленото име. Чрез промяна на името на класа или името на метода на безсмислено име по този начин, дори и да е разглобено, това може да направи съдържанието на изходния код трудно за четене.
Замъгленият файл се създава в папка, наречена "Dotfuscated" в папката на .xml файл, записан в Save Project. Освен замъгления файл е създаден и файл "Map.xml", но това е резултат от замъгляване и не се използва.
Ако разглобите замъгления файл, можете да видите, че някои имена на класове и методи са променени на "a" или "b".
Този път създаденият по подразбиране проект беше замъглен почти такъв, какъвто беше, така че мисля, че има изображение, че не е толкова замъглен, но мисля, че ефектът от замъгляването става по-ясен, защото броят на класовете и т.н. се увеличава с нарастването на проекта.
Като настрана, . NET Framework библиотеки и не подлежат на преименуване, защото са възли, които вече са инсталирани на Windows, например.
Silverlight не използва DLL както е, така че те са опаковани като XAP файлове. Както бе споменато в началото, XAP файлът е просто промяна в разширението на ZIP файла, така че създава ZIP файл, като събира файловете, съдържащи се в XAP файла и завоалираните DLL.
Създаването на ZIP файл може да се извърши с помощта на стандартни функции на операционната система.
Създава се ZIP файл.
Разширението се променя на '. xap" и ако името на файла е различно, променете го на оригиналното име на пакета.
Поставете XAP файла на място за разпространение.
Моля, проверете операцията и вижте дали работи правилно.
Ако не започне, проверете, докато работи нормално, като намалите замъгления код. Имайте предвид, че Silverlight често се забива в въпроси, свързани с XAML.
Въпреки че инструкциите не са изброени тук, ако искате да подпишете програма, изградете я в състояние, подписано със закъснение, замъглете събранието и след това преподпишете. Дори и да го замъглявате, докато е подписан, кодът за подпис, приложен по време на изграждането, и кодът за подпис след замъгляване няма да съвпадат, така че няма да можете да го стартирате.
В тази статия изброих стъпките за безплатната версия, но ако използвате платената версия, можете да извършите по-сложно замъгляване и да предотвратите самото разглобяване. Въпреки това, обфускацията има потенциал да причини различни неблагоприятни ефекти, така че когато се прави замъгляване, е необходимо да се обмисли дали ще работи правилно от началото на дизайна.