Cercando su internet mi ero imbattuto in un tool per convertire il file binario del backup della configurazione in file di testo in formato xml dove era possibile osservare una serie di impostazioni, compreso lo username e la password del VOIP, questo anche con il firmware più recente come il DVA-5592_A1_WI_20180405.
Ho fatto il fork di quel tool su github e penso di averlo perfezionato, è disponibile alla url
https://github.com/digiampietro/adbtools2 sia in formato sorgente Python che in "compilato" .exe da poter far girare su Windows senza dover installare Python, i moduli aggiuntivi, il compilatore di Microsoft ecc.
Le istruzioni sono sul sito, in inglese perché così era il tool da cui sono partito e che ho modificato, ma in sostanza scaricando il file zip da github, decomprimendo tutto in una directory, mettendo nella stessa directory il backup della configurazione del firmware, si possono ottenere i due file .xml di configurazione che lo compongono con un comando simile al seguente:
Codice:
d:\adbtools2> confbin2xml.exe download.pem upload.pem config_full_DVA-5592_2018-06-04T222624.bin conf.xml confcpe.xml
I due file che si ottengono sono conf.xml e confcpe.xml
In teoria dovrebbe essere possibile fare il percorso inverso, ossia modificare in modo consistente conf.xml e confcpe.xml e poi generare il file binario da poter caricare come nuova configurazione sul router, in modo da poter impostare parametri non disponibili normalmente da interfaccia web.
Nei prossimi giorni ci proverò a scrivere uno script che faccia questo.
Nel frattempo stavo analizzando il formato del firmware del router per vedere se fosse possibile "decomprimerlo" modificarlo e "ricomprimerlo" in un formato che possa piacere al router, ho però visto che il firmware ufficale sembra essere firmato con una firma digitale che viene verificata dall'eseguibile `/usr/sbin/sig_verify` che utilizza la libreria libgcrypt (
https://www.gnupg.org/documentation/manuals/gcrypt/).
Da notare che alcuni eseguibili presenti nel file system del router, per architettura ARM Cortex-A9, possono essere fatti girare, con opportuni "chroot" su un RaspberryPI 2 che ha una architettura di processore simile ma, ovviamente, un hardware molto diverso.