Reversing Native Libraries
WhiteIntel je pretraživač pokretan dark web-om koji nudi besplatne funkcionalnosti za proveru da li je kompanija ili njeni korisnici kompromitovani od strane kradljivih malvera.
Primarni cilj WhiteIntel-a je borba protiv preuzimanja naloga i napada ransomverom koji proizilaze iz malvera za krađu informacija.
Možete posetiti njihovu veb lokaciju i isprobati njihovu mašinu za besplatno na:
Za dodatne informacije 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 su teže za reverzno inženjerstvo od DEX bajtkoda. Ova sekcija naglašava veštine reverznog inženjeringa prilagođene Androidu, umesto učenja jezika asemblerskog jezika. 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 su u C ili C++, što čini reverzno inženjerstvo izazovnim.
Pronalaze se u formatu
.so
(deljene objekte), slično Linux binarnim datotekama.Kreatori malvera preferiraju nativni kod kako bi analiza bila teža.
Java Native Interface (JNI) & Android NDK:
JNI omogućava da se Java metode implementiraju u nativnom kodu.
NDK je Android-specifičan skup 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 korišćenjem
System.loadLibrary
iliSystem.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 određenom obrascu, omogućavajući automatsko povezivanje.
Statičko povezivanje: Koristi
RegisterNatives
za povezivanje, pružajući fleksibilnost u imenovanju funkcija i strukturi.Alati i tehnike za reverzno inženjerstvo:
Alati poput Ghidra 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 identifikovanja nativnih funkcija.
Resursi:
Učenje ARM asemblerskog jezika:
Predloženo za dublje razumevanje osnovne arhitekture.
Osnove ARM asemblerskog jezika iz Azeria Labs se preporučuju.
JNI & NDK Dokumentacija:
Debugiranje nativnih biblioteka:
WhiteIntel je pretraživač pokretan dark web-om koji nudi besplatne funkcionalnosti za proveru da li je kompanija ili njeni korisnici kompromitovani od strane kradljivih malvera.
Primarni cilj WhiteIntel-a je borba protiv preuzimanja naloga i napada ransomverom koji proizilaze iz malvera za krađu informacija.
Možete posetiti njihovu veb lokaciju i isprobati njihovu mašinu za besplatno na:
Last updated