Обфускація коду є процес модифікації виконуваного файлу таким чином, щоб він більше не був корисним для хакера, але залишався повністю функціональним. Хоча процес може змінювати фактичні інструкції методу або метадані, він не змінює вихідні дані програми.
Обфускація імені: Ця техніка передбачає зміну імен змінних, функцій і методів на безглузді, неописові імена, які важко розпізнати та зрозуміти. Обфускація потоку керування: ця техніка ускладнює потік програми, ускладнюючи її відстеження.
Про це свідчать результати можливе зворотне проектування заплутаного коду, але деякі частини. Обфускація дійсно захищає код, оскільки змінюються всі назви змінних і всі невикористані методи видаляються, а також деякі методи змінюються на нетрадиційні способи програмування.
Пам’ятайте: обфусцований код є настільки добре, наскільки його найслабша ланка. Ми завжди повинні перевіряти його стійкість і намагатися де-заплутувати його. Чим важче це стає, тим сильніше обфускація. Порада: майте на увазі, що обфускований вихідний код важко підтримувати та оновлювати.
Деякі поширені методи обфускації включають наступне:
- Перейменування. Обфускатор змінює методи та імена змінних. …
- Упаковка. …
- Контроль потоку. …
- Перетворення шаблону інструкції. …
- Вставка фіктивного коду. …
- Видалення метаданих або невикористаного коду. …
- Непрозора вставка предиката. …
- Антидебаг.
Недоліки проблем з налагодженням обфускації .NET: Обфускація може ускладнити налагодження програми. Налагодження заплутаного коду є складною справою, оскільки процес обфускації коригує структуру коду та ускладнює його читання та розуміння.