Uso spesso cat sulla console per visualizzare il contenuto dei file, e di tanto in tanto ho accidentalmente catato un file binario che fondamentalmente produce gibberish e beep di sistema. Tuttavia oggi ho riscontrato una situazione in cui l'output dell'utilità cat è stato reindirizzato all'input della console, quindi ho ottenuto cose come questa:
-bash: 2c: command not found-bash: 1 : comando non trovato-bash: 1: comando non trovato-bash: 112: comando non trovato-bash: 112: comando non trovato-bash: 1: comando non trovato-bash: 0x1: comando non trovato-bash: 2c1: comando non trovato-bash: 2c: comando non trovato-bash: 1: comando non trovato-bash: 1: comando non trovato-bash: 112: comando non trovato-bash: 112: comando non trovato-bash: 1: comando non trovato -bash: 0x1: comando non trovato-bash: 2c1: comando non trovato-bash: 2c1: comando non trovato-bash: 2c1: comando non trovato-bash: 2c1: comando non trovato
...
...
Questo mi ha fatto pensare che un file binario appositamente predisposto potrebbe creare un bel pasticcio nel sistema?! ... Ora mi rendo conto di usare cat in modo sconsiderato in questo modo non particolarmente intelligente, ma in realtà mi piacerebbe sapere cosa sta succedendo qui. Quali caratteri producono l'effetto di scaricare improvvisamente il contenuto sullo standard input ...
Nota: ero nel terminale Mac OS X mentre facevo questo, in realtà ho chiamato diff -a per confrontare due immagini rom del firmware e stampare le differenze (pensavo ci sarebbero stati solo pochi byte di differenze ma c'erano quasi 8 MB di differenze stampate sullo schermo) In seguito ho provato, apposta, a catare uno dei file e ho ottenuto lo stesso effetto che ho incollato qui.
- UPDATE - - UPDATE - - UPDATE -
L'ho postato qui ieri a tarda notte e questa mattina ho provato a replicare il comportamento e non ci riesco. Sfortunatamente non posso essere sicuro se alcuni caratteri di escape abbiano causato l'esecuzione automatica del gibberish dal binario sulla console o se alla fine del gatto mi sono rimasti un po 'di caratteri (come se li avessi incollati) sul riga di comando e probabilmente ho premuto invio accidentalmente per ottenere una riga chiara ...
Quando provo a cat il file in questione ora ottengo questo quando termina (scorri a destra per vedere):
D? k (Fli9p? s? HT? 78 =! g ?? Ès3? &é ?? = ?? 7 ?? K? ̓Kü<ö ???? z (; ????? ?? j ?? > ?? ö? Ivans-MacBook-Pro: FI9826W-2.11.1.5-20140121 NA ivankovacevic $ 1; 2c1; 2c1; 2; 2c1; 2c1; 2c1; 2c1; 2c1; 2c1; 2c1; 2c1; 2c1; 2c1; 2c1; 2c1; 2c1; 2c1; 2c; 1; 1; 112; 112; 1; 0x1; 2c1; 2c; 1; 1; 112; 112; 1; 0x1; 2c1; 2c1; 2c1; 2c1; 2c1; 2c1; 2c1; 2c1; 2c1; 2c1; 2c1; 2c1; 2c1; 2c1; 2c1; 2c1; 2c1; 2c1; 2c1; 2c1; 2c1; 2c1; 2c1; 2c1; 2c1; 2c1; 2c1;
Il mio prompt effettivo è:
Ivans-MacBook-Pro: FI9826W-2.11.1.5-20140121 NA ivankovacevic $
Dove:
FI9826W-2.11.1.5-20140121 N A
è l'attuale directory di lavoro. Come vedete era camuffata nel linguaggio binario senza senso e potrei aver premuto invio di riflesso o qualcosa del genere. Questo di per sé è un po 'sbagliato per il gatto perché ovviamente il mio suggerimento avrebbe potuto essere "mimetizzato" ancora meglio. Ma è meno grave di quanto pensassi inizialmente. Anche se non sono ancora sicuro al 100% che non sia stato eseguito automaticamente la scorsa notte quando ho provato, perché c'era anche un'altra cosa strana che è accaduta la scorsa notte, prima di questa. Ho chiamato cat su un altro file molto simile che ha causato la chiusura dell'app Terminal con:
Tipo di eccezione: EXC_BAD_ACCESS (SIGSEGV) Codici di eccezione: KERN_INVALID_ADDRESS su 0x00007fcb9a3ffffa
Ora sto pensando che forse una combinazione di questi due eventi ha causato l'esecuzione automatica di parole incomprensibili sulla console. Ma non posso replicare di nuovo quel comportamento.
I file in questione sono firmware per una telecamera IP Foscam, ecco i link:
Sito internazionale: http://foscam.com/Private/ProductFiles/FI9826W-2.11.1.5 -20140120.zip
E poi il file all'interno: FI9826W_app_ver1.11.0.40_OneToAll.bin”
chiamando cat su quello farà chiudere Terminal.
Sito USA: http://foscam.us/downloads/FI9826W-2.11.1.5-20140121%20NA.zip
e quindi il file: FI9826W_app_ver1. 11.0.40_OneToAll_A.bin
cat-ing quello causerà quella pasta di 1; 2c1; 2c1; 2; 2c1; 2c1; 2c1; 2c1; 2c1; 2c1; 2c1; 2c. ... caratteri sulla riga di comando