Home > Інше > C# обфускація коду

C# обфускація коду

Знаю, знаю.. перше шо ви подумали – “таких статтей\доків є куча в мережі..”..

Причиною написання цієї замітки стала нехватка укр-статей в інтернеті..

Наприклад мені так і не вдалося знайти цікаву статтю, з кольоровими скріншотами і з детальною інструкцією встановлення \ використання обфускатора..

Сам недавно стовкнувся з проблемою захисту коду від реверсу в С#..
А так, як статей на цю тему по укр не знайшов, прийшлося самим розбиратися =)

І сьогодні я постараюся просвітити вас, мої юні падавани :D

http://dotnetslackers.com/images/articleimages/ObfuscateMemberNamesBefore.jpg

Для платформи .NET зараз написано багато обфускаторів, але одними з найкращих є:

  • DotObfuscator Community Edition
    2010-05-13_18-06_Net Obfuscation.jpg
    Поставляється разом із Visual Studio.NET. (можна знайти в підменю Visual Studio Tools).

    офф: http://www.preemptive.com/products/dotfuscator/overview
    wiki: http://en.wikipedia.org/wiki/Dotfuscator

  • Aspose.Obfuscator
    http://www.aspose.com/Images/aspose-logo.jpg
    Бесплатний обфускатор, основні можливості:

    • Обфускація .Net EXE-файлів
    • Обфускація .Net DLL-файлів
    • Обфускація ASP.Net програм

    офф: http://www.aspose.com/Products/Aspose.Obfuscator/

  • Skater .NET Obfuscator Freeware Light Edition
    http://www.pcdistrict.com/modules/productcatalog/product_images/17776-Skater-NET-Obfuscator.jpg

      Версія Light бесплатна, за інші прийдеться заплатити ;)
    • Знає багато shareware-захистів та алгоритмів обфускації.
    • Обфускований проект неможна перекомпілювати..
    • Працює з любими .Net-програмами, зборками і динамічними бібліотеками.
    • Шифрує текстові данні
    • Працює з любой версією .нет
    • Ускладнює декомпіляцію та реверс
    • Перейменовує назви класів, методів, змінних, …
    • Обєднує зборки в єдиний ехе (длл) файла

    офф: http://rustemsoft.com/SkaterLight.htm

  • Eazfuscator.NET Obfuscator
    http://www.foss.kharkov.ua/g1/projects/eazfuscator/dotnet/Images/Assistant%20DND.png
    Самий простий в устновці і використанні обфускатор =)

    • Інтегрується із Microsoft Visual Studio 2005 и 2008
    • Змінює імена змінних та класів
    • Шифрує текстові строчки
    • Міняє ієрархію класів
    • Обєднує зборки
    • Оптимізує код
    • Підтримує зборки Silverlight и пакети XAP

    офф: http://www.foss.kharkov.ua/g1/projects/eazfuscator/dotnet/

  • NetObf-Protector
    http://netobf.com/HtmlImage.ashx?id=145&image.img

    • Переіменовує класи, методи, поля в нечитаючі символи
    • Підтримує атрибути обфускації (System.Reflection.ObfuscationAttribute)
    • Шифрує текстові строчки
    • Може обєднувати зборки
    • Підтримує підписи зборок із ключами .SNK або .PFX

    офф: http://netobf.com/netobf-protector


Я докладніше зупинюся на Eazfuscator.NET Obfuscator і покажу як його встановити та використовувати =)

Для початку вам потрібно його скачати:
http://www.foss.kharkov.ua/g1/projects/eazfuscator/dotnet/Downloads/Eazfuscator.NET%202.8%20Setup.msi

Скачали, запускаємо..
Eazfuscator.NET Obfuscator

Встановлюємо..
Eazfuscator.NET Obfuscator install

Після встановлення дивимося в пуск, там мав появитися елемент з нашим обфускатором:
money, seo

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

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

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

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

Перезагружаємо весь visual studio =)

Далі вікриваємо свій проект знову, і комплюємо (f6).

Може появитися помилка:
C# obfyscate
це не страшно.. просто c# не зміг найти обфускатора..
Просто відкрийте свій *.csproj і там змініть шлях до обфускатора на повний.

А тепер настав час порівнянь =)
Ось скрін , як reflector реверснув код ДО обфускації:
C# not obfyscated

І після:

C# obfyscated C# obfyscated

Дякую за увагу ;)
Запитання задавайте в коментарях =)

Categories: Інше Tags: , ,
  1. May 13th, 2010 at 20:40 | #1

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

  1. No trackbacks yet.