Omgekeerde Native Biblioteke
Reading time: 3 minutes
tip
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Vir verdere inligting, kyk: https://maddiestone.github.io/AndroidAppRE/reversing_native_libs.html
Android-apps kan native biblioteke gebruik, tipies geskryf in C of C++, vir prestasiekritieke take. Malware-skeppers gebruik ook hierdie biblioteke, aangesien dit moeiliker is om om te keer as DEX bytecode. Die afdeling beklemtoon omgekeerde ingenieursvaardighede wat op Android toegespits is, eerder as om assembler tale te leer. ARM en x86 weergawes van biblioteke word verskaf vir kompatibiliteit.
Sleutelpunte:
- Native Biblioteke in Android Apps:
- Gebruik vir prestasiewe intensive take.
- Geskryf in C of C++, wat omgekeerde ingenieurswerk uitdagend maak.
- Gevind in
.so
(gedeelde objek) formaat, soortgelyk aan Linux binêre. - Malware-skeppers verkies native kode om analise moeiliker te maak.
- Java Native Interface (JNI) & Android NDK:
- JNI laat Java-metodes toe om in native kode geïmplementeer te word.
- NDK is 'n Android-spesifieke stel gereedskap om native kode te skryf.
- JNI en NDK verbind Java (of Kotlin) kode met native biblioteke.
- Biblioteek Laai en Uitvoering:
- Biblioteke word in geheue gelaai met
System.loadLibrary
ofSystem.load
. - JNI_OnLoad word uitgevoer tydens biblioteeklaai.
- Java-verklaarde native metodes skakel na native funksies, wat uitvoering moontlik maak.
- Koppeling van Java Metodes aan Native Funksies:
- Dinamiese Koppeling: Funksienaam in native biblioteke pas by 'n spesifieke patroon, wat outomatiese koppeling moontlik maak.
- Statische Koppeling: Gebruik
RegisterNatives
vir koppeling, wat buigsaamheid in funksienaam en struktuur bied. - Omgekeerde Ingenieursgereedskap en Tegnieke:
- Gereedskap soos Ghidra en IDA Pro help om native biblioteke te analiseer.
JNIEnv
is noodsaaklik om JNI-funksies en interaksies te verstaan.- Oefeninge word verskaf om te oefen met die laai van biblioteke, die koppeling van metodes, en die identifisering van native funksies.
Hulpbronne:
- Leer ARM Assembly:
- Aangerade vir 'n dieper begrip van die onderliggende argitektuur.
- ARM Assembly Basics van Azeria Labs word aanbeveel.
- JNI & NDK Dokumentasie:
- Oracle se JNI Spesifikasie
- Android se JNI Wenke
- Begin met die NDK
- Foutopsporing van Native Biblioteke:
- Foutopsporing van Android Native Biblioteke met JEB Decompiler
tip
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.