Android Reverse Engineering

Detaillierten Analyse von Android-Anwendungen

Die Omnipräsenz von Android geht weit über Smartphones und Tablets hinaus; sie erstreckt sich auf eine breite Palette von Geräten, einschließlich Wearables, Smart TVs, E-Reader und IoT-Geräten. Mit der stetigen Ausbreitung des Android-Ökosystems sowie steigenden Sicherheitsanforderungen wird Reverse Engineering im Toolset eines Sicherheitsanalysten unerlässlich. Diese Fähigkeit legt den Grundstein für wichtige Aufgaben, beispielsweise die Sicherheitsanalyse von Android-Anwendungen und das Verständnis des Verhaltens von Android-Malware.

In diesem Kurs erlernen wir die notwendigen Fähigkeiten zur detaillierten Analyse von Android-Anwendungen. Zunächst befassen wir uns mit den Grundlagen von Android und der Struktur von APK-Dateien. Danach geht es um die Dekompilierung von APK- und DEX-Dateien, damit wir High-Level-Code rekonstruieren können. Anschließend untersuchen wir die Interaktion zwischen Java und nativem Code über das Java Native Interface (JNI). Im letzten Teil des Kurses beschäftigen wir uns mit obfuskiertem Code und Malware. Dabei lernen wir praktische Strategien und Techniken zur Deobfuskation, Analyse und zum Verständnis der dahinterliegenden Mechanismen und Verhaltensweisen.

Trainer und Dozenten

Tim Blazytko ist Reverse Engineer sowie Chief Scientist und Mitgründer von emproof. Seit dem Abschluss seiner Promotion an der Ruhr-Universität Bochum leitet Tim ein Team, welches eingebettete Software gegen Reverse Engineering und Exploitation absichert. Neben seiner Forschung führt Tim Sicherheitsanalysen durch und gibt Trainings als Freiberufler.

Voraussetzungen

  • Grundkenntnisse im Umgang mit der Linux-Kommandozeile, wie sie Sie in unserer Schulung "Linux Grundlagen vermitteln
  • Grundkenntnisse in der Programmiersprache C, wie wir Sie in unserer Schulung "C Programmierung vermitteln
  • Vorwissen über die Entwicklung für Android ist hilfreich, aber nicht notwendig

Inhalt

Android-Grundlagen

  • Architektur
  • Betriebssystem
  • Komponenten
  • Laufzeitumgebung
  • Sicherheitsmodell

Android-Anwendungspaket (APK-Dateien)

  • Android-Anwendungskomponenten
  • APK-Dateistruktur
  • Android-Manifest
  • DEX-Dateien
  • native Bibliotheken

Reverse Engineering

  • Dekompilierung von APK-Dateien
  • Statische Analyse von Java/Kotlin-Anwendungen
  • Analyse von nativen Bibliotheken
  • Analyse der Schnittstelle zwischen Java-/nativem Code

Obfuskierter Code und Malware

  • Code-Obfuskation zur Verhinderung von Reverse Engineering
  • Deobfuskation von Android-Anwendungen
  • Analyse von Malware

Kurszeiten

Wer möchte, reist bis 22 Uhr am Vortag an und nutzt den Abend bereits zum Fachsimpeln am Kamin oder im Park.

An den Kurstagen dann von 9-18 Uhr (mit 2 Kaffee- und 1 Mittagspause) etwa 60% Schulungen und 40% Übungen. Selbstverständlich arbeitet jeder Teilnehmer am von uns gestellten Notebook oft parallel zum Referenten mit.

Anschließend Abendessen und Angebote für Fachsimpeln, Ausflüge uvm. Wir schaffen eine Atmosphäre, in der Fachleute sich ungezwungen austauschen. Wer das nicht will, wird zu nichts gezwungen und findet auch jederzeit Ruhe.