Замъглявайте приложението си Silverlight с Dotfuscator

Страницата се актуализира :
Дата на създаване на страница :

За Dotfuscator

Dotfuscator е обфускатор, който прави изходния код труден за четене, когато приложенията, написани с .NET Framework, са разглобени. Dotfuscator се предлага както в безплатни, така и в платени версии на дребно, които идват с Visual Studio.

Безплатната версия е достъпна само с много ограничени функции и предположението, че Visual Studio работи, но всеки с инсталирано Visual Studio може да го използва. Платената версия има много мощни функции за замъгляване, които не са налични в безплатната версия, но може да е досадно, че се предлага на цена, която е трудно за широката общественост да си позволи.

Dotfuscator може да има различни функции, цени и издания в зависимост от версията, така че моля, вижте следния уебсайт за подробности.

Дотфускатор

Анализиран код

Както бе споменато по-горе, приложенията, създадени с .NET Framework, могат лесно да четат оригиналния изходен код чрез разглобяване, но това, което всъщност се случва, е, че когато разглобите асемблерен файл, както е показано на фигурата, повечето от оригиналния изходен код, като пространства от имена, имена на класове и имена на методи, могат да бъдат възпроизведени.

解析されたコード

Процедура по замъгляване

Започнете, като създадете приложението Silverlight, както обикновено, и направете компилация на Release. Тук създаваме приложение, което поставя само два бутона.

Release ビルド

В папката Bin\Release на папката, където се намира проектът, въведете . xap" е пакетен файл, който обобщава програмите и файловете, използвани в приложенията на Silverlight.

XAP ファイル

Всъщност този файл се компресира и компилира като ZIP файл, така че разширението е ". цип".

拡張子を .zip に変更

Той е променен в ZIP файл.

ZIP ファイル

Когато отворите файла, той съдържа файл с манифест и DLL. Този DLL е компилираната версия на програмата, която се изпълнява като приложение.

Между другото, DLL файлът също се поставя в папката Release, когато е изграден, така че този път ще замъглим този файл.

ZIP ファイルの中身

От менюто на Visual Studio изберете Инструменти и след това изберете Превантивен dotfuscator и анализ.

Когато стартирате за първи път, ще се покаже диалоговият прозорец "Лицензионно споразумение", така че прочетете внимателно съдържанието, проверете "Да, приемам лицензионното споразумение" и кликнете върху бутона "OK".

PreEmptive Dotfuscator And Analytics を選択

The PreEmptive Dotfuscator And Analytics CE започва.

PreEmptive Dotfuscator And Analytics CE

Изберете "Входове" от дървото вляво и кликнете върху бутона "Добавяне на вход".

入力の追加

Изберете DLL файла, който сте генерирали по време на изграждането.

ビルドで生成した DLL ファイルを選択

Изберете DLL файла, който сте добавили, и махнете отметката от Библиотечен режим > XAML преобразуване.

Ако е отметнато "Библиотечен режим", класовете и методите, дефинирани публично, няма да бъдат замъглени.

Ако е отметнато "XAML преобразуване", класовете, дефинирани в XAML, ще бъдат замъглени, но в зависимост от това как го създавате, това ще доведе до грешка при стартиране, така че ако се случи, моля, махнете отметката от нея.

「ライブラリ モード」「XAML の変換」のチェックを外す

По принцип всички класове, методи, свойства и имена на променливи са замъглени, но ако не искате да замъглявате конкретно пространство от имена или клас поради сериализация, изберете "Преименуване" от дървото вляво, изберете раздела "Изключване" и проверете целевото пространство от имена или клас.

難読化の除外

Под Вградени правила се уверете, че полетата за Silverlight и WPF UserControls са отметнати. Проверката на това ще направи полето UserControls замъглено и ще се изпълни успешно. Можете да го махнете, ако изглежда, че работи правилно дори след замъгляване.

Silverlight および WPF 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 化

Създава се ZIP файл.

ZIP ファイル

Разширението се променя на '. xap" и ако името на файла е различно, променете го на оригиналното име на пакета.

Поставете XAP файла на място за разпространение.

XAP ファイルに変更

Моля, проверете операцията и вижте дали работи правилно.

Ако не започне, проверете, докато работи нормално, като намалите замъгления код. Имайте предвид, че Silverlight често се забива в въпроси, свързани с XAML.

動作確認

Въпреки че инструкциите не са изброени тук, ако искате да подпишете програма, изградете я в състояние, подписано със закъснение, замъглете събранието и след това преподпишете. Дори и да го замъглявате, докато е подписан, кодът за подпис, приложен по време на изграждането, и кодът за подпис след замъгляване няма да съвпадат, така че няма да можете да го стартирате.

В тази статия изброих стъпките за безплатната версия, но ако използвате платената версия, можете да извършите по-сложно замъгляване и да предотвратите самото разглобяване. Въпреки това, обфускацията има потенциал да причини различни неблагоприятни ефекти, така че когато се прави замъгляване, е необходимо да се обмисли дали ще работи правилно от началото на дизайна.