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:
- Ako želite da vidite vašu kompaniju reklamiranu na HackTricks-u ili preuzmete HackTricks u PDF formatu proverite SUBSCRIPTION PLANS!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte The PEASS Family, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili nas pratite na Twitter-u 🐦 @carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
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
iliSystem.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:
-
Učenje ARM asemblerskog jezika:
-
Preporučuje se za dublje razumevanje osnovne arhitekture.
-
Osnove ARM asemblerskog jezika sa Azeria Labs-a se preporučuje.
-
JNI i NDK dokumentacija:
-
Debagovanje nativnih biblioteka:
-
Debagovanje Android nativnih biblioteka pomoću JEB Decompiler-a
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
- Ako želite da vidite vašu kompaniju reklamiranu na HackTricks-u ili preuzmete HackTricks u PDF formatu proverite SUBSCRIPTION PLANS!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte The PEASS Family, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili nas pratite na Twitter-u 🐦 @carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.