SE hakkında, terminalden nasıl kurtarılacağını gösteren birçok soru var cat /dev/urandom
. Bu konuyla aşina olmayanlar için - burada ne ile ilgili:
- Yürütür
cat /dev/urandom
veya eşdeğer (örneğin,cat binary_file.dat
). - Çöp yazdırılıyor.
Tamam olur ... terminaliniz komut tamamlandıktan sonra bile çöp yazdırmaya devam eder ! İşte aslında g ++ çıktısı olan yanlış yazılmış bir metnin ekran görüntüsü:
Sanırım insanlar C ++ hataları konusunda haklıydılar, bazen çok şifreli oluyorlardı!
Genel çözüm, stty sane && reset
her seferinde onu çalıştırmak biraz can sıkıcı olsa da, çalıştırmaktır.
Bu nedenle, bu soruya odaklanmak istediğim, bunun olmasının asıl sebebi ve böyle bir komut verildikten sonra terminalin kırılmasının nasıl önleneceğidir . Böyle saldırıda bulunan komutları boru olarak çözüm aramıyorum tr
ya xxd
bu çıkış bu verilere sen ne her zaman hatırlanacak gerçekte çalıştırmadan önce Program / dosyanın çıkışları ikili / yazdırmak olduğunu bilmek gerektirir ve ihtiyaçlar nedeniyle, .
Aynı davranışı URxvt, PuTTY ve Linux çerçeve arabelleğinde de fark ettim, bu yüzden bu uçbirime özgü bir sorun olduğunu sanmıyorum. Birincil şüphelim, rastgele çıkışın karakter kodlamasını çeviren bazı ANSI kaçış kodları içerdiği (aslında, eğer cat /dev/urandom
tekrar çalıştırırsanız , bu teoriyi onaylıyor gibi görünecek olan uçbirimi kıracak ihtimaller var ). Bu doğruysa, bu kaçış kodu nedir? Devre dışı bırakmak için standart yollar var mı?