Reversing Native Libraries

Support HackTricks

Za više informacija pogledajte: https://maddiestone.github.io/AndroidAppRE/reversing_native_libs.html

Android aplikacije mogu koristiti nativne biblioteke, obično napisane u C ili C++, za zadatke koji zahtevaju visoke performanse. Kreatori malvera takođe koriste ove biblioteke, jer ih je teže obrnuti nego DEX bajtkod. Odeljak naglašava veštine obrnute inženjeringa prilagođene Androidu, umesto da uči jezike asemblera. ARM i x86 verzije biblioteka su obezbeđene radi kompatibilnosti.

Ključne tačke:

  • Nativne biblioteke u Android aplikacijama:

  • Koriste se za zadatke koji zahtevaju visoke performanse.

  • Napisane u C ili C++, što otežava obrnuto inženjerstvo.

  • Pronađene u .so (deljeni objekat) formatu, slično Linux binarnim datotekama.

  • Kreatori malvera preferiraju nativni kod kako bi otežali analizu.

  • Java Native Interface (JNI) & Android NDK:

  • JNI omogućava implementaciju Java metoda u nativnom kodu.

  • NDK je set alata specifičnih za Android za pisanje nativnog koda.

  • JNI i NDK povezuju Java (ili Kotlin) kod sa nativnim bibliotekama.

  • Učitavanje i izvršavanje biblioteka:

  • Biblioteke se učitavaju u memoriju koristeći System.loadLibrary ili System.load.

  • JNI_OnLoad se izvršava prilikom učitavanja biblioteke.

  • Java-deklarisane nativne metode povezuju se sa nativnim funkcijama, omogućavajući izvršavanje.

  • Povezivanje Java metoda sa nativnim funkcijama:

  • Dinamičko povezivanje: Imena funkcija u nativnim bibliotekama odgovaraju specifičnom obrascu, omogućavajući automatsko povezivanje.

  • Statčko povezivanje: Koristi RegisterNatives za povezivanje, pružajući fleksibilnost u imenovanju i strukturi funkcija.

  • Alati i tehnike obrnute inženjeringa:

  • Alati poput Ghidra i IDA Pro pomažu u analizi nativnih biblioteka.

  • JNIEnv je ključan za razumevanje JNI funkcija i interakcija.

  • Pružene su vežbe za vežbanje učitavanja biblioteka, povezivanja metoda i identifikacije nativnih funkcija.

Resursi:

Support HackTricks

Last updated