|
|
|
|
Strumenti |
13-02-2018, 09:22 | #1 |
Senior Member
Iscritto dal: Nov 2003
Città: Milano
Messaggi: 30584
|
[Thread Ufficiale] ambitImageEditor-Tool compressione/decompressione firmware Netgear
- Scopo del thread
Questo thread si occupa esclusivamente del tool ambitImageEditor. - Che cos'è ambitImageEditor ambitImageEditor è uno strumento di decompressione/compressione dei firmware Netgear creato da bignerd95 (Thanks!!!) ambitImageEditor by bignerd95 (Github) Guide all'uso di ambitImageEditor - Requisiti sistema operativo Per usare questo tool è necessario avere - un PC con installato un sistema operativo Unix (installato standalone o virtualizzato cone programmi tipo VMWare) - Emulatore Linux tipo Cygwin. - Uso del tool (Linux) - Attività prepratorie Queste attività vanno eseguite solo la prima volta per installare i moduli e le librerie necessarie all'uso del tool. Eseguire i comandi in neretto con utente con diritti di amministratore. sudo apt-get install python3-pip - installazione modulo python3-pip sudo -H pip3 install --upgrade pip - aggiornamento modulo pip3 sudo pip3 install -U crcmod - creazione libreria crcmod sudo pip3 install -U construct - creazione libreria construct ambitImageEditor si appoggia per la decompressione/ricomrpessione del firmware al programma binwalk. binwalk Consultare la guida di binwalk per le eventuali moduli da installare prima della compilazione di binwalk. Scaricare l'archivioe compilarlo con i seguenti comandi (in neretto) git clone https://github.com/ReFirmLabs/binwalk cd binwalk && sudo python3 setup.py install verrà creato il programma binwalk. Per testare binwalk digitare il comando binwalk e verrà visualizzato la guida con le opzioni del comando. - Modulo jefferson Per estrarre i file JFFS2 serve il modulo jefferson. Per installarlo e compilarlo dare i seguenti comandi in neretto: git clone https://github.com/sviehb/jefferson modificare il file src/scripts/jefferson cambiando nella prima riga #! /usr/bin/python2 in #! /usr/bin/python3 installare il modulo jefferson con i comandi cd jefferson && sudo python setup.py install) - Uso del tool ambitImageEditor Scaricare il tool aggiornato da git clone https://github.com/BigNerd95/ambitImageEditor Andare nella cartella tools, copiare nella cartella il file .chk del firmware e lanciare il comando ./auto.sh nomefilefirmware.chk dove nomefilefirmware.chk è il nome del file del firmware verrà scompattao l'archivo e il batch rimarrà in attesa che vengano fatte le modifiche al file decompilato,. Una volta fatte le modifiche al firmware decompilato, premere un tasto e il batch ricomprimerà e firmerà il firmware. - Utilizzo del tool (con Cygwin) - Attività prepratorie Queste attività vanno eseguite solo la prima volta per installare i moduli e le librerie necessarie all'uso del tool. Dal programma di configurazione di Cygwin installare il modulo. python3-pip Verificare qual'è la versione di python3 che viene installata (es. 3.6.xxx) Verranno selezionati anche una serie di altri moduli. Verificare che venga selezionata anche il modulo python3-setuptools. Installare tutti i moduli richiesti. Completare l'installazione. Lanciare il terminale Cygwin. dare i comandi easy_install-3.6 pip - per creare il comando pip3 - valido se la versione di python3 è la 3.6 pip3 install --upgrade pip - aggiornamento modulo pip3 pip3 install -U crcmod - creaaizone libreria crcmod pip3 install -U construct - creazione libreria construct ambitImageEditor si appoggia per la decompressione/ricomrpessione del firmware al programma binwalk. I sotrgenti di binwalk sono scaricabili in questa pagina di GitHub ambitImageEditor by bignerd95 (Github) Consultare la guida di binwalk per le eventuali moduli da installare priam della compialzione di binwalk. Decomprimere l'archivio, posizionarsi nella cartella dove è stata effettuata l'estrazione e dare il comando python3 setup.py install verrà creato il programma binwalk. Per testare binwalk digitare il comando binwalk e verrà visualizzato la guida con le opzioni del comando binwalk. - Uso del tool ambitImageEditor Scaricare il tool aggiornato da ambitImageEditor by bignerd95 (Github) e decomprimere l'archivio Andare nella cartella tools, copiare nella cartella il file .chk del firmware e lanciare il comando ./auto.sh nomefilefirmware.chk dove nomefilefirmware.chk è il nome del file del firmware verrà scompattao l'archivo e il batch rimarrà in attesa che vengano fatte le modifiche al file decompilato,. Una volta fatte le modifiche al firmware decompilato, premere un tasto e il batch ricomprimerà e firmerà il firmware. - Licenza Creative Commons Il contenuto di questo post è rilasciato con licenza Creative Commons Attribution-Noncommercial-Share Alike 2.5
__________________
Dlink DSL-3xxT - Dlink DSL-5xxT/G6xxT - Digicom Office Wave 54 Linksys ADSL2MUE - Linksys WAG54GS - Linksys WAG200G - Come usare 2 router in cascata Console seriale - JTAG - 4geek Playo - WD TV Live Ultima modifica di Bovirus : 17-02-2018 alle 16:50. |
13-02-2018, 09:22 | #2 |
Senior Member
Iscritto dal: Nov 2003
Città: Milano
Messaggi: 30584
|
Riservato ...
- Licenza Creative Commons Il contenuto di questo post è rilasciato con licenza Creative Commons Attribution-Noncommercial-Share Alike 2.5
__________________
Dlink DSL-3xxT - Dlink DSL-5xxT/G6xxT - Digicom Office Wave 54 Linksys ADSL2MUE - Linksys WAG54GS - Linksys WAG200G - Come usare 2 router in cascata Console seriale - JTAG - 4geek Playo - WD TV Live |
13-02-2018, 09:24 | #3 |
Senior Member
Iscritto dal: Nov 2003
Città: Milano
Messaggi: 30584
|
Riservato .. ..
- Licenza Creative Commons Il contenuto di questo post è rilasciato con licenza Creative Commons Attribution-Noncommercial-Share Alike 2.5
__________________
Dlink DSL-3xxT - Dlink DSL-5xxT/G6xxT - Digicom Office Wave 54 Linksys ADSL2MUE - Linksys WAG54GS - Linksys WAG200G - Come usare 2 router in cascata Console seriale - JTAG - 4geek Playo - WD TV Live |
17-02-2018, 08:51 | #4 |
Senior Member
Iscritto dal: Nov 2003
Città: Milano
Messaggi: 30584
|
@bignerd95
Per favore continuiamo la discussione sul tuo tool in questo nuovo thread. Il tool richeide anche il programma esterno binwalk Scaricadno il modulo ed installandolo riesco a proseguire la decompilazione ma ottengo questo errore. $ ./auto.sh DGN2200v4-1.0.0.102.chk ** Ambit Image split ** Parsing file... Creating directory: DGN2200v4-1.0.0.102.chk_extract Extracting RootFS... Extracting Kernel... Done! ** Vtoken remove ** CRC: 0x4b0c51a2 Magic: 0x5732 Chip ID: 6328 Flash type: NAND16 Unused: 0x0 Vtoken removed! DECIMAL HEXADECIMAL DESCRIPTION -------------------------------------------------------------------------------- WARNING: Extractor.execute failed to run external extractor 'jefferson -d 'jffs2-root' '%e'': [Errno 2] No such file or directory: 'jefferson': 'jefferson', 'jefferson -d 'jffs2-root' '%e'' might not be installed correctly 0 0x0 JFFS2 filesystem, big endian Servono dei requisiti particolari per binwalk (librerie o altro)?
__________________
Dlink DSL-3xxT - Dlink DSL-5xxT/G6xxT - Digicom Office Wave 54 Linksys ADSL2MUE - Linksys WAG54GS - Linksys WAG200G - Come usare 2 router in cascata Console seriale - JTAG - 4geek Playo - WD TV Live Ultima modifica di Bovirus : 17-02-2018 alle 15:17. |
17-02-2018, 11:30 | #5 |
Member
Iscritto dal: May 2013
Messaggi: 88
|
Ecco la guida per installare tutto il necessario per binwlak
https://github.com/ReFirmLabs/binwal...ter/INSTALL.md Se cerchi "jefferson" all'interno di quella pagina trovi i comandi per installarlo Avresti poi voglia di farmi l'elenco dei tool che hai dovuto installare? Cosi lo aggiungo al mio readme |
17-02-2018, 16:21 | #6 |
Senior Member
Iscritto dal: Nov 2003
Città: Milano
Messaggi: 30584
|
@bignerd95
Grazie delle indicazioni. Per il jefferson ho dovuto modificare lo script jefferson in quanto fa riferimento a python2 (v2) mentre oggi si usa python3 (v3). Ora la funzione di decompilazione la completa. Ho problemi con Cygwin e il comando mkfs.jffs2. Poi provo con il sistema Linux Proposte per il batch auto.sh - se viene lanciato senza riferimento al file del firmware visualizzare una pagina di help - testare se il il file del firmware indicato esiste e se non esiste emettere un messaggio d'errore. - verificare l'ambienete d'esecuzione (Linux/Cygwin, etc) e modificare alcuni comandi (es. sudo in Cygwin non esiste) - testare se possibile la disponibilità dei moduli dipendenze (binwalk/jefferson) - testare se la cartella di estrazione esiste già e se esiste rimuoverla. - Visualizzare con dei messaggi i vari passaggi (estrazione, rimozione token, creazione token, compressione) In Linux (Ububtu 16.04) ho riscontrato questo problema Installato phython3 - OK installato modulo crcmod - ok installato jefferson - ok scaricato e decomrpesso ambitImageEditor quando lancio il comando auto,sh ottengo root@ubuntu:/home/ubuntu/Desktop/ambitImageEditor/tools# pip3 install crcmod Collecting crcmod Installing collected packages: crcmod Successfully installed crcmod-1.7 root@ubuntu:/home/ubuntu/Desktop/ambitImageEditor/tools# pip3 install construct Collecting construct Installing collected packages: construct Successfully installed construct-2.9.31 root@ubuntu:/home/ubuntu/Desktop/ambitImageEditor/tools# ls auto.sh DGN2200v4-1.0.0.102.chk mkfs.jffs2 nocomprlist root@ubuntu:/home/ubuntu/Desktop/ambitImageEditor/tools# ./auto.sh DGN2200v4-1.0.0.102.chk Traceback (most recent call last): File "/home/ubuntu/Desktop/ambitImageEditor/tools/..//ambitImageEditor/ambitImageEditor.py", line 5, in <module> import sys, os, Ambit File "/home/ubuntu/Desktop/ambitImageEditor/ambitImageEditor/Ambit.py", line 29, in <module> "board_id" / String(this.size - FIXED_HEADER_LEN, StringsAsBytes), NameError: name 'StringsAsBytes' is not defined
__________________
Dlink DSL-3xxT - Dlink DSL-5xxT/G6xxT - Digicom Office Wave 54 Linksys ADSL2MUE - Linksys WAG54GS - Linksys WAG200G - Come usare 2 router in cascata Console seriale - JTAG - 4geek Playo - WD TV Live Ultima modifica di Bovirus : 17-02-2018 alle 17:14. |
18-02-2018, 20:05 | #7 |
Member
Iscritto dal: May 2013
Messaggi: 88
|
Devi aggiornare construct.
Se ti ricordi qualche giorno fa ti dava questo errore: https://www.hwupgrade.it/forum/showp...postcount=7125 Perche hanno aggiornato construct e ora richiedono di specificare "StringsAsBytes". E allora ho aggiornato il tool: https://www.hwupgrade.it/forum/showp...postcount=7126 Qua puoi vedere il mio commit: https://github.com/BigNerd95/ambitIm...b96f1fe0eafe01 Quindi o aggiorni construct o cancelli la modifica del mio tool. Fammi sapere ;-) |
18-02-2018, 21:22 | #8 |
Senior Member
Iscritto dal: Nov 2003
Città: Milano
Messaggi: 30584
|
@bignerd95
Grazie per la modifica del tuo tool. Provvedo ad aggiornare il tuo tool. Non cambia nulla. Avevo già usato la versioen aggironata del tuo tool. La csoa strabna come ho scritto che suando Cygwin non dà quell'errroe. Come si fa a verificare il funzionamento della libreria construct?
__________________
Dlink DSL-3xxT - Dlink DSL-5xxT/G6xxT - Digicom Office Wave 54 Linksys ADSL2MUE - Linksys WAG54GS - Linksys WAG200G - Come usare 2 router in cascata Console seriale - JTAG - 4geek Playo - WD TV Live Ultima modifica di Bovirus : 18-02-2018 alle 21:58. |
19-02-2018, 13:16 | #9 |
Member
Iscritto dal: May 2013
Messaggi: 88
|
Purtroppo il mantainer di construct continua a modificare sta gestione delle stringhe
https://github.com/construct/constru...35a56823f12f22 Semplicememnte cancella StringAsByte dal mio tool per il moment Come construct diventa nuovamente stabile lo fixo Magari specificando la versione funzionante |
19-02-2018, 13:46 | #10 |
Senior Member
Iscritto dal: Nov 2003
Città: Milano
Messaggi: 30584
|
@bignerd95
Grazie. Quando trovi una versione stabile di construct, potresti integrarla nel tuo repository o rendere lo zip del sorgente di construct in modo da suare quello.
__________________
Dlink DSL-3xxT - Dlink DSL-5xxT/G6xxT - Digicom Office Wave 54 Linksys ADSL2MUE - Linksys WAG54GS - Linksys WAG200G - Come usare 2 router in cascata Console seriale - JTAG - 4geek Playo - WD TV Live |
27-03-2018, 17:27 | #11 |
Member
Iscritto dal: May 2013
Messaggi: 88
|
Aggiornato il mio repo con l'ultima versione di construct
Inoltre ho messo nel README il comando per installare la versione corretta delle librerie cosi da non avere piu problemi di compatibilita' |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:50.