Ανάλυση Εγγενών Βιβλιοθηκών

Reading time: 3 minutes

tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

Για περισσότερες πληροφορίες δείτε: https://maddiestone.github.io/AndroidAppRE/reversing_native_libs.html

Οι εφαρμογές Android μπορούν να χρησιμοποιούν εγγενείς βιβλιοθήκες, συνήθως γραμμένες σε C ή C++, για εργασίες που απαιτούν υψηλή απόδοση. Οι δημιουργοί κακόβουλου λογισμικού χρησιμοποιούν επίσης αυτές τις βιβλιοθήκες, καθώς είναι πιο δύσκολο να αναλυθούν σε αντίθεση με τον κωδικό DEX. Η ενότητα τονίζει τις δεξιότητες αντίστροφης μηχανικής προσαρμοσμένες για το Android, αντί να διδάσκει γλώσσες συναρμολόγησης. Παρέχονται εκδόσεις ARM και x86 των βιβλιοθηκών για συμβατότητα.

Κύρια Σημεία:

  • Εγγενείς Βιβλιοθήκες σε Εφαρμογές Android:
  • Χρησιμοποιούνται για εργασίες που απαιτούν υψηλή απόδοση.
  • Γραμμένες σε C ή C++, καθιστώντας την αντίστροφη μηχανική δύσκολη.
  • Βρίσκονται σε μορφή .so (shared object), παρόμοια με τα εκτελέσιμα Linux.
  • Οι δημιουργοί κακόβουλου λογισμικού προτιμούν τον εγγενή κώδικα για να κάνουν την ανάλυση πιο δύσκολη.
  • Java Native Interface (JNI) & Android NDK:
  • Το JNI επιτρέπει την υλοποίηση μεθόδων Java σε εγγενή κώδικα.
  • Το NDK είναι ένα σύνολο εργαλείων ειδικά για το Android για τη συγγραφή εγγενή κώδικα.
  • Το JNI και το NDK γεφυρώνουν τον κώδικα Java (ή Kotlin) με εγγενείς βιβλιοθήκες.
  • Φόρτωση και Εκτέλεση Βιβλιοθηκών:
  • Οι βιβλιοθήκες φορτώνονται στη μνήμη χρησιμοποιώντας System.loadLibrary ή System.load.
  • Το JNI_OnLoad εκτελείται κατά τη φόρτωση της βιβλιοθήκης.
  • Οι δηλωμένες από την Java εγγενείς μέθοδοι συνδέονται με εγγενείς συναρτήσεις, επιτρέποντας την εκτέλεση.
  • Σύνδεση Μεθόδων Java με Εγγενείς Συναρτήσεις:
  • Δυναμική Σύνδεση: Τα ονόματα συναρτήσεων στις εγγενείς βιβλιοθήκες ταιριάζουν με ένα συγκεκριμένο μοτίβο, επιτρέποντας την αυτόματη σύνδεση.
  • Στατική Σύνδεση: Χρησιμοποιεί το RegisterNatives για σύνδεση, παρέχοντας ευελιξία στην ονοματολογία και τη δομή των συναρτήσεων.
  • Εργαλεία και Τεχνικές Αντίστροφης Μηχανικής:
  • Εργαλεία όπως το Ghidra και το IDA Pro βοηθούν στην ανάλυση εγγενών βιβλιοθηκών.
  • Το JNIEnv είναι κρίσιμο για την κατανόηση των συναρτήσεων και των αλληλεπιδράσεων του JNI.
  • Παρέχονται ασκήσεις για την πρακτική φόρτωσης βιβλιοθηκών, σύνδεσης μεθόδων και αναγνώρισης εγγενών συναρτήσεων.

Πόροι:

tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks