tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Ручні Техніки Де-обфускації
У сфері безпеки програмного забезпечення процес перетворення зашифрованого коду в зрозумілий, відомий як де-обфускація, є критично важливим. Цей посібник розглядає різні стратегії де-обфускації, зосереджуючи увагу на техніках статичного аналізу та розпізнаванні патернів обфускації. Крім того, він пропонує вправу для практичного застосування та рекомендує додаткові ресурси для тих, хто зацікавлений у вивченні більш складних тем.
Стратегії Статичної Де-обфускації
При роботі з обфускованим кодом можна використовувати кілька стратегій залежно від природи обфускації:
- DEX байт-код (Java): Один із ефективних підходів полягає в ідентифікації методів де-обфускації програми, а потім у відтворенні цих методів у Java-файлі. Цей файл виконується для скасування обфускації на цільових елементах.
- Java та Нативний Код: Інший метод полягає в перекладі алгоритму де-обфускації на мову сценаріїв, таку як Python. Ця стратегія підкреслює, що основна мета полягає не в повному розумінні алгоритму, а в його ефективному виконанні.
Ідентифікація Обфускації
Визнання обфускованого коду є першим кроком у процесі де-обфускації. Ключові ознаки включають:
- відсутність або сплутування рядків у Java та Android, що може свідчити про обфускацію рядків.
- наявність бінарних файлів у каталозі ресурсів або викликів до
DexClassLoader
, що натякає на розпакування коду та динамічне завантаження. - Використання нативних бібліотек разом з невизначеними функціями JNI, що вказує на потенційну обфускацію нативних методів.
Динамічний Аналіз у Де-обфускації
Виконуючи код у контрольованому середовищі, динамічний аналіз дозволяє спостерігати, як обфускований код поводиться в реальному часі. Цей метод особливо ефективний для виявлення внутрішніх механізмів складних патернів обфускації, які призначені для приховування справжнього наміру коду.
Застосування Динамічного Аналізу
- Дешифрування в Режимі Виконання: Багато технік обфускації передбачають шифрування рядків або сегментів коду, які дешифруються лише під час виконання. Завдяки динамічному аналізу ці зашифровані елементи можуть бути захоплені в момент дешифрування, розкриваючи їх справжню форму.
- Ідентифікація Технік Обфускації: Спостерігаючи за поведінкою програми, динамічний аналіз може допомогти виявити конкретні техніки обфускації, що використовуються, такі як віртуалізація коду, пакувальники або динамічна генерація коду.
- Виявлення Схованої Функціональності: Обфускований код може містити приховані функціональності, які не є очевидними лише через статичний аналіз. Динамічний аналіз дозволяє спостерігати всі шляхи коду, включаючи ті, що виконуються умовно, щоб виявити такі приховані функціональності.
Посилання та Додаткове Читання
- https://maddiestone.github.io/AndroidAppRE/obfuscation.html
- BlackHat USA 2018: “Розпакування упакованого декомпіллятора: Реверс-інжиніринг бібліотеки Android Anti-Analysis” [відео]
- Ця доповідь охоплює реверс-інжиніринг однієї з найскладніших бібліотек нативного коду для анти-аналізу, які я бачив, що використовуються в Android-додатку. Вона в основному охоплює техніки обфускації в нативному коді.
- REcon 2019: “Шлях до Payload: Android Edition” [відео]
- Ця доповідь обговорює серію технік обфускації, виключно в Java-коді, які використовував Android-ботнет для приховування своєї поведінки.
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.