Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
firmware-mod-kit — Exporté automatiquement depuis code.google.com/p/firmware-mod-kit | Kitploit
Outils/GitHubGitHub/rampagex/firmware-mod-kit
Sécurité des Systèmes EmbarquésRétro-ingénierieSécurité MatérielleAnalyse de Micrologiciel
GitHubrampagex/firmware-mod-kit

firmware-mod-kit

Exporté automatiquement depuis code.google.com/p/firmware-mod-kit

Voir le dépôt
996207il y a 6 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Avertissement

Exporté automatiquement depuis code.google.com/p/firmware-mod-kit

Kit de modification de firmware

Ce kit est un ensemble de scripts et d'utilitaires pour extraire et reconstruire des images de firmware basées sur Linux.

root@kitploit:~
Extraire une image de firmware en ses composants
L'utilisateur effectue les modifications souhaitées sur le système de fichiers du firmware ou l'interface Web (webif)
Reconstruire le firmware
Flasher le firmware modifié sur l'appareil et le bricker (ha) 

ATTENTION : Vous allez bricker votre appareil en utilisant ce kit (peut-être pas, mais mieux vaut dire que vous le ferez). Bricker signifie le transformer en une 'brique' non fonctionnelle. La récupération est parfois possible sans modifications matérielles. Parfois, elle nécessite des modifications matérielles (par exemple, des connecteurs série ou JTAG soudés sur le circuit imprimé). Parfois, elle n'est tout simplement pas réalisable, ou coûterait plus cher en récupération que la valeur de l'unité.

N'utilisez PAS ce kit si vous n'êtes pas prêt à voir votre routeur brické !

CLUF : En téléchargeant ou en utilisant ce kit, vous acceptez d'assumer la responsabilité des conséquences de l'utilisation ou de la mauvaise utilisation du Firmware Mod Kit. Celles-ci incluent le brickage de votre appareil. Les auteurs de ce kit vous ont dûment averti. Ce kit est destiné uniquement aux ingénieurs logiciels de systèmes embarqués.

Kit de modification de firmware

  • Introduction
  • Prérequis
  • Utilisation du kit
    • Exécutables du kit
    • Répertoire de travail du firmware
    • Extraction du firmware
    • Reconstruction du firmware
    • Modification des pages Web DD-WRT
    • Revenir à un firmware constructeur
    • Exemples
    • Firmware Linksys
    • Outils / Utilitaires
  • Liens

Introduction

Le Firmware Mod Kit permet une déconstruction et reconstruction faciles des images de firmware pour divers appareils embarqués. Bien qu'il cible principalement les routeurs basés sur Linux, il devrait être compatible avec la plupart des firmwares utilisant des formats de firmware et des systèmes de fichiers courants tels que TRX/uImage et SquashFS/CramFS.

Prérequis

Pour utiliser le Firmware Mod Kit, vous devez disposer d'un client subversion, des outils de développement Linux standard (gcc, make, etc.), du module python-magic, ainsi que des paquets de développement zlib et lzma. Si vous utilisez une distribution Linux qui utilise apt-get, par exemple Ubuntu ou Debian, utilisez :

Pour Ubuntu 18.04 et plus ancien :

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

Pour Ubuntu 20.04 et plus récent :

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

Pour RedHat :

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

Pour Arch Linux :

Il existe un paquet AUR pour https://aur.archlinux.org/packages/firmware-mod-kit/

Pour les autres distributions, vous devez installer les paquets équivalents à l'aide du gestionnaire de paquets de votre distribution.

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

Binwalk 2.1.1

root@kitploit:~
[De retour dans le répertoire firmware-mod-kit]
cd src/binwalk-2.1.1
sudo python2 setup.py install

Le Firmware Mod Kit est uniquement supporté sur la plateforme Linux. Avec quelques petites modifications, il devrait fonctionner sur d'autres plateformes POSIX.

Utilisation du Kit

Clonez le dépôt du Firmware Modification Kit avec Git.

Exécutables du Kit

Le Firmware Mod Kit est un ensemble d'utilitaires et de scripts shell. Les utilitaires peuvent être utilisés directement, ou les scripts shell peuvent être utilisés pour automatiser et combiner des opérations courantes sur les firmwares (par exemple, extraction et reconstruction). Les scripts de base pour faciliter les opérations sur les firmwares sont listés ci-dessous.

Scripts principaux :

ScriptDescription
extract-firmware.shScript d'extraction du firmware
build-firmware.shScript de reconstruction du firmware

Scripts secondaires :

ddwrt-gui-extract.shExtrait les fichiers de l'interface Web GUI du firmware DD-WRT extrait.
ddwrt-gui-rebuild.shRestaure les fichiers modifiés de l'interface Web GUI dans le firmware DD-WRT extrait.

Répertoire de travail du firmware

Le Firmware Mod Kit utilise un répertoire de travail 'codé en dur' nommé 'fmk'. Le script d'extraction extrait dans ce dossier, et le script de reconstruction reconstruit à partir de ce dossier. La tolérance de répertoires de travail alternatifs est prise en charge pour certaines opérations, mais pas toutes. Nous étendrons cela à l'avenir. Pour l'instant, si vous avez plusieurs répertoires de travail, nous vous suggérons de renommer ceux sur lesquels vous n'opérez pas actuellement.

Extraction du firmware

L'extraction automatisée du firmware fonctionne généralement avec la plupart des images de firmware qui utilisent des en-têtes uImage/TRX et des systèmes de fichiers SquashFS ou CramFS. Actuellement, extract-firmware.sh est la méthode d'extraction préférée car elle prend en charge plus de types de firmware que l'ancien script old-extract.sh. Cependant, old-extract.sh est toujours inclus et fonctionne avec de nombreux formats de firmware.

L'utilisation des deux scripts extract-firmware.sh et build-firmware.sh est simple :

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

Par défaut, la sortie de extract-firmware.sh se trouvera dans le répertoire 'fmk', tandis que old-extract.sh placera les données extraites dans le répertoire de travail spécifié.

Reconstruction du firmware

Le script de reconstruction à utiliser dépend du script d'extraction utilisé. Si vous avez extrait une image de firmware avec extract-firmware.sh, vous devez utiliser build-firmware.sh pour la reconstruire. De même, si old-extract.sh a été utilisé, alors old-build.sh doit être invoqué lors de la reconstruction d'une image :

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

Le nouveau firmware généré par build-firmware.sh se trouvera dans 'fmk/new-firmware.bin', tandis que old-build.sh générera des images de firmware dans plusieurs formats différents et les sauvegardera dans le répertoire de sortie spécifié.

Le paramètre optionnel -nopad indiquera à build-firmware.sh de NE PAS remplir le firmware jusqu'à sa taille d'origine.

Le paramètre optionnel -min utilisera la taille de bloc squashfs maximale de 1 Mo. Cela réduira la taille de l'image du firmware au prix de ressources CPU et RAM supplémentaires utilisées sur l'appareil cible. N'utilisez ce paramètre que si vous y êtes obligé. Il s'agit d'une taille de bloc très grande pour les systèmes embarqués. La taille de bloc squashfs d'origine du firmware est conservée lors de la reconstruction, et la taille de bloc d'origine doit être celle utilisée, sauf si vous êtes sûr de ce que vous faites. Une taille de bloc trop grande peut sembler fonctionner correctement, mais les performances du firmware en cours d'exécution peuvent souffrir dans toutes ou certaines charges.

Modification des pages Web DD-WRT

Une fonctionnalité très unique du Firmware Mod Kit est sa capacité à extraire et reconstruire les fichiers de l'interface Web GUI de DD-WRT. Cela est automatisé par les scripts ddwrt-gui-extract.sh et ddwrt-gui-restore.sh.

Une fois que vous avez extrait une image de firmware DD-WRT à l'aide de extract-firmware.sh, vous pouvez extraire les fichiers Web en exécutant :

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

Cela créera un répertoire nommé 'www' et y extraira les fichiers Web. Vous pouvez modifier les fichiers comme vous le souhaitez, mais vous ne pouvez pas ajouter ou supprimer des fichiers.

Lorsque vous avez terminé l'édition, vous pouvez reconstruire les fichiers Web en exécutant :

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

Revenir à un firmware constructeur

Parfois, vous flashez avec enthousiasme un firmware tiers comme Gargoyle ou DD-WRT pour découvrir qu'il manque de fonctionnalités dont vous avez besoin, qu'il n'est pas aussi performant que le firmware constructeur, ou qu'il présente des problèmes fonctionnels. Dans cette situation, vous voudrez peut-être revenir au firmware constructeur, mais n'avez aucun moyen de le faire !

Voici comment le Firmware Mod Kit peut vous aider à revenir à un firmware constructeur. Le processus est le suivant :

  1. Extrayez le firmware constructeur. Renommez ensuite le répertoire 'fmk'.
  2. Extrayez le firmware 'upgrade' tiers (par exemple, Gargoyle-sysupgrade)
  3. Remplacez le rootfs et image_parts du firmware tiers extrait par ceux du firmware constructeur.
  4. Reconstruisez l'image du firmware
  5. Flashez l'image du firmware constructeur (maintenant emballée comme votre firmware tiers l'attend).
  6. Si tout a réussi, vous utilisez à nouveau le firmware constructeur.

Une fois de retour au firmware constructeur, celui-ci accepte à nouveau les images de firmware constructeur.

Exemples

Cet exemple montre comment extraire une image de firmware, remplacer son démon telnet existant par un construit sur mesure, puis construire une nouvelle image de firmware :

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

Voici un exemple des commandes à exécuter pour extraire une image de firmware DD-WRT, modifier la page d'index Web et construire une nouvelle image de firmware :

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

Firmware Linksys

Linksys a des pieds de page personnalisés avec des vérifications de somme de contrôle, d'où l'écriture de ce script pour tenter d'automatiser le processus de calcul de la somme de contrôle de l'image et de modifier le pied de page en conséquence. La nouvelle image sera écrite dans modified_checksum.img. Exécutez ceci après avoir modifié et build-firmware.sh.

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

Outils / Utilitaires

Le Firmware Mod Kit se compose d'un ensemble d'outils utiles pour travailler avec des images de firmware embarqué. Ceux-ci incluent ceux listés ci-dessous, mais il y en a BEAUCOUP D'AUTRES qui ne sont pas listés ici.

Autres liens

Forum

Télécharger l’outil
OutilDescription
AsusTRXUne version étendue d'ASUSTRX qui peut construire à la fois des fichiers TRX 'normaux' et, optionnellement, ceux avec un en-tête de style ASUS addver ajouté. Il peut aussi, de manière unique, forcer des décalages de segments dans le TRX (avec l'option -b) pour la compatibilité avec les appareils Marvell ASUS comme le WL-530g. Cet outil remplace à la fois l'outil trx 'normal' et addver. Les versions actuelles incluses sont : 0.90 bêta.
AddPatternUtilitaire pour préfixer un en-tête HDR0 de style Linksys à un TRX.
AddVerUtilitaire ASUS pour ajouter un en-tête contenant des informations de version à une image TRX. ASUSTRX inclut cette capacité. Version actuelle : non versionnée.
BinwalkScanne les images de firmware pour des types de fichiers connus (en-têtes de firmware, noyaux compressés, systèmes de fichiers, etc.)
CramFSCKVérificateur et extracteur d'images de système de fichiers CRAMFS. Versions actuelles incluses : 2.4x.
CramFSSwapUtilitaire pour échanger l'endianness d'une image CramFS
CRCalcUtilitaire pour patcher tous les en-têtes uImage et TRX à l'intérieur d'une image de firmware donnée.
MkSquashFSConstruit une image de système de fichiers squashfs. Versions actuelles incluses : 2.1-r2, 3.0.
MkCramFSConstruit une image de système de fichiers cramfs. À venir dans la prochaine version. Versions actuelles incluses : 2.4x.
MotorolaBinUtilitaire qui ajoute des en-têtes de 8 octets aux images TRX pour les appareils Motorola WR850G, WA840G, WE800G. Version actuelle : non versionnée.
Splitter3Utilitaire pour scanner et extraire les parties composantes d'une image de firmware.
Tpl-toolUtilitaire pour manipuler les images au format constructeur TP-Link.
UnCramFSOutil alternatif pour extraire une image de système de fichiers cramfs. Utilisez cramfsck à la place autant que possible car il semble plus fiable. Versions actuelles incluses : 0.7 (pour cramfs v2.x).
UnCramFS-LZMAOutil alternatif pour extraire des images de système de fichiers cramfs compressées en LZMA, comme celles utilisées par OpenRG.
UnSquashFSExtrait une image de système de fichiers squashfs zlib. Versions actuelles incluses : 1.0 pour les images 3.0 et 1.0 pour les images 2.x (mon propre mélange).
UnSquashFS-LZMAExtrait une image de système de fichiers squashfs lzma. Versions actuelles incluses : 1.0 pour les images 3.0 et 1.0 pour les images 2.x (mon propre mélange). Note : Tous les patchs squashfs-lzma ne sont pas compatibles entre eux. Je travaille à ajouter le support pour toutes les variations courantes de squashfs-lzma.
UnTRXSépare les firmwares de style TRX en leurs parties composantes. Supporte également les en-têtes de style addpattern HDR0 préfixés. Développé exclusivement pour ce kit. Versions actuelles incluses : 0.45.
WebDecompExtrait et restaure les fichiers de l'interface Web GUI des images de firmware DD-WRT, permettant des modifications des pages Web.
WRTVxImgToolUtilitaire pour générer des images de firmware compatibles VxWorks pour la série WRT54G(S) v5.