Stavo leggendo la famosa leggenda di recupero di Unix e mi è venuto in mente di chiedermi:
Se avessi aperto una shell BusyBox e il binario BusyBox fosse stato eliminato, sarei comunque in grado di utilizzare tutti i comandi inclusi nel binario BusyBox?
Chiaramente non sarei in grado di usare la versione BB di questi comandi da un'altra shell in esecuzione come bash
, poiché il file BusyBox stesso non sarebbe disponibile per bash
l'apertura e l'esecuzione. Ma dall'istanza corrente di BusyBox, mi sembra che ci possano essere due metodi con cui BB eseguirà un comando:
- Potrebbe eseguire il fork ed eseguire una nuova istanza di BusyBox, chiamandola utilizzando il nome appropriato e leggendo il file BusyBox dal disco per farlo.
- Potrebbe eseguire il fork ed eseguire alcune logiche interne per eseguire il comando specificato (ad esempio, eseguendolo come una chiamata di funzione).
Se (1) è il modo in cui funziona BusyBox, mi aspetto che alcuni comandi forniti da BusyBox diventino non disponibili all'interno di un'istanza in esecuzione di BB dopo l'eliminazione del binario BB.
Se (2) funziona, BusyBox può essere utilizzato anche per il ripristino di un sistema in cui BB stesso era stato eliminato, a condizione che esistesse ancora un'istanza in esecuzione di BusyBox accessibile.
Questo è documentato ovunque? In caso contrario, c'è un modo per testarlo in sicurezza?
PATH
non è stato impostato? Presume un valore predefinito di PATH
?
is there a way to safely test it?
Scarica l'openwrt
immagine x86 generica e allega l'immagine a una nuova macchina VirtualBox