hacktricks/mobile-pentesting/android-app-pentesting/reversing-native-libraries.md
2024-02-10 13:11:20 +00:00

5.1 KiB

Revertovanje nativnih biblioteka

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Za dalje informacije pogledajte: https://maddiestone.github.io/AndroidAppRE/reversing_native_libs.html

Android aplikacije mogu koristiti nativne biblioteke, obično napisane u C ili C++ jeziku, za zadatke koji zahtevaju visoku performansu. Kreatori malvera takođe koriste ove biblioteke, jer je teže reverterati ih nego DEX bajtkod. Ova sekcija naglašava veštine reverteranja prilagođene Androidu, umesto učenja jezika asemblerskog programiranja. Verzije biblioteka za ARM i x86 su obezbeđene radi kompatibilnosti.

Ključne tačke:

  • Nativne biblioteke u Android aplikacijama:

  • Koriste se za zadatke koji zahtevaju visoku performansu.

  • Napisane su u C ili C++ jeziku, što otežava reverteranje.

  • Pronalaze se u formatu .so (shared object), sličnom Linux binarnim fajlovima.

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

  • Java Native Interface (JNI) i Android NDK:

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

  • NDK je Android-specifičan set alata 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 pomoću System.loadLibrary ili System.load funkcija.

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

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

  • Povezivanje Java metoda sa nativnim funkcijama:

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

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

  • Alati i tehnike za reverteranje:

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

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

  • Vežbe su obezbeđene radi vežbanja učitavanja biblioteka, povezivanja metoda i identifikacije nativnih funkcija.

Resursi:

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u: