Reversing Native Libraries

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Для отримання додаткової інформації перегляньте: https://maddiestone.github.io/AndroidAppRE/reversing_native_libs.html

Android-додатки можуть використовувати нативні бібліотеки, які зазвичай написані на C або C++, для завдань, що вимагають високої продуктивності. Також зловмисники використовують ці бібліотеки, оскільки вони важче піддаються реверс-інжинірингу, ніж байткод DEX. Розділ підкреслює навички реверс-інжинірингу, специфічні для Android, замість навчання мов асемблера. Для сумісності надаються версії бібліотек ARM та x86.

Ключові моменти:

  • Нативні бібліотеки в Android-додатках:

  • Використовуються для завдань, що вимагають високої продуктивності.

  • Написані на C або C++, що ускладнює реверс-інжиніринг.

  • Знаходяться у форматі .so (спільний об'єкт), схожому на бінарні файли Linux.

  • Зловмисники використовують нативний код, щоб ускладнити аналіз.

  • Інтерфейс Java Native (JNI) та Android NDK:

  • JNI дозволяє реалізувати методи Java на нативному коді.

  • NDK - це специфічний для Android набір інструментів для написання нативного коду.

  • JNI та NDK з'єднують код Java (або Kotlin) з нативними бібліотеками.

  • Завантаження та виконання бібліотек:

  • Бібліотеки завантажуються в пам'ять за допомогою System.loadLibrary або System.load.

  • JNI_OnLoad виконується при завантаженні бібліотеки.

  • Нативні методи, оголошені в Java, посилаються на нативні функції, що дозволяє їх виконання.

  • Посилання методів Java на нативні функції:

  • Динамічне зв'язування: Назви функцій у нативних бібліотеках відповідають певному шаблону, що дозволяє автоматичне зв'язування.

  • Статичне зв'язування: Використовує RegisterNatives для зв'язування, забезпечуючи гнучкість у назвах та структурі функцій.

  • Інструменти та техніки реверс-інжинірингу:

  • Інструменти, такі як Ghidra та IDA Pro, допомагають аналізувати нативні бібліотеки.

  • JNIEnv є важливим для розуміння функцій та взаємодій JNI.

  • Надаються вправи для практики завантаження бібліотек, зв'язування методів та ідентифікації нативних функцій.

Ресурси:

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Last updated