Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
workshop_firmware_reverse_engineering — Workshop zum Reverse Engineering von Firmware | Kitploit
Tools/GitHubGitHub/emproof-com/workshop_firmware_reverse_engineering
Embedded-System-SicherheitStatische AnalyseReverse EngineeringMalware-AnalyseHardware- & IoT-SicherheitBinäranalyseLernen & BildungFirmware-AnalyseLabs & Praxis

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
GitHubemproof-com/workshop_firmware_reverse_engineering

workshop_firmware_reverse_engineering

Workshop zum Reverse Engineering von Firmware

Repository anzeigen
44355vor 10 MonatenVon Kitploit geprüft

Workshop: Reverse Engineering von Firmware

Dieses Repository enthält Folien und praktische Materialien für den Workshop zum Reverse Engineering von Firmware von Emproof, der auf der ScapyCon Automotive 2025 präsentiert wurde. Der Workshop richtet sich an ein technisches Publikum mit geringer Sicherheitserfahrung und vermittelt die Grundlagen anhand praktischer, in sich abgeschlossener Aufgaben. Die Themen umfassen

  • grundlegende Datei-/ELF-Analyse;
  • Software-Cracking und Keygenning;
  • String-Entschlüsselung & Malware-Triage;
  • Entpacken von Embedded-Linux-Firmware;
  • Bare-Metal-Analyse;
  • Krypto-Erkennung;
  • Obfuscation-/Anti-Analysis-Techniken und wie man sie umgeht;

Wenn dich das anspricht, schau dir auch die technische Webinar-Reihe von Emproof mit weiteren Übungen und aufgezeichneten Sitzungen an.

Die Workshop-Inhalte wurden von Tim Blazytko entworfen und organisiert, mit Unterstützung von Simran Kathpalia.

Einrichtung

Um die Umgebung einzurichten, klone das Repository:

root@kitploit:~
git clone https://github.com/emproof-com/workshop_firmware_reverse_engineering
cd workshop_firmware_reverse_engineering

Für mehrere Aufgaben benötigen wir eine AArch64-Linux-Ausführungsumgebung. Wir stellen einen Docker-Container auf Basis von Kali Linux mit vorinstallierten gängigen Tools (z. B. GNU Binutils, Binwalk) bereit. Dies vereinheitlicht die Umgebung unter Linux, Windows und macOS – unabhängig von der Host-CPU-Architektur. Um den Container zu starten und die Shell zu öffnen, führe Folgendes aus:

root@kitploit:~
./docker_run.sh

Hinweis: Der erste Lauf kann eine Weile dauern, um das Image zu erstellen.

Hinweis (Architektur): Der Docker-Compose-Dienst legt platform: "linux/arm64" fest.
Auf x86_64-Hosts (Intel macOS/Windows/Linux) führt Docker Desktop das Image unter Emulation aus, daher können der erste Build und Start langsamer sein – das ist zu erwarten. Auf nativen ARM64-Hosts (Apple Silicon, ARM-Server) läuft es nativ und ist schneller.

Hinweis: Der Docker-Container kann auch ARMv7-Binärdateien (armhf) ausführen. Wir installieren die armhf-Laufzeit (dynamischer Lader + Bibliotheken) im Image und registrieren binfmt-Handler sowohl für aarch64 als auch für arm über das Startskript.

Zusätzlich installiere die folgenden grafischen Werkzeuge auf deinem Host für interaktive Reverse-Engineering-Aufgaben (diese sind nicht im Container enthalten):

  • Ghidra
  • Binary Ninja Free

Beide Werkzeuge sind für Windows, Linux und macOS verfügbar.

Hinweis: Binary Ninja Free unterstützt AArch64 nicht. Verwende für AArch64-Analysen Ghidra (oder einen lizenzierten Binary-Ninja-Build). Daher enthalten mehrere Labs eine ARMv7-Begleit-Binärdatei (*.armv7) speziell für Binary Ninja Free; diese können ebenfalls im selben Container ausgeführt werden.

Aufgabenreihenfolge

Jede Aufgabe ist in sich abgeschlossen in tasks/<name>/ und umfasst:

  • samples/ — Binärdateien (und manchmal Quellcode), die in der Übung verwendet werden
  • task.md — die Aufgabenstellung mit Schritt-für-Schritt-Anleitungen und Hinweisen

Die Aufgaben können unabhängig bearbeitet werden, aber wir bieten eine empfohlene Reihenfolge (unten aufgeführt), die den Schwierigkeitsgrad steigert und nach und nach neue Techniken einführt. Die meisten Samples zielen auf ARMv7 (Thumb/ARM32) oder AArch64; wo relevant, weisen die Aufgabennotizen auf Architektur, benötigte Werkzeuge und etwaige besondere Laufzeitanforderungen hin.

  • tasks/hello_world: Grundlagen der ELF-Datei- und Metadatenanalyse; erste Schritte in Ghidra / Binary Ninja.

  • tasks/license_check: hartcodierte Geheimnisse extrahieren / Funktionen freischalten; grundlegendes Patchen, um Validierungen zu umgehen (Cracking).

  • tasks/game: einfaches Zahlenraten-Spiel; die Logik verstehen und den Test- vs. Vollmodus knacken.

  • tasks/keygenning_1: eine Lizenzvalidierung reverse-engineeren und einen minimalen Keygen schreiben, um gültige Seriennummern zu erzeugen.

  • tasks/keygenning_2: eine etwas anspruchsvollere Keygen-Aufgabe (Salts/Schlüssel, Hex-Kodierung).

  • tasks/string_encryption: Binärdatei mit verschlüsselten Strings (häufig bei Malware); den Entschlüssler identifizieren und Strings statisch wiederherstellen.

  • tasks/mirai: eingebettete Malware mit einer String-Entschlüsselungsroutine; eine größere Codebasis navigieren, interessante Konstrukte identifizieren und mit verschleierten Strings umgehen.

  • tasks/embedded_linux_1: Embedded-Linux-Firmware mit Dateisystem; entpacken, untersuchen und Linux-Login-Informationen knacken (CTF-Stil).

  • tasks/embedded_linux_2: ähnlich, aber eine versteckte Binärdatei finden und analysieren, die dort nicht sein sollte.

  • tasks/car_demo: Bare-Metal-Firmware-Analyse: Architektur, Board, Speicherbelegung, Toolchain-Artefakte identifizieren; WLAN-Zugangsdaten und Protokoll-Endpunkte extrahieren.

Lizenz

Sofern nicht anders angegeben, sind alle Workshop-Materialien in diesem Repository unter der GNU General Public License, Version 2 (GPL-2.0) lizenziert. Den vollständigen Text findest du in LICENSE.

Einige Samples von Drittanbietern bzw. aus externen Quellen sind von der GPL ausgenommen und werden nur zu Analyse-/Bildungszwecken bereitgestellt (keine Weiterverbreitung). Diese sind:

  • tasks/mirai/samples/
  • tasks/embedded_linux_1/samples/
  • tasks/embedded_linux_2/samples/

Hinweis: Wenn ein Unterverzeichnis eine eigene Lizenzdatei oder einen eigenen Lizenzheader enthält, hat diese Lizenz Vorrang für den Inhalt dieses Unterverzeichnisses.

Tool herunterladen
  • tasks/iot_diag: Bare-Metal-Firmware-Dump eines Diagnosewerkzeugs; Speicherlayouts aus dem Datenblatt rekonstruieren und dann das Passwort finden, um den Diagnosemodus freizuschalten.

  • tasks/crypto_detection: AArch64-Binärdatei, die kryptografische Operationen mit einem hartcodierten AES-Schlüssel durchführt; den EVP-Aufruf lokalisieren und Schlüssel/IV zurückverfolgen, um ohne das Programm zu entschlüsseln.

  • tasks/license_check_anti_patching: Anti-Patching durch Code-Checksummen; den CRC-Schutz verstehen und Wege kennenlernen, ihn zu umgehen.

  • tasks/fibonacci_obfuscation: saubere vs. verschleierte Fibonacci-Implementierungen (Switch-Flattening, berechnetes goto, opake Prädikate, arithmetische Verschleierung, kleine VM); Techniken verstehen und normalisieren.