C# обфускація коду
| Знаю, знаю.. перше шо ви подумали – “таких статтей\доків є куча в мережі..”..
Причиною написання цієї замітки стала нехватка укр-статей в інтернеті.. Наприклад мені так і не вдалося знайти цікаву статтю, з кольоровими скріншотами і з детальною інструкцією встановлення \ використання обфускатора.. Сам недавно стовкнувся з проблемою захисту коду від реверсу в С#.. І сьогодні я постараюся просвітити вас, мої юні падавани |
![]() |
Для платформи .NET зараз написано багато обфускаторів, але одними з найкращих є:
- DotObfuscator Community Edition

Поставляється разом із Visual Studio.NET. (можна знайти в підменю Visual Studio Tools).офф: http://www.preemptive.com/products/dotfuscator/overview
wiki: http://en.wikipedia.org/wiki/Dotfuscator - Aspose.Obfuscator

Бесплатний обфускатор, основні можливості:- Обфускація .Net EXE-файлів
- Обфускація .Net DLL-файлів
- Обфускація ASP.Net програм
- Skater .NET Obfuscator Freeware Light Edition
-
Версія Light бесплатна, за інші прийдеться заплатити
- Знає багато shareware-захистів та алгоритмів обфускації.
- Обфускований проект неможна перекомпілювати..
- Працює з любими .Net-програмами, зборками і динамічними бібліотеками.
- Шифрує текстові данні
- Працює з любой версією .нет
- Ускладнює декомпіляцію та реверс
- Перейменовує назви класів, методів, змінних, …
- Обєднує зборки в єдиний ехе (длл) файла
офф: http://rustemsoft.com/SkaterLight.htm

Самий простий в устновці і використанні обфускатор =)
- Інтегрується із Microsoft Visual Studio 2005 и 2008
- Змінює імена змінних та класів
- Шифрує текстові строчки
- Міняє ієрархію класів
- Обєднує зборки
- Оптимізує код
- Підтримує зборки Silverlight и пакети XAP
офф: http://www.foss.kharkov.ua/g1/projects/eazfuscator/dotnet/
- Переіменовує класи, методи, поля в нечитаючі символи
- Підтримує атрибути обфускації (System.Reflection.ObfuscationAttribute)
- Шифрує текстові строчки
- Може обєднувати зборки
- Підтримує підписи зборок із ключами .SNK або .PFX
Я докладніше зупинюся на Eazfuscator.NET Obfuscator і покажу як його встановити та використовувати =)
Для початку вам потрібно його скачати:
http://www.foss.kharkov.ua/g1/projects/eazfuscator/dotnet/Downloads/Eazfuscator.NET%202.8%20Setup.msi
Скачали, запускаємо..

Встановлюємо..
.jpg)
Після встановлення дивимося в пуск, там мав появитися елемент з нашим обфускатором:

Запускаємо його.. Перед нами віконце , на яке можна перетягнути проект:

Створимо простий хелоу-ворлд проект..

Теперь повертаємо до віконця обфускатора і два рази клікаємо по зеленому полі..
Вибираємо наш *.csproj проект..

Далі обфускатор поставить свою директиву для запуску, і C# ше замітить і видасть вам повідомлення..

Перезагружаємо весь visual studio =)
Далі вікриваємо свій проект знову, і комплюємо (f6).
Може появитися помилка:

це не страшно.. просто c# не зміг найти обфускатора..
Просто відкрийте свій *.csproj і там змініть шлях до обфускатора на повний.
А тепер настав час порівнянь =)
Ось скрін , як reflector реверснув код ДО обфускації:
.jpg)
І після:
|
![]() |
Дякую за увагу ![]()
Запитання задавайте в коментарях =)


Як завжди на висоті.