5.1 KiB
Omgekeerde Ingenieurswese van Inheemse Biblioteke
Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy wil sien dat jou maatskappy geadverteer word in HackTricks of HackTricks aflaai in PDF-formaat, kyk na die SUBSCRIPTION PLANS!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek The PEASS Family, ons versameling eksklusiewe NFTs
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou hacktruuks deur PR's in te dien by die HackTricks en HackTricks Cloud GitHub-opslagplekke.
Vir verdere inligting, kyk: https://maddiestone.github.io/AndroidAppRE/reversing_native_libs.html
Android-apps kan inheemse biblioteke gebruik, tipies geskryf in C of C++, vir prestasie-kritieke take. Malware-skeppers gebruik ook hierdie biblioteke, omdat dit moeiliker is om te ontleed as DEX-bytekode. Die afdeling beklemtoon omgekeerde ingenieurswese-vaardighede wat toegespits is op Android, eerder as om assambleertaal te leer. ARM- en x86-weergawes van biblioteke word verskaf vir versoenbaarheid.
Sleutelpunte:
-
Inheemse Biblioteke in Android-apps:
-
Gebruik vir prestasie-intensiewe take.
-
Geskryf in C of C++, wat omgekeerde ingenieurswese uitdagend maak.
-
Word gevind in
.so
(gedeelde voorwerp) formaat, soortgelyk aan Linux-binêre lêers. -
Malware-skeppers verkies inheemse kode om analise moeiliker te maak.
-
Java Native Interface (JNI) & Android NDK:
-
JNI maak dit moontlik dat Java-metodes in inheemse kode geïmplementeer kan word.
-
NDK is 'n Android-spesifieke stel gereedskap om inheemse kode te skryf.
-
JNI en NDK koppel Java (of Kotlin) kode met inheemse biblioteke.
-
Biblioteeklaaiing & Uitvoering:
-
Biblioteke word in die geheue gelaai deur gebruik te maak van
System.loadLibrary
ofSystem.load
. -
JNI_OnLoad word uitgevoer wanneer die biblioteek gelaai word.
-
Java-verklaarde inheemse metodes skakel na inheemse funksies, wat uitvoering moontlik maak.
-
Koppeling van Java-metodes aan Inheemse Funksies:
-
Dinamiese Koppeling: Funksienames in inheemse biblioteke stem ooreen met 'n spesifieke patroon, wat outomatiese koppeling moontlik maak.
-
Statiese Koppeling: Gebruik
RegisterNatives
vir koppeling, wat buigsaamheid bied in funksienamering en -struktuur. -
Omgekeerde Ingenieurswese-hulpmiddels en -tegnieke:
-
Hulpmiddels soos Ghidra en IDA Pro help om inheemse biblioteke te analiseer.
-
JNIEnv
is van kritieke belang vir die verstaan van JNI-funksies en interaksies. -
Oefeninge word verskaf om die laai van biblioteke, koppeling van metodes en identifisering van inheemse funksies te oefen.
Hulpbronne:
-
Leer ARM-assambleertaal:
-
Aanbeveel vir 'n dieper begrip van die onderliggende argitektuur.
-
ARM Assembly Basics van Azeria Labs word aanbeveel.
-
JNI & NDK-dokumentasie:
-
Debugeer Inheemse Biblioteke:
Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy wil sien dat jou maatskappy geadverteer word in HackTricks of HackTricks aflaai in PDF-formaat, kyk na die SUBSCRIPTION PLANS!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek The PEASS Family, ons versameling eksklusiewe NFTs
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou hacktruuks deur PR's in te dien by die HackTricks en HackTricks Cloud GitHub-opslagplekke.