Obfuscate приложения, създадени с помощта на Dotfuscator

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

резюме

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

Говорим за това тук с помощта на Visual Studio 2010, но можете да използвате Dotfuscator в 2005 и 2008, както добре.

Dotfuscator を使用して作成したアプリケーションを難読化する

Операционна среда

Поддържани версии на Visual Studio

  • 2005
  • 2008
  • 2010

Проверка на версия на визуално студио

  • 2005
  • 2008
  • 2010

вещество

За Дотфускатор

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

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

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

Процедура за обфускация

難読化していないアプリケーションの逆アセンブル結果

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

Описва стъпките, за да направят тези имена объркващи и запразни.

Dotfuscator Software Services

Създаването на приложение в Visual Studio и създаването на exe файл е точно същото като нормалния начин за създаването му.

След като изградите и създадете exe файла, изберете Инструменти от менюто на Visual Studio и след това изберете Софтуерни услуги на Dotfuscator.

使用許諾契約書

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

Dotfuscator Software Services

Стартира Софтуерните услуги на Дотфускатор.

入力アセンブリの追加

Exe (или dll файл), за да бъдат замразени не трябва да бъде от текущо отворения проект.

Изберете Входящи сглобки от дървото вляво и кликнете върху входящите сглобки отдясно, за да щракнете върху бутона ... .

難読化する exe ファイル

Изберете файла exe, който искате да обфускате.

追加したアセンブリ

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

プロジェクトのビルド

След като изберете exe, което искате да замразите, щракнете върху бутона Изграждане на проект от лентата с инструменти.

プロジェクトの保存

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

プロジェクトの保存場所指定

Проектът се нарича ". XML" файл. Obfuscated exe файлът също ще бъде записан на същото място, така че запишете .xml файл във всяка папка.

ビルド

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

Полето за съобщения показва прости резултати, като например напредъка на компилацията и колко обфускано е било.

難読化結果

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

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

難読化したアセンブリ

Obfuscated exe файлове са създадени в папката на .xml файлове, записани в Save Project, наречен "Dotfuscated", и са създадени в нея. В допълнение към exe файла е създаден файл "Карта .xml", но това е резултат от обфускация и не трябва да се използва.

難読化したアセンブリの実行時エラー

Обфускани бивши могат да се изпълняват и използват as-is. Има обаче случаи, при които не може да се стартира поради неизвестна грешка, както е показано на фигурата вдясно.

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

Приложенията на Windows Form препращат директно към класа "От", така че те могат да се изпълняват без грешки, дори ако са замразени. Ако обаче посочите име на клас, тип enum и т.н. по име, трябва да внимавате, защото има възможност да възникне същата грешка.

難読化の除外

Ако не искате да замразите даден клас или нещо такова, изберете Преименуване от дървото от лявата страна на Dotfuscator и изберете Изключване от средния раздел.

Всяко пространство на имената, името на класа и т.н. ще се показват в списъка вдясно, така че проверете елементите, които не искате да замразите.

Тук не искам да променя името на класа на прозореца, който да се показва първо, така че проверявам "MainWindow".

難読化から除外されたクラス

Когато направите компилацията, можете да видите, че няма променено име под името на класа в MainWindows. (Класът на приложението е преобразуван в "а")

難読化したアセンブリの実行

Когато стартирате файла obfuscated exe, можете да видите, че прозорецът се показва правилно.

難読化後の逆アセンブル

Ако разглобявате obfuscated exe файла, можете да видите, че името на класа и името на метода са променени правилно на "a" или "b".

Но като настрана. NET Framework библиотеки като имена на класове не подлежат на преименуване, защото те са сглобки, които вече са инсталирани на Windows и на други места.

Този път замразих проекта по подразбиране, създаден такъв, какъвто е, така че мисля, че има образ, че не е толкова замразен, но мисля, че ефектът от обфускацията става ясен, защото броят на класовете и т.н. се увеличава с нарастването на проекта.

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