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
firmware-mod-kit — Automatisch exportiert von code.google.com/p/firmware-mod-kit | Kitploit
Tools/GitHubGitHub/rampagex/firmware-mod-kit
Embedded-System-SicherheitReverse EngineeringHardware-SicherheitFirmware-Analyse
GitHubrampagex/firmware-mod-kit

firmware-mod-kit

Automatisch exportiert von code.google.com/p/firmware-mod-kit

Repository anzeigen
996207vor 6 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Haftungsausschluss

Automatisch exportiert von code.google.com/p/firmware-mod-kit

Firmware-Modifikations-Kit

Dieses Kit ist eine Sammlung von Skripten und Dienstprogrammen zum Extrahieren und Neuerstellen von Linux-basierten Firmware-Images.

root@kitploit:~
Ein Firmware-Image in seine Bestandteile zerlegen
Der Benutzer nimmt die gewünschten Änderungen am Dateisystem der Firmware oder der Weboberfläche (webif) vor
Firmware neu erstellen
Modifizierte Firmware auf das Gerät flashen und es brickieren (ha)

WARNUNG: Sie werden Ihr Gerät durch die Verwendung dieses Kits brickieren (vielleicht nicht, aber es ist besser zu sagen, dass Sie es tun werden). Brickieren bedeutet, dass das Gerät effektiv zu einem funktionslosen 'Ziegelstein' wird. Eine Wiederherstellung ist manchmal ohne Hardware-Modifikationen möglich. Manchmal sind Hardware-Modifikationen erforderlich (z. B. serielle oder JTAG-Header, die auf die Leiterplatte gelötet werden). Manchmal ist es einfach nicht machbar oder die Gesamtwiederherstellungskosten übersteigen den Wert des Geräts.

Verwenden Sie dieses Kit NICHT, wenn Sie nicht bereit sind, dass Ihr Router bricked wird!

EULA: Durch Herunterladen oder Verwenden dieses Kits stimmen Sie zu, die Haftung für die Folgen der Nutzung oder des Missbrauchs des Firmware-Mod-Kits zu übernehmen. Dazu gehört das Brickieren Ihres Geräts. Die Autoren dieses Kits haben Sie gewarnt. Dieses Kit ist nur für Embedded-Systems-Softwareingenieure bestimmt.

Firmware Mod Kit

  • Einführung
  • Voraussetzungen
  • Verwendung des Kits
    • Kit-Ausführbare Dateien
    • Das Firmware-Arbeitsverzeichnis
    • Extrahieren von Firmware
    • Neuerstellen von Firmware
    • Modifizieren von DD-WRT-Webseiten
    • Zurück zu einer Hersteller-Firmware
    • Beispiele
    • Linksys-Firmware
    • Werkzeuge / Dienstprogramme
  • Links

Einführung

Das Firmware Mod Kit ermöglicht die einfache Zerlegung und Neuerstellung von Firmware-Images für verschiedene eingebettete Geräte. Obwohl es sich hauptsächlich an Linux-basierte Router richtet, sollte es mit den meisten Firmware kompatibel sein, die gängige Firmware-Formate und Dateisysteme wie TRX/uImage und SquashFS/CramFS verwendet.

Voraussetzungen

Um das Firmware Mod Kit zu verwenden, benötigen Sie einen Subversion-Client, Standard-Linux-Entwicklungstools (gcc, make, etc.), das Python-Magic-Modul sowie die Entwicklerpakete für zlib und lzma. Wenn Sie eine Linux-Distribution verwenden, die apt-get nutzt, z. B. Ubuntu oder Debian, verwenden Sie:

Für Ubuntu 18.04 und älter:

root@kitploit:~
sudo apt-get install git build-essential zlib1g-dev liblzma-dev python-magic autoconf

Für Ubuntu 20.04 und neuer:

root@kitploit:~
sudo apt-get install git build-essential zlib1g-dev liblzma-dev python3-magic autoconf python-is-python3

Für RedHat:

root@kitploit:~
yum groupinstall "Development Tools"
yum install git zlib1g-dev xz-devel python-magic zlib-devel util-linux

Für Arch Linux:

Es gibt ein AUR-Paket unter https://aur.archlinux.org/packages/firmware-mod-kit/

Für andere Distributionen sollten Sie die entsprechenden Pakete mit dem Paketmanager Ihrer Distribution installieren.

root@kitploit:~
git clone https://github.com/rampageX/firmware-mod-kit.git
cd firmware-mod-kit/src
make

Binwalk 2.1.1

root@kitploit:~
[Zurück im Verzeichnis firmware-mod-kit]
cd src/binwalk-2.1.1
sudo python2 setup.py install

Das Firmware Mod Kit wird nur auf der Linux-Plattform unterstützt. Mit einigen kleinen Änderungen sollte es auf anderen POSIX-Plattformen funktionieren.

Verwendung des Kits

Klonen Sie das Repository des Firmware Mod Kit mit Git.

Kit-Ausführbare Dateien

Das Firmware Mod Kit ist eine Sammlung von Dienstprogrammen und Shell-Skripten. Die Dienstprogramme können direkt verwendet werden, oder die Shell-Skripte können verwendet werden, um gängige Firmware-Operationen (z. B. Extrahieren und Neuerstellen) zu automatisieren und zu kombinieren. Die Kernskripte zur Durchführung von Firmware-Operationen sind unten aufgeführt.

Primäre Skripte:

SkriptBeschreibung
extract-firmware.shSkript zum Extrahieren von Firmware
build-firmware.shSkript zum Neuerstellen von Firmware

Sekundäre Skripte:

ddwrt-gui-extract.shExtrahiert Web-GUI-Dateien aus extrahierter DD-WRT-Firmware.
ddwrt-gui-rebuild.shStellt modifizierte Web-GUI-Dateien in der extrahierten DD-WRT-Firmware wieder her.

Das Firmware-Arbeitsverzeichnis

Das Firmware Mod Kit verwendet ein 'hartcodiertes' Arbeitsverzeichnis mit dem Namen 'fmk'. Das Extraktionsskript extrahiert in diesen Ordner, und das Neuerstellungsskript erstellt aus diesem Ordner neu. Die Verwendung alternativer Arbeitsverzeichnisse wird für einige Operationen unterstützt, jedoch nicht für alle. Wir werden dies in Zukunft erweitern. Wenn Sie mehrere Arbeitsverzeichnisse haben, empfehlen wir Ihnen, diejenigen umzubenennen, mit denen Sie gerade nicht arbeiten.

Extrahieren von Firmware

Die automatisierte Firmware-Extraktion funktioniert in der Regel mit den meisten Firmware-Images, die uImage/TRX-Firmware-Header verwenden und SquashFS- oder CramFS-Dateisysteme nutzen. Derzeit ist extract-firmware.sh die bevorzugte Extraktionsmethode, da es mehr Firmware-Typen unterstützt als das ältere Skript old-extract.sh. old-extract.sh ist jedoch weiterhin enthalten und funktioniert mit vielen Firmware-Formaten.

Die Verwendung für extract-firmware.sh und build-firmware.sh ist einfach:

root@kitploit:~
./extract-firmware.sh firmware.bin

Standardmäßig befindet sich die Ausgabe von extract-firmware.sh im Verzeichnis 'fmk', während old-extract.sh die extrahierten Daten in das angegebene Arbeitsverzeichnis legt.

Neuerstellen von Firmware

Welches Build-Skript verwendet wird, hängt davon ab, welches Extraktionsskript verwendet wurde. Wenn Sie ein Firmware-Image mit extract-firmware.sh extrahiert haben, müssen Sie build-firmware.sh zum Neuerstellen verwenden. Wenn old-extract.sh verwendet wurde, muss old-build.sh zum Neuerstellen des Images aufgerufen werden:

root@kitploit:~
./build-firmware.sh [-nopad] [-min]

Die von build-firmware.sh generierte neue Firmware befindet sich unter 'fmk/new-firmware.bin', während old-build.sh Firmware-Images in verschiedenen Formaten erzeugt und im angegebenen Ausgabeverzeichnis speichert.

Der optionale Schalter -nopad weist build-firmware.sh an, die Firmware NICHT auf die ursprüngliche Größe aufzufüllen.

Der optionale Schalter -min verwendet die maximale SquashFS-Blockgröße von 1 MB. Dies verringert die Größe des Firmware-Images, erhöht jedoch den CPU- und RAM-Ressourcenverbrauch auf dem Zielgerät. Verwenden Sie diesen Schalter nur, wenn es unbedingt erforderlich ist. Dies ist eine sehr große Blockgröße für eingebettete Systeme. Die ursprüngliche SquashFS-Blockgröße der Firmware bleibt beim Neuerstellen erhalten, und die ursprüngliche Blockgröße sollte verwendet werden, es sei denn, Sie sind sich sicher, was Sie tun. Eine zu große Blockgröße mag zwar funktionieren, aber die Laufzeitleistung der Firmware kann unter allen oder bestimmten Lasten leiden.

Modifizieren von DD-WRT-Webseiten

Eine sehr einzigartige Funktion des Firmware Mod Kit ist die Möglichkeit, Dateien aus der DD-WRT-Web-GUI zu extrahieren und neu zu erstellen. Dies wird durch die Skripte ddwrt-gui-extract.sh und ddwrt-gui-restore.sh automatisiert.

Sobald Sie ein DD-WRT-Firmware-Image mit extract-firmware.sh extrahiert haben, können Sie die Webdateien wie folgt extrahieren:

root@kitploit:~
./ddwrt-gui-extract.sh

Dadurch wird ein Verzeichnis mit dem Namen 'www' erstellt und die Webdateien dorthin extrahiert. Sie können die Dateien nach Belieben ändern, können jedoch keine Dateien hinzufügen oder löschen.

Wenn Sie mit der Bearbeitung fertig sind, können Sie die Webdateien wie folgt neu erstellen:

root@kitploit:~
./ddwrt-gui-rebuild.sh

Zurück zu einer Hersteller-Firmware

Manchmal flasht man begeistert eine Drittanbieter-Firmware wie Gargoyle oder DD-WRT, nur um festzustellen, dass ihr Funktionen fehlen, sie nicht so gut funktioniert wie die Hersteller-Firmware oder funktionale Probleme hat. In dieser Situation möchten Sie vielleicht zur Hersteller-Firmware zurückkehren, haben aber keine Möglichkeit dazu!

Hier erfahren Sie, wie das Firmware Mod Kit Ihnen helfen kann, zu einer Hersteller-Firmware zurückzukehren. Der Vorgang ist wie folgt:

  1. Extrahieren Sie die Hersteller-Firmware. Benennen Sie dann das Verzeichnis 'fmk' um.
  2. Extrahieren Sie die Drittanbieter-'Upgrade'-Firmware (z.B. Gargoyle-sysupgrade)
  3. Ersetzen Sie das extrahierte Rootfs und image_parts der Drittanbieter-Firmware durch die der Hersteller-Firmware.
  4. Erstellen Sie das Firmware-Image neu.
  5. Flashen Sie das Hersteller-Firmware-Image (jetzt verpackt, wie es Ihre Drittanbieter-Firmware erwartet).
  6. Wenn alles erfolgreich war, verwenden Sie jetzt wieder die Hersteller-Firmware.

Sobald Sie zur Hersteller-Firmware zurückgekehrt sind, akzeptiert diese wieder Hersteller-Firmware-Images.

Beispiele

Dieses Beispiel zeigt, wie man ein Firmware-Image extrahiert, seinen vorhandenen Telnet-Daemon durch einen selbst erstellten ersetzt und dann ein neues Firmware-Image erstellt:

root@kitploit:~
./extract-firmware.sh firmware.bin
cp new-telnetd fmk/rootfs/usr/sbin/telnetd
./build-firmware.sh

Unten ist ein Beispiel für die Befehle, die ausgeführt werden müssen, um ein DD-WRT-Firmware-Image zu extrahieren, die Web-Indexseite zu ändern und ein neues Firmware-Image zu erstellen:

root@kitploit:~
./extract-firmware.sh firmware.bin
./ddwrt-gui-extract.sh
echo "HELLO WORLD" > www/index.asp
./ddwrt-gui-rebuild.sh
./build-firmware.sh

Linksys-Firmware

Linksys hat benutzerdefinierte Fußzeilen mit Prüfsummenchecks, daher wurde dieses Skript geschrieben, um den Prozess der Berechnung der Prüfsumme des Images und der entsprechenden Änderung der Fußzeile zu automatisieren. Das neue Image wird als modified_checksum.img geschrieben. Führen Sie dies nach der Modifikation und build-firmware.sh aus.

root@kitploit:~
./linksys_footer.sh modified_firmware.img

Werkzeuge / Dienstprogramme

Das Firmware Mod Kit besteht aus einer Sammlung von Werkzeugen, die bei der Arbeit mit Embedded-Firmware-Images nützlich sind. Dazu gehören die unten aufgeführten, es gibt jedoch VIEL MEHR, die hier nicht aufgeführt sind.

Andere Links

Forum

Tool herunterladen
WerkzeugBeschreibung
AsusTRXEine erweiterte Version von ASUSTRX, die sowohl 'normale' TRX-Dateien als auch optional solche mit einem angehängten ASUS-addver-Stil-Header erstellen kann. Es kann auch (mit dem -b-Schalter) Segment-Offsets im TRX erzwingen, für die Kompatibilität mit Marvell-ASUS-Geräten wie dem WL-530g. Dieses Tool ersetzt sowohl das 'normale' trx-Tool als auch addver. Enthaltene aktuelle Versionen: 0.90 beta.
AddPatternDienstprogramm zum Voranstellen eines Linksys-HDR0-Headers an einen TRX.
AddVerASUS-Dienstprogramm zum Anhängen eines Headers mit Versionsinformationen an ein TRX-Image. ASUSTRX enthält diese Funktion. Aktuelle Version: unversioniert.
BinwalkDurchsucht Firmware-Images nach bekannten Dateitypen (Firmware-Header, komprimierte Kernel, Dateisysteme usw.)
CramFSCKPrüf- und Extraktionswerkzeug für CRAMFS-Dateisystem-Images. Enthaltene aktuelle Versionen: 2.4x.
CramFSSwapDienstprogramm zum Tauschen der Endianness eines CramFS-Images
CRCalcDienstprogramm zum Patchen aller uImage- und TRX-Header in einem bestimmten Firmware-Image.
MkSquashFSErstellt ein SquashFS-Dateisystem-Image. Enthaltene aktuelle Versionen: 2.1-r2, 3.0.
MkCramFSErstellt ein CramFS-Dateisystem-Image. Kommt in der nächsten Version. Enthaltene aktuelle Versionen: 2.4x.
MotorolaBinDienstprogramm, das 8-Byte-Header zu TRX-Images für Motorola-Geräte WR850G, WA840G, WE800G voranstellt. Aktuelle Version: unversioniert.
Splitter3Dienstprogramm zum Scannen und Extrahieren von Bestandteilen eines Firmware-Images.
Tpl-toolDienstprogramm zum Manipulieren von TP-Link-Herstellerformat-Images.
UnCramFSAlternatives Tool zum Extrahieren eines CramFS-Dateisystem-Images. Verwenden Sie nach Möglichkeit stattdessen cramfsck, da es zuverlässiger zu sein scheint. Enthaltene aktuelle Versionen: 0.7 (für cramfs v2.x).
UnCramFS-LZMAAlternatives Tool zum Extrahieren von LZMA-komprimierten CramFS-Dateisystem-Images, wie sie von OpenRG verwendet werden.
UnSquashFSExtrahiert ein zlib-komprimiertes SquashFS-Dateisystem-Image. Enthaltene aktuelle Versionen: 1.0 für 3.0-Images und 1.0 für 2.x-Images (eigene Mischung).
UnSquashFS-LZMAExtrahiert ein lzma-komprimiertes SquashFS-Dateisystem-Image. Enthaltene aktuelle Versionen: 1.0 für 3.0-Images und 1.0 für 2.x-Images (eigene Mischung). Hinweis: Nicht alle SquashFS-LZMA-Patches sind miteinander kompatibel. Ich arbeite daran, Unterstützung für alle gängigen SquashFS-LZMA-Varianten hinzuzufügen.
UnTRXTeilt TRX-basierte Firmware in ihre Bestandteile auf. Unterstützt auch vorangestellte addpattern-HDR0-Header. Dies wurde exklusiv für dieses Kit entwickelt. Enthaltene aktuelle Versionen: 0.45.
WebDecompExtrahiert und stellt Web-GUI-Dateien aus DD-WRT-Firmware-Images wieder her, sodass Änderungen an den Webseiten möglich sind.
WRTVxImgToolDienstprogramm zum Generieren von VxWorks-kompatiblen Firmware-Images für die WRT54G(S)-Serie v5.