web-dev-qa-db-ja.com

`cat / dev / urandom`がターミナルを壊すのはなぜですか?

この質問に関して: https://serverfault.com/questions/534449

どうやって cat /dev/urandom一部のターミナルエミュレータを不安定にしますか?

16
enthdegree

通常の印刷可能なASCII文字は端末で送受信されますが、システムが端末と通信するために使用される多くの印刷できない文字もあります。たとえば、プログラムが文字0x07( "ASCIIベル文字")を送信すると、端末からビープ音が鳴ります。

他の特別なシーケンスを使用して、表示されているテキストの色、表示される方向、ウィンドウのタイトル、ウィンドウのサイズなどを変更できます。

あなたが

cat /dev/urandom

ランダムな文字の束が端末にダンプされ、端末はそれが実際の制御コードではないことを認識できません。

プログラムはランダムなコマンドを端末に効果的に送信しているため、端末はランダムになり、しばしば使用できない状態になります。

22
Darth Android

このコマンドを実際に使用すると、NSAがいつでもコンピュータにあるかどうかがわかります。

strings < /dev/urandom | grep nsa -i

肯定的な結果が得られた場合は、コンピューターでのぞき見の兆候です。これはエアギャップマシンでも機能し、bashが「不自然」になることがあるのはNSA対策のためです。注意してください。

16
c4b3r42

ランダム出力の一部はANSIエスケープコード( http://en.wikipedia.org/wiki/ANSI_escape_code )であり、カーソルを非表示にしたり、代替フォントを選択したりすることができます。もう1つの可能性は、Unicodeシーケンスです。ランダムバイトストリームは有効なUTF-8ではなく、おそらくすべてのUnicode対応端末がそれを正常に処理するわけではありません。

5
vbraun

cat /dev/urandomは、0255の間のランダムなバイトのストリームを提供します。これらの値のすべてが有効なテキスト文字であるとは限りません。端末ウィンドウは無効なデータをフィードしていたため、それを処理することは予期されていなかったため、端末アプリケーションが「壊れた」状態になる可能性があります。

1