ΠΠΎΡΡΡΠΏΠ½Ρ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΠΆΠΈΠ½ΠΈΡΠΈΠ½Π³Π° Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ Π² liblzma Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΊΠ°ΠΌΠΏΠ°Π½ΠΈΠΈ ΠΏΠΎ ΠΏΡΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ Π±ΡΠΊΠ΄ΠΎΡΠ° Π² ΠΏΠ°ΠΊΠ΅Ρ xz. ΠΡΠΊΠ΄ΠΎΡ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΡΠ΅ΠΌΡ x86_64 Π½Π° Π±Π°Π·Π΅ ΡΠ΄ΡΠ° Linux ΠΈ Π‘ΠΈ-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Glibc, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΊ sshd ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΡ, ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΠΈΠΉ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ libsystemd Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° sd_notify. ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΎΡΡ, ΡΡΠΎ Π±ΡΠΊΠ΄ΠΎΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±ΠΎΠΉΡΠΈ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π² sshd ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠ΅ΡΠ΅Π· SSH. ΠΠΎΠ»Π΅Π΅ Π΄Π΅ΡΠ°Π»ΡΠ½ΡΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΏΠΎΠΊΠ°Π·Π°Π», ΡΡΠΎ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ ΠΈ Π±ΡΠΊΠ΄ΠΎΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅, Π½Π΅ ΠΎΡΡΠ°Π²Π»ΡΡ ΡΠ»Π΅Π΄ΠΎΠ² Π² Π»ΠΎΠ³Π°Ρ sshd.
Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°Π΅ΠΌΠ°Ρ Π±ΡΠΊΠ΄ΠΎΡΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΡ RSA_public_decrypt ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΡ Ρ ΠΎΡΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠ»ΡΡ Ed448, ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠΉ Π²Π½Π΅ΡΠ½ΠΈΠΌ Ρ ΠΎΡΡΠΎΠΌ ΠΊΠΎΠ΄ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ system() Π½Π° ΡΡΠ°Π΄ΠΈΠΈ Π΄ΠΎ ΡΠ±ΡΠΎΡΠ° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ sshd. ΠΠ°Π½Π½ΡΠ΅, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΠΊΠΎΠ΄ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡΡΡ ΠΈΠ· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° «N», ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π² ΡΡΠ½ΠΊΡΠΈΡ RSA_public_decrypt (ΠΏΠΎΠ»Π΅ «n» ΠΈΠ· ΡΡΡΡΠΊΡΡΡΡ rsa_st, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠΉ Π²Π½Π΅ΡΠ½ΠΈΠΌ Ρ ΠΎΡΡΠΎΠΌ ΠΎΡΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ), ΠΏΡΠΎΠ²Π΅ΡΡΡΡΡΡ ΠΏΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΡΡΠΌΠΌΠ΅ ΠΈ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΡΠ²Π°ΡΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° ChaCha20 Π½Π° ΡΡΠ°Π΄ΠΈΠΈ Π΄ΠΎ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Ed448.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠ·Π½Π°ΠΊΠ° Π΄Π»Ρ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ Π±ΡΠΊΠ΄ΠΎΡΠ° Π² sshd ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ°ΡΠ½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΎΠ±ΠΌΠ΅Π½Π° Ρ ΠΎΡΡΠΎΠ²ΡΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ. ΠΡΠΊΠ΄ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ OpenSSH Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΎΡΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ Π»ΠΈΡΠ°, ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΡ, ΠΈ ΡΠ΅Π°Π³ΠΈΡΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΊΠ»ΡΡ, ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠΉ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΠΎΠΌ ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΌΡ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΠΊΠ»ΡΡΡ Ed448. ΠΡΠ»ΠΈ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΠΏΠΎ ΠΎΡΠΊΡΡΡΠΎΠΌΡ ΠΊΠ»ΡΡΡ Π½Π΅ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°Π΅ΡΡΡ, Π±ΡΠΊΠ΄ΠΎΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ°ΡΠ½ΡΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌ SSH.
Π’Π°ΠΊ ΠΊΠ°ΠΊ Π·Π°ΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΠ° Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ΅Π½, Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΎΡΠ½ΡΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» Π±Ρ ΠΏΠΎΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ Π±ΡΠΊΠ΄ΠΎΡ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΊΠ°Π½Π΅Ρ ΡΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Ρ ΠΎΡΡΠΎΠ² Π² ΡΠ΅ΡΠΈ. ΠΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½ ΡΠΊΡΠΈΠΏΡ, Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡΠΈΠΉ ΡΠ΅Ρ Π½ΠΈΠΊΡ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ Π² ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠΉ SSH-ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ OpenSSH, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½ Π² ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠ΅Π½Π½ΠΎΠΉ Π±ΡΠΊΠ΄ΠΎΡΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ RSA_public_decrypt.
ΠΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΎΠ±Π΅Π·Π²ΡΠ΅ΠΆΠΈΠ²Π°ΡΡΠ΅ΠΉ Π±ΡΠΊΠ΄ΠΎΡ (killswitch) Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Π²ΡΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄ Π·Π°ΠΏΡΡΠΊΠΎΠΌ sshd ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½ΠΎΠΉ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ «yolAbejyiejuvnup=Evjtgvsh5okmkAvj».
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ Π΄Π΅ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·Π±ΠΎΡ shell-ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΡΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Ρ Π±ΡΠΊΠ΄ΠΎΡΠΎΠΌ ΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ liblzma. ΠΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° xz ΠΈΠ· ΡΠΊΡΠΈΠΏΡΠ° build-to-host.m4 Π·Π°ΠΏΡΡΠΊΠ°Π»ΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΠ» ΡΡΠ΅Π΄ΠΈ ΡΠ΅ΡΡΠΎΠ²ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π°ΡΡ ΠΈΠ² bad-3-corrupt_lzma2.xz, Π·Π°ΠΌΠ΅Π½ΡΠ» Π² Π½ΡΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π» Π² Π½Π΅ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄ΡΠ½Π½ΡΠΉ Π°ΡΡ ΠΈΠ² ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π» ΠΈΠ· Π½Π΅Π³ΠΎ shell-ΡΠΊΡΠΈΠΏΡ. gl_am_configmake=`grep -aErls «#{4}[[:alnum:]]{5}#{4}$» $srcdir/ 2>/dev/null` … gl_[$1]_config=’sed \»r\n\» $gl_am_configmake | eval $gl_path_map | $gl_[$1]_prefix -d 2>/dev/null’ gl_path_map=’tr «\t \-_» » \t_\-«‘
ΠΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ shell-ΡΠΊΡΠΈΠΏΡ ΠΏΠΎ ΠΊΡΡΠΎΡΠΊΠ°ΠΌ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π» ΠΈΠ· ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π°ΡΡ ΠΈΠ²Π° good-large_compressed.lzma Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ shell-ΡΠΊΡΠΈΠΏΡ, ΠΏΡΠΎΠΏΡΡΠΊΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ head ΠΈ tail, ΠΈ Π·Π°ΠΌΠ΅Π½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ tr. ####Hello#### # a few binary bytes here, but as it’s a comment they are ignorred [ ! $(uname) = «Linux» ] && exit 0 [ ! $(uname) = «Linux» ] && exit 0 [ ! $(uname) = «Linux» ] && exit 0 [ ! $(uname) = «Linux» ] && exit 0 [ ! $(uname) = «Linux» ] && exit 0 eval `grep ^srcdir= config.status` if test -f ../../config.status;then eval `grep ^srcdir= ../../config.status` srcdir=»../../$srcdir» fi export i=»((head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +939)»;(xz -dc $srcdir/tests/files/good-large_compressed.lzma|eval $i|tail -c +31233|tr «\114-\321\322-\377\35-\47\14-\34\0-\13\50-\113» «\0-\377»)|xz -F raw —lzma1 -dc|/bin/sh ####World####
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π»ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΈ ΠΎΠ±ΡΡΠΌΠ½ΡΠΉ shell-ΡΠΊΡΠΈΠΏΡ, ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡΠΈΠΉ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠ°ΠΉΠ» Ρ Π±ΡΠΊΠ΄ΠΎΡΠΎΠΌ ΠΈΠ· Π°ΡΡ
ΠΈΠ²Π° good-large_compressed.lzma, ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΡΠ²Π°ΡΡΠΈΠΉ Π΅Π³ΠΎ ΠΈ Π²ΡΡΡΠ°ΠΈΠ²Π°ΡΡΠΈΠΉ Π² liblzma. Π‘ΡΠ΅Π΄ΠΈ ΠΏΡΠΎΡΠ΅Π³ΠΎ Π² ΡΠΊΡΠΈΠΏΡΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°Π»Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ° ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠ΅ΡΠ΅Π· ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ
ΡΠ΅ΡΡΠΎΠ²ΡΡ
Π°ΡΡ
ΠΈΠ²ΠΎΠ², Π½Π΅ ΠΌΠ΅Π½ΡΡ good-large_compressed.lzma ΠΈ bad-3-corrupt_lzma2.xz, Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ ΡΠΈΠ³Π½Π°ΡΡΡΠ΅. Π ΠΊΠΎΠ΄Π΅ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ» Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½ Π΄Π΅ΡΠΈΡΡΠΎΠ²ΡΠΈΠΊ Π½Π° Π±Π°Π·Π΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° RC4, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΡΠ·ΡΠΊΠ΅ AWK: N=0 W=88664 else N=88664 W=0 fi xz -dc $top_srcdir/tests/files/$p | eval $i | LC_ALL=C sed «s/\(.\)/\1\n/g» | LC_ALL=C awk ‘BEGIN{FS=»\n»;RS=»\n»;ORS=»»;m=256;for(i=0;i<m;i++){t[sprintf(«x%c»,i)]=i;c[i]=((i*7)+5)%m;}i=0;j=0;for(l=0;l<8192;l++){i=(i+1)%m;a=c[i];j=(j+a)%m;c[i]=c[j];c[j]=a;}}{v=t[«x» (NF<1?RS:$1)];i=(i+1)%m;a=c[i];j=(j+a)%m;b=c[j];c[i]=b;c[j]=a;k=c[(a+b)%m];printf «%c»,(v+k)%m}’ | xz -dc —single-stream | ((head -c +$N > /dev/null 2>&1) && head -c +$W) > liblzma_la-crc64-fast.o || true
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru