Reversing Native Libraries
WhiteIntel è un motore di ricerca alimentato dal dark web che offre funzionalità gratuite per verificare se un'azienda o i suoi clienti sono stati compromessi da malware ruba-informazioni.
Il loro obiettivo principale di WhiteIntel è combattere i takeover di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
Puoi visitare il loro sito web e provare il loro motore gratuitamente su:
Per ulteriori informazioni controlla: https://maddiestone.github.io/AndroidAppRE/reversing_native_libs.html
Le app Android possono utilizzare librerie native, tipicamente scritte in C o C++, per compiti critici in termini di prestazioni. Anche i creatori di malware utilizzano queste librerie, poiché sono più difficili da invertire rispetto al bytecode DEX. La sezione enfatizza le competenze di reverse engineering adattate ad Android, piuttosto che insegnare linguaggi di assembly. Sono fornite versioni ARM e x86 delle librerie per la compatibilità.
Punti chiave:
Librerie native nelle app Android:
Utilizzate per compiti ad alte prestazioni.
Scritte in C o C++, rendendo il reverse engineering impegnativo.
Trovate in formato
.so
(oggetto condiviso), simile ai binari Linux.I creatori di malware preferiscono il codice nativo per rendere l'analisi più difficile.
Java Native Interface (JNI) e Android NDK:
JNI consente l'implementazione di metodi Java in codice nativo.
NDK è un insieme di strumenti specifici per Android per scrivere codice nativo.
JNI e NDK collegano il codice Java (o Kotlin) alle librerie native.
Caricamento ed esecuzione delle librerie:
Le librerie vengono caricate in memoria utilizzando
System.loadLibrary
oSystem.load
.JNI_OnLoad viene eseguito al caricamento della libreria.
I metodi nativi dichiarati in Java si collegano alle funzioni native, abilitando l'esecuzione.
Collegamento dei metodi Java alle funzioni native:
Collegamento dinamico: I nomi delle funzioni nelle librerie native corrispondono a un pattern specifico, consentendo il collegamento automatico.
Collegamento statico: Utilizza
RegisterNatives
per il collegamento, fornendo flessibilità nella denominazione e struttura delle funzioni.Strumenti e tecniche di reverse engineering:
Strumenti come Ghidra e IDA Pro aiutano ad analizzare le librerie native.
JNIEnv
è cruciale per comprendere le funzioni JNI e le interazioni.Sono forniti esercizi per praticare il caricamento delle librerie, il collegamento dei metodi e l'identificazione delle funzioni native.
Risorse:
Apprendimento dell'assembly ARM:
Consigliato per una comprensione più approfondita dell'architettura sottostante.
Nozioni di base dell'assembly ARM di Azeria Labs è consigliato.
Documentazione di JNI e NDK:
Debugging delle librerie native:
WhiteIntel è un motore di ricerca alimentato dal dark web che offre funzionalità gratuite per verificare se un'azienda o i suoi clienti sono stati compromessi da malware ruba-informazioni.
Il loro obiettivo principale di WhiteIntel è combattere i takeover di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
Puoi visitare il loro sito web e provare il loro motore gratuitamente su:
Last updated