Ok, quindi ho già aperto le chiavette USB e ho capito che usano MCU generici per controllare la memoria flash NAND. Quello che stavo pensando era se uno potesse riprogrammarli per dire, avviare un'applicazione al momento dell'inserimento in una porta USB, quindi potrebbe essere utile per una moltitudine di applicazioni (come la copia automatica dei file). Comprendo che MCU diversi potrebbero/non possono usare codice ASM completamente diverso, ma c'è anche il problema di come persino comunicare con esso (cioè il protocollo e così via). Potrebbe essere possibile? Ho sentito parlare di cose come MP Tools che (in teoria) possono avere un formato di basso livello e resettare l'unità alle impostazioni di fabbrica, ma non modificare alcun codice usato su di esso.Qualche modo possibile per riprogrammare il microcontrollore di un'unità USB?
risposta
Quello che stavo pensando era se uno poteva riprogrammarli per dire, avviare un'applicazione al momento dell'inserimento in una porta USB, quindi potrebbe essere utile per una moltitudine di applicazioni (come copiare automaticamente i file).
Si sbaglia. Quando riprogrammi un microcontrollore USB flash, fai girare un programma all'interno della chiavetta USB. NON si fa eseguire alcun programma sul processore principale del computer. Il processore della chiavetta USB interagisce solo con il computer principale rispondendo alle transazioni USB avviate dal controller host USB nel computer principale, che è sotto il controllo del sistema operativo.
In effetti, le capacità dell'utente sono limitate a modificare il tipo di dispositivo USB segnalato (archiviazione di massa o imaging o rete o ...) e la modifica del contenuto dei dati restituiti quando il computer esegue una lettura dal Chiavetta USB.
Ma per quanto riguarda le cose come l'USB Rubber Ducky? (http://hakshop.myshopify.com/products/usb-rubber-ducky) –
@AntonioEscalera: se il tuo sistema operativo ha delle falle di sicurezza importanti, potresti non aver nemmeno bisogno di riprogrammare il microcontrollore. –
Un buon punto, ma cosa succede se ho bisogno di copiare qualcosa/tutto rapidamente subito prima di distruggere il mio disco rigido? –
No. La maggior parte dei controller utilizzati nelle unità flash USB non sono riprogrammabili, o alcuni o tutti i pin necessari per riprogrammarli non sono esposti.
Aprire un'applicazione quando l'unità è inserita è un comportamento che fa parte di Windows; viene attivato dalla presenza di un file (autorun.ini
) sull'unità con contenuto specifico.
Autorun/autoplay in realtà non avvia un programma (dal supporto rimovibile) su qualsiasi versione di Windows rilasciata negli ultimi 12 anni (fa semplicemente apparire una finestra di dialogo che suggerisce che l'utente potrebbe voler eseguire il programma) –
^Accordo con Ben –
Ho fatto quelle sciocche cose autorun prima da dispositivi USB, tuttavia se si riuscisse a trovare un modo per ottenere l'emulazione CD da quelle smart drive U3, che potrebbero funzionare con autorun ... –
Un fpga per un'unità flash sarebbe terribilmente costoso e un po 'uno spreco, sei sicuro che sia quello che usano? E da dove viene il microcontrollore? Com'è associato alla fpga o alla chiavetta USB o al flash? –
Il mio male, non sono sicuro se sia un FPGA o un microcontrollore (forse è un fpga in alcuni e un microcontrollore in altri). –
Dopo alcune ricerche, credo che siano i microcontrollori che vengono utilizzati perché, come hai affermato, una FPGA sarebbe uno spreco. L'MCU specifico che sto cercando di utilizzare è questo: http://www.alcormicro.com/en_content/c_product/product_02b.php?CategoryID=3&IndexID=12 che è contenuto in una flash drive duracell da 8 gb. Questi MCU sono quelli che si trovano nelle unità ebay compromesse, quindi chiaramente qualcuno l'ha capito. –