Warum bricht "cat / dev / urandom" Ihr Terminal?

14994
enthdegree

In Bezug auf diese Frage: https://serverfault.com/questions/534449

Wie können cat /dev/urandomeinige Terminal-Emulatoren durchgehen?

13

4 Antworten auf die Frage

20
Darth Android

Es gibt zwar normale, druckbare ASCII-Zeichen, die an einem Terminal hin und her gesendet werden, es gibt jedoch auch viele nicht druckbare Zeichen, die das System zur Kommunikation mit dem Terminal verwendet. Wenn zum Beispiel ein Programm das Zeichen sendet 0x07("ASCII Bell-Zeichen"), sollte Ihr Terminal einen Piepton geben.

Andere spezielle Sequenzen können verwendet werden, um die Farbe des angezeigten Texts, die Richtung, in der er angezeigt wird, den Titel des Fensters, die Größe des Fensters usw. zu ändern.

Wenn du

cat /dev/urandom 

Eine Reihe zufälliger Zeichen wird an Ihr Terminal ausgegeben, und das Terminal kann nicht erkennen, dass es sich nicht um echte Steuercodes handelt.

Da das Programm effektiv zufällige Befehle an das Terminal sendet, befindet sich das Terminal in einem zufälligen, oft unbrauchbaren Zustand.

15
c4b3r42

Wenn Sie diesen Befehl tatsächlich verwenden, wird angezeigt, ob sich der NSA zu einem bestimmten Zeitpunkt in Ihrem Computer befindet:

strings < /dev/urandom | grep nsa -i 

Wenn Sie positive Ergebnisse erhalten, ist dies ein verräterisches Zeichen dafür, dass sie in Ihrem Computer schnüffeln. Dies funktioniert sogar bei Maschinen mit Luftspalt, und der Grund, warum Ihre Bash manchmal "wacklig" wird, liegt in einer Gegenmaßnahme der NSA. Achtung!

Urkomisch, aber offensichtlich nicht wahr, nur für den Fall, dass Neulinge vorbeigehen! EngineerBetter_DJ vor 8 Jahren 8
Beste! Antworten! Je! https://imgflip.com/i/1ep8ch Mawg vor 7 Jahren 1
Weiß jemand, ob dies auch für die CIA funktionieren würde und wie man es überprüfen kann? Mawg vor 7 Jahren 1
Es gibt eine überraschend große Anzahl von Spielen, mit denen ich nicht gerechnet habe. Brandon Ibbotson vor 6 Jahren 0
4
vbraun

Einige der zufälligen Ausgaben sind ANSI-Escape-Codes ( http://en.wikipedia.org/wiki/ANSI_escape_code ), die unterhaltsame Dinge tun können, beispielsweise den Cursor ausblenden oder alternative Schriftarten auswählen. Eine andere Möglichkeit sind Unicode-Sequenzen: Ein zufälliger Bytestream ist kein gültiges UTF-8, und wahrscheinlich behandeln nicht alle Unicode-fähigen Terminals dies ordnungsgemäß.

1
Scott Chamberlain

cat /dev/urandomgibt einen Stream von zufälligen Bytes zwischen 0und 255nicht alle diese Werte sind gültige Textzeichen. Da das Terminalfenster ungültige Daten zugeführt hatte, war es nie zu erwarten, dass die Terminalanwendung in den Status "fehlerhaft" versetzt wurde.