Déballage du firmware


0

J'ai un firmware de vidage ROM qui doit être inversé (comme une tâche). Sortie Binwalk:

 
DECIMAL  HEXADECIMAL  DESCRIPTION 
-------------------------------------------------------------------------------- 
88   0x58   uImage header, header size: 64 bytes, header CRC: 0x535A17E8, created: 2015-05-13 06:08:01, image size: 1168920 bytes, Data Address: 0x80002000, Entry Point: 0x80006230, data CRC: 0x54A2AE00, OS: Linux, CPU: MIPS, image type: OS Kernel Image, compression type: lzma, image name: "Moxa-IW awk series" 
152   0x98   LZMA compressed data, properties: 0x5D, dictionary size: 16777216 bytes, uncompressed size: 3392000 bytes 
1169108  0x11D6D4  Squashfs filesystem, little endian, version 4.0, compression:lzma, size: 5833114 bytes, 806 inodes, blocksize: 131072 bytes, created: 2015-05-13 06:07:57 
7005944  0x6AE6F8  Squashfs filesystem, little endian, version 4.0, compression:lzma, size: 2733378 bytes, 330 inodes, blocksize: 131072 bytes, created: 2015-05-13 06:07:58 

Après extraction de données et décomprimer LZMA, j'ai fichier binaire "98", sortie binwalk pour elle:

 
DECIMAL  HEXADECIMAL  DESCRIPTION 
-------------------------------------------------------------------------------- 
1866012  0x1C791C  Certificate in DER format (x509 v3), header length: 4, sequence length: 4 
2169826  0x211BE2  mcrypt 2.5 encrypted data, algorithm: " !0B", keysize: 12290 bytes, mode: "B", 
2605176  0x27C078  Linux kernel version "2.6.31--LSDK-WLAN-10.2.85() #1 PREEMPT Wed May 13 14:00:35 CST 2015 " 
2613200  0x27DFD0  gzip compressed data, maximum compression, from Unix, last modified: 2015-05-13 06:00:00 
2693056  0x2917C0  CRC32 polynomial table, little endian 
2724896  0x299420  CRC32 polynomial table, big endian 
3024579  0x2E26C3  Neighborly text, "neighbor %.2x%.2x.%.2x:%.2x:%.2x:%.2x:%.2x:%.2x lost on port %d(%s)(%s)" 
3391488  0x33C000  ASCII cpio archive (SVR4 with no CRC), file name: "/dev", file name length: "0x00000005", file size: "0x00000000" 
3391604  0x33C074  ASCII cpio archive (SVR4 with no CRC), file name: "/dev/console", file name length: "0x0000000D", file size: "0x00000000" 
3391728  0x33C0F0  ASCII cpio archive (SVR4 with no CRC), file name: "/root", file name length: "0x00000006", file size: "0x00000000" 
3391844  0x33C164  ASCII cpio archive (SVR4 with no CRC), file name: "TRAILER!!!", file name length: "0x0000000B", file size: "0x00000000" 

Avant décalage 1.866.012 il y a des données non reconnues. Quand je décompresse ce binaire, je reçois le fichier de configuration du noyau, l'archive cpio et un certain 1C791C.crt binaire, si je comprends bien, qui contient des fichiers de noyau. Comment puis-je extraire correctement les fichiers du bootloader et du noyau Linux? Voir:

  0

n'êtes-vous pas censé faire cette "tâche" vous-même? 19 nov.. 172017-11-19 19:50:14

4

Si vous extrayez ce fichier de la bonne façon, vous obtiendrez système de fichiers racine linux comme il est (2 types dans ce cas.) root FS 1

root FS 2 Je ne vois aucun type de bootloader, le vidage semble être seulement la partie racine fs et le noyau.

Si vous ouvrez le fichier « 98.bin » à nouveau avec 7zip, il ouvrira à nouveau, c'est parce que de ces données à la fin du fichier: entropy 98.bin Le fichier .cer que vous obtenez de binwalk n'est pas vrai fichier de certificat, est juste une coïncidence de l'en-tête hexadécimal 0x3082, qui est utilisé pour les certificats, mais dans ce cas est juste du code pur et n'a pas la structure de certificat.