Auteur Sujet: Besoin d'aide pour modifier un firmware  (Lu 936 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne rafie

  • Administrateur
  • *
  • Messages: 123
    • Voir le profil
Besoin d'aide pour modifier un firmware
« le: 08 mai, 2021 à 21:07:37 »
Bonsoir,
j'ai un souci pour le repack d'un firmware avec la commande dd

À partir du fichier firmware.bin qui contient le le bootoader, le header ,des fichiers compressés en Zlib et 2 image system (image montée au boot et image backup), j'ai extrait avec dd la première image (compressée en cramfs big endian), je l'ai décompressée, j'ai fait la modification que je voulais sur un fichier (sys.cfg) et j'ai recompressé  l'image comme elle l'était avant l'extraction. Maintenant, je ne sais pas comment faire pour la remettre dans le fichier firmware.bin, pour remplacer l'ancienne.
Je ne suis pas très calé en commandes linux, j'apprends sur le tas, au fur et à mesure.
Si ça peut aider pour l'extraction, j'ai utilisé les outils de "Firmware mod Kit" (https://github.com/rampageX/firmware-mod-kit/wiki), mais le script de repack ne marche pas.
à l'extraction, j'ai obtenu un fichier header.bin (avec tout les fichiers sauf le fichier rootfs.img) et le fichier rootfs.img sur lequel j'ai travaillé pour pouvoir le remettre.
Pour y voir plus clair je post ici les sorties binwalk des fichiers que j'ai utilisé.
Pour le fichier firmware.bin:

boubou@MacBook-Pro transfer % binwalk firmware.bin

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
1028          0x404           Copyright string: "Copyright 2008, Cambridge Industry Group(CIG), All Rights Reserved."
1933          0x78D           Unix path: /home/taojipeng/prj/bootload_rtl_9601b_nor
106944        0x1A1C0         uImage header, header size: 64 bytes, header CRC: 0x56E2162D, created: 2016-01-15 09:00:54, image size: 82086 bytes, Data Address: 0x80F00000, Entry Point: 0x80F00000, data CRC: 0xE1D0FA23, OS: Firmware, CPU: MIPS, image type: Firmware Image, compression type: lzma, image name: "U-Boot 2011.12.NA-svn94986 for r"
107008        0x1A200         LZMA compressed data, properties: 0x5D, dictionary size: 16777216 bytes, uncompressed size: 217360 bytes
524288        0x80000         JFFS2 filesystem, big endian
655440        0xA0050         Zlib compressed data, compressed
656112        0xA02F0         Zlib compressed data, compressed
657368        0xA07D8         Zlib compressed data, compressed
658820        0xA0D84         Zlib compressed data, compressed
660008        0xA1228         Zlib compressed data, compressed
660904        0xA15A8         Zlib compressed data, compressed
662260        0xA1AF4         Zlib compressed data, compressed
663516        0xA1FDC         Zlib compressed data, compressed
664968        0xA2588         Zlib compressed data, compressed
666156        0xA2A2C         Zlib compressed data, compressed
667052        0xA2DAC         Zlib compressed data, compressed
668408        0xA32F8         Zlib compressed data, compressed
669664        0xA37E0         Zlib compressed data, compressed
671116        0xA3D8C         Zlib compressed data, compressed
672304        0xA4230         Zlib compressed data, compressed
673200        0xA45B0         Zlib compressed data, compressed
674556        0xA4AFC         Zlib compressed data, compressed
675812        0xA4FE4         Zlib compressed data, compressed
677264        0xA5590         Zlib compressed data, compressed
678452        0xA5A34         Zlib compressed data, compressed
679352        0xA5DB8         Zlib compressed data, compressed
680708        0xA6304         Zlib compressed data, compressed
681964        0xA67EC         Zlib compressed data, compressed
683416        0xA6D98         Zlib compressed data, compressed
684604        0xA723C         Zlib compressed data, compressed
685504        0xA75C0         Zlib compressed data, compressed
686860        0xA7B0C         Zlib compressed data, compressed
688116        0xA7FF4         Zlib compressed data, compressed
689568        0xA85A0         Zlib compressed data, compressed
690756        0xA8A44         Zlib compressed data, compressed
691656        0xA8DC8         Zlib compressed data, compressed
693012        0xA9314         Zlib compressed data, compressed
694268        0xA97FC         Zlib compressed data, compressed
695720        0xA9DA8         Zlib compressed data, compressed
696908        0xAA24C         Zlib compressed data, compressed
697804        0xAA5CC         Zlib compressed data, compressed
699160        0xAAB18         Zlib compressed data, compressed
700416        0xAB000         Zlib compressed data, compressed
701868        0xAB5AC         Zlib compressed data, compressed
703056        0xABA50         Zlib compressed data, compressed
703952        0xABDD0         Zlib compressed data, compressed
705308        0xAC31C         Zlib compressed data, compressed
706564        0xAC804         Zlib compressed data, compressed
708016        0xACDB0         Zlib compressed data, compressed
709204        0xAD254         Zlib compressed data, compressed
710100        0xAD5D4         Zlib compressed data, compressed
711456        0xADB20         Zlib compressed data, compressed
712712        0xAE008         Zlib compressed data, compressed
714164        0xAE5B4         Zlib compressed data, compressed
715352        0xAEA58         Zlib compressed data, compressed
716112        0xAED50         JFFS2 filesystem, big endian
.....
.....[b]plein de lignes Zlib[/b]
2059548       0x1F6D1C        Zlib compressed data, compressed
2060312       0x1F7018        JFFS2 filesystem, big endian
2097152       0x200000        CramFS filesystem, big endian, size 6500352, version 2, sorted_dirs, CRC 0xEF794412, edition 0, 3942 blocks, 717 files
9437184       0x900000        CramFS filesystem, big endian, size 6389760, version 2, sorted_dirs, CRC 0x2E192AFD, edition 0, 3869 blocks, 715 files

à l'extraction le binwalk du fichier header.bin donne la même chose sans la dernière ligne (9437184       0x900000) que l'on retrouve dans le fichier extrait rootfs.img à l'identique.

Alors je souhaiterai savoir comment faire pour remettre ce fichier frootfs.img (manipulé), soit dans le header.bin qui sera le nouveau firmware, soit dans le fichier firmware.bin, et remplacer l'original.
Merci pour votre aide et Bon Weekend.