โปรเจ็กต์นี้ เช่นเดียวกับโปรเจ็กต์ในเครือที่ล่ม - เป็นของชุดเครื่องมือต่อต้านการเซ็นเซอร์ของฉันที่อนุญาตให้ตั้งค่าเชลล์ที่เข้ารหัสที่ทำงานอย่างสมบูรณ์และการส่งต่อ TCP/UDP ในสภาพแวดล้อมการเซ็นเซอร์ที่ไม่เป็นมิตร นอกจากนี้ยังเป็นประโยชน์สำหรับนิติเวชในการถ่ายโอนข้อมูลจากอุปกรณ์ผ่าน UART หรือ adb เมื่อไม่มีวิธีอื่น
การค้นหา DNS และเซสชัน SSH ส่งต่อผ่านการเชื่อมต่อ UART ไปยัง Pi
PSC อนุญาตให้ e2e เข้ารหัสเซสชันเชลล์ แบบ single- หรือ multip-hop โดยไม่เชื่อเรื่องการขนส่งพื้นฐาน ตราบใดที่เชื่อถือได้และสามารถส่ง/รับข้อมูลที่เข้ารหัส Base64 โดยไม่ต้องดัดแปลง/กรอง นอกจาก e2e pty ที่คุณได้รับ (เช่น ภายใน port-shell) แล้ว คุณสามารถส่งต่อการเชื่อมต่อ TCP และ UDP ได้ ซึ่งคล้ายกับพารามิเตอร์ -L
ของ OpenSSH ซึ่งทำงานได้อย่างโปร่งใสและไม่จำเป็นต้องกำหนดที่อยู่ IP ภายในเครื่องที่จุดเริ่มต้น ซึ่งช่วยให้นิติเวชและผู้ทดสอบปากกาสามารถสร้างการเชื่อมต่อเครือข่ายได้ เช่น ผ่านทาง:
adb shell
หาก OEM adbd
ไม่รองรับการส่งต่อ TCPลองจินตนาการว่าคุณจะมีเซสชัน ppp ที่มองไม่เห็นภายในเซสชันเชลล์ของคุณ โดยที่เครื่องระยะไกลไม่รองรับ ppp จริงๆ
มันทำงานบน Linux, Android, OSX, Windows, FreeBSD, NetBSD และ (อาจ) OpenBSD
PSC ยังรวมการสนับสนุนพร็อกซี SOCKS4 และ SOCKS5 เพื่อให้มีเซสชันการท่องเว็บจริงผ่านพอร์ตเชลล์หรือโมเด็ม dial-ups จากระยะไกล
แก้ไข Makefile
เพื่อให้สะท้อนถึงคีย์ที่แชร์ล่วงหน้าของคุณ ตามที่กำหนดไว้ที่ด้านบนของ Makefile
จากนั้นเพียงพิมพ์ make
บน Linux และ OSX
บน BSD คุณต้องติดตั้ง GNU make และเรียกใช้ gmake
แทน
บน Windows คุณต้องติดตั้ง cygwin และเลือกแพ็คเกจ gcc, gcc-g++, make
และ git
ที่เหมาะสม
บน Linux PSC จะใช้เทอร์มินัลหลอก Unix98 บนระบบอื่นจะใช้ POSIX pty's แต่ควรมีความโปร่งใสสำหรับคุณ ครั้งหนึ่งฉันเคยเพิ่มการรองรับ 4.4BSD pty และ SunOS ย้อนกลับไปในยุคหินด้วยเหตุผลเฉพาะ ดังนั้นจึงอาจสร้างหรือไม่สร้างเลยแม้แต่กับ Solaris
สนับสนุนอย่างภาคภูมิใจโดย:
ธรรมดาและเรียบง่าย บนกล่องภายในเครื่องของคุณ ให้ดำเนินการ pscl
และส่งพอร์ต TCP หรือ UDP ใดๆ ที่คุณต้องการส่งต่อ จาก ไซต์ระยะไกลไปยังที่อยู่เฉพาะ ตัวอย่างเช่น:
linux:~ > ./pscl -T 1234:[192.168.0.254]:22 -U 1234:[8.8.8.8]:53
PortShellCrypter [pscl] v0.60 (C) 2006-2020 stealth -- github.com/stealth/psc
pscl: set up local TCP port 1234 to proxy to 192.168.0.254:22 @ remote.
pscl: set up local UDP port 1234 to proxy to 8.8.8.8:53 @ remote.
pscl: Waiting for [pscr] session to appear ...
linux:~ >
[ UART / SSH / ... login to remote side ... ]
บนไซต์ระยะไกล (การกระโดดครั้งสุดท้าย) ด้วยเซสชันเชลล์ ไม่ว่าจะอยู่ในพอร์ตเชลล์, SSH, การเข้าสู่ระบบคอนโซล ฯลฯ คุณดำเนินการ pscr
:
linux:~ > ./pscr
PortShellCrypter [pscr] v0.60 (C) 2006-2020 stealth -- github.com/stealth/psc
pscl: Seen STARTTLS sequence, enabling crypto.
linux:~ >
เมื่อคุณดำเนินการ pscr
ปลายทั้งสองข้างจะสร้างการจับมือกันของ crypto และวางโปรโตคอลเพิ่มเติมเหนือเซสชันที่มีอยู่ของคุณซึ่งโปร่งใสสำหรับคุณ จากนั้น คุณสามารถเชื่อมต่อกับ 127.0.0.1:1234
บนกล่องภายในเครื่องของคุณเพื่อเข้าถึง 192.168.0.254:22
ผ่าน TCP หรือตัวแก้ไข 8.8.8.8
ผ่าน UDP นอกจากนี้ยังใช้งานได้กับที่อยู่ [IPv6] หากไซต์ระยะไกลมีการเชื่อมต่อ IPv6 จริงๆ แล้ว คุณสามารถใช้มันเพื่อแปลซอฟต์แวร์ IPv4 เป็น IPv6 ได้ เนื่องจากคุณเชื่อมต่อกับ 127.0.0.1
ทางฝั่งท้องถิ่นเสมอ
คุณสามารถส่งผ่านพารามิเตอร์ -T
และ -U
ได้หลายตัว หากคุณสูญเสียการติดตามหากเซสชันของคุณได้รับการเข้ารหัส e2e อยู่แล้ว คุณสามารถส่ง SIGUSR1
ไปยังกระบวนการ pscl
ในเครื่องได้ แล้วระบบจะแจ้งให้คุณทราบ
PSC ยังมีประโยชน์หากคุณต้องการใช้ Tor จากเชลล์ SSH ระยะไกล ซึ่งคุณสามารถส่งต่อถุงเท้า 5 และพอร์ต DNS ไปยังที่อยู่โฮสต์ระยะไกล 127.0.0.1
ได้ เนื่องจาก SSH ไม่ส่งต่อแพ็กเก็ต UDP โดยปกติคุณจะใช้ตัวเชื่อมต่อ socat
สองตัวหรือที่คล้ายกันเพื่อแก้ไขผ่านโหนดทอร์ PSC มีข้อได้เปรียบในการรักษาขอบเขตดาตาแกรม UDP ในขณะที่ socat
บน SSH -L
อาจทำลายขอบเขตดาตาแกรมและสร้างคำขอ DNS ที่มีรูปแบบไม่ถูกต้อง
เซสชันจะถูกเข้ารหัสด้วย aes_256_ctr
ของ PSK ที่คุณเลือกใน Makefile
รูปแบบการเข้ารหัสลับนี้สามารถปรับเปลี่ยนได้ แต่การเพิ่มข้อมูล AAD หรือ OAD จะทำให้ขนาดแพ็กเก็ตมีขนาดใหญ่ขึ้น โดยที่ทุกไบต์นับตั้งแต่ในเซสชันแบบโต้ตอบและเนื่องจากการเข้ารหัส Base64 อักขระที่พิมพ์แต่ละตัวทำให้มีการส่งข้อมูลมากขึ้นแล้ว
เซสชัน UART อาจใช้ผ่าน screen
ได้ แต่ใช้ไม่ได้ผ่าน minicom
เนื่องจากมินิคอมจะสร้างหน้าต่างที่มองไม่เห็นพร้อมเส้นสถานะและทำหน้าที่เหมือนตัวกรองที่ทำลายโปรโตคอลของ PSC PSC พยายามตรวจจับการกรองและสามารถอยู่กับข้อมูลจำนวนหนึ่งที่ยุ่งวุ่นวาย แต่ในบางสถานการณ์ก็ไม่สามารถกู้คืนได้ สิ่งที่คล้ายกันกับ tmux
คุณควรหลีกเลี่ยงการซ้อนตัวจัดการ pty ด้วย PSC ที่ทำให้/จัดการข้อมูลขาเข้ามากเกินไป
จำเป็นต้องตั้งค่าตัวแปรสภาพแวดล้อม SHELL
สำหรับทั้ง pscl
และ pscr
เพื่อให้ PSC ทราบว่าเชลล์ใดที่จะดำเนินการบน pty SHELL
ได้รับการตั้งค่าในสภาพแวดล้อมส่วนใหญ่ตามค่าเริ่มต้น แต่ในกรณีที่ไม่เป็นเช่นนั้น PSC จะต้องดำเนินการเช่น SHELL=/bin/bash pscl
เป็นต้น
pscl
ยังรองรับการส่งต่อการเชื่อมต่อ TCP ผ่าน SOCKS4 ( -4 port
) และ SOCKS5 ( -5 port
) ซึ่งจะตั้งค่า พอร์ต เป็นพอร์ต SOCKS สำหรับการเชื่อมต่อ TCP ดังนั้น ตัวอย่างเช่น คุณสามารถเรียกดูเครือข่ายระยะไกลจากเซสชันพอร์ตเชลล์โดยไม่จำเป็นต้องเปิดการเชื่อมต่ออื่นใดระหว่างการทดสอบปากกา หากคุณส่ง -N
ไปที่ pscl
จะเป็นการเปิดใช้งานการแปลชื่อ DNS บนฝั่งระยะไกล ดังนั้นคุณจึงสามารถใช้ Chrome กับมันได้ แต่ได้รับคำเตือน: มีปัญหาความเป็นส่วนตัวกับเบราว์เซอร์ที่พยายามแก้ไขลำดับของชื่อ DNS เมื่อเริ่มต้นระบบซึ่งไม่ได้อยู่ภายใต้การควบคุมของคุณ นอกจากนี้ หากฝั่งระยะไกลของคุณมีการตั้งค่า DNS ที่เสียหาย เชลล์การพิมพ์ของคุณอาจบล็อกเป็นเวลาหลายวินาทีหากไม่มีแพ็กเก็ตตอบกลับ DNS ไม่มีฟังก์ชันตัวแก้ไขอะซิงก์ที่ดีซึ่งสามารถฝังได้และพกพาได้ ดังนั้นฉันจึงต้องอาศัย getaddrinfo()
ในเธรดเดียวในราคาของการบล็อกที่เป็นไปได้เป็นเวลาหลายวินาทีหากมีปัญหา DNS นั่นเป็นเหตุผลว่าทำไมจึงต้องเปิดใช้งานการจำแนกชื่ออย่างชัดเจน pscr
พยายามลดปัญหาที่อาจเกิดขึ้นนี้ให้เหลือน้อยที่สุดด้วยแคชการค้นหา DNS ดังนั้นในสถานการณ์ส่วนใหญ่ควรจะทำงานได้อย่างไม่ลำบาก หากคุณส่ง -X IP-address
(ต้องเป็นอาร์กิวเมนต์แรก) คุณสามารถผูกพร็อกซีในเครื่องของคุณกับที่อยู่ที่แตกต่างจาก 127.0.0.1
เพื่อให้คุณสามารถแชร์พร็อกซีในเครือข่ายท้องถิ่นของคุณได้
คุณสมบัติ psc ช่วยให้การเชื่อมต่อ TCP หรือ blobs ข้อมูลไบนารีถูกส่งต่อจาก/ไปยังอุปกรณ์ระยะไกลผ่านหลายฮ็อพ แม้ว่าจะไม่สามารถติดตั้งไบนารี pscr
ที่ไซต์ระยะไกลได้ สิ่งนี้มีประโยชน์มากสำหรับวัตถุประสงค์ทางนิติวิทยาศาสตร์หากคุณไม่มีวิธีการใด ๆ ในการดาวน์โหลดสิ่งประดิษฐ์จากอุปกรณ์ (ซึ่งอาจเป็นโทรศัพท์ที่เชื่อมต่อกับ UART เป็นต้น) หรือต้องการส่งต่อการเชื่อมต่อโดยไม่ต้องแตะ FS เพื่อไม่ให้ทำลายหลักฐานในระบบหรือเมื่อ root-FS ติดตั้ง ro แล้วและคุณไม่สามารถอัปโหลดชุดเครื่องมือของคุณได้
นี่เป็นคุณสมบัติที่ยอดเยี่ยมจริงๆ เนื่องจากคุณสามารถเห็นการเชื่อมต่อ TCP ของคุณกระโดดผ่าน tty ในเครื่องของคุณไปยังกล่องระยะไกลโดยไม่จำเป็นต้องติดตั้งอะไรจากระยะไกล
สิ่งนี้ใช้งานได้โดย pty punkrock ในพื้นที่เท่านั้นและส่งมอบคำสั่งตีกลับให้กับ pscl
ที่จะปล่อยบนเชลล์ระยะไกล (โดยไม่ต้องรัน pscr
) และกลไกกลไกสถานะบางตัวที่กรองและจัดการข้อมูลที่ฝั่งท้องถิ่น โดยปกติแล้ว จะต้องตั้งค่ารีโมต pty เป็นโหมด raw ในตอนแรกก่อนที่จะออกคำสั่งจริงและรายละเอียดอื่นๆ บางอย่างที่ส่งผ่านไปยัง -B
อาร์กิวเมนต์แบ่งออกเป็นส่วนต่างๆ ดังต่อไปนี้:
:
เช่น 1234:
stty -echo raw
หรือ python -c "import tty;tty.setraw(0)"
(ดูแลเพื่อให้ได้ราคาที่ถูกต้อง เนื่องจาก -B
จำเป็นต้องเสนอราคาด้วย) หรือ อะไรที่คล้ายกันpscl
เริ่มส่งข้อมูลเพื่อหลีกเลี่ยงการแข่งขันระหว่าง stty
ที่เกิดขึ้นจริงและจุดเริ่มต้นของ cmd เช่น echo GO
นั้นสมบูรณ์แบบnc 127.0.0.1 22
เพื่อตีกลับพอร์ตโลคัล 1234 ไปยังเซิร์ฟเวอร์ SSH ของรีโมตpscl
รีเซ็ตสถานะ tty ของมันได้ echo FIN
จะทำมัน แนะนำ มิฉะนั้นคุณอาจมีปัญหาในการจดจำจุดสิ้นสุดของคำสั่งของคุณ;
และอยู่ในวงเล็บตัวอย่าง:
หากคุณต้องการส่งต่อการเชื่อมต่อ TCP ตัวอย่างนี้ต้องติดตั้ง stty
และ nc
บนอุปกรณ์ แต่ในทางทฤษฎีอาจเป็นอย่างอื่นที่เทียบเท่ากัน
เริ่มเซสชันท้องถิ่น:
./pscl -B '1234:[stty -echo raw;echo GO;nc example.com 22;echo FIN]'
สิ่งนี้จะออกคำสั่ง stty -echo raw;echo GO;nc example.com 22;echo FIN
ไปยังอุปกรณ์ระยะไกลหากคุณเชื่อมต่อในเครื่องกับพอร์ต 1234 จากนั้นเพียงส่งต่อข้อมูลใด ๆ ที่เห็นไปมาและจำกัดอัตราการรับส่งข้อมูลดังนั้น จะไม่เกินความเร็ว tty ของอุปกรณ์ (115200 เป็นค่าเริ่มต้น)
เมื่อเซสชัน pscl เริ่มต้นขึ้น ให้เชื่อมต่อกับอุปกรณ์ระยะไกลด้วย UART, ssh -e none ...
หรืออะไรก็ตามที่เป็นอยู่ และเมื่อคุณมีเชลล์ระยะไกลแล้ว ให้พิมพ์ในเครื่องด้วย:
ssh [email protected] -p 1234
เพื่อตีกลับการเชื่อมต่อ SSH จากกล่องในเครื่องของคุณผ่านอุปกรณ์ระยะไกลไปยังปลายทาง example.com
แน่นอนว่าควรใช้ตัวแปร pscr
เนื่องจาก -B
สามารถตีกลับการเชื่อมต่อได้ครั้งละครั้งเท่านั้น (แม้ว่าคุณจะสามารถส่งคำสั่ง -B
ได้หลายคำสั่งสำหรับการส่งต่อต่างๆ) และมีโอกาสที่จะแฮงค์เชลล์หลังจากเซสชัน TCP เนื่องจาก pty อยู่ใน raw -echo
-โหมด raw -echo
และขึ้นอยู่กับว่ารีโมตเพียร์สุดท้ายปิดการเชื่อมต่อด้วยหรือไม่ อาจเป็นไปได้ว่าเชลล์เพิ่งแฮงค์หลังจากนั้น หากคุณพบการแจ้งเตือน PSCL ว่าการเชื่อมต่อเสร็จสิ้นแล้วและเห็นข้อความแจ้ง คุณควร reset
การแจ้งเตือนเพื่อให้สามารถเริ่มการเชื่อมต่อใหม่ได้ ในขณะที่ข้อมูลกำลังถูกส่งต่อ คุณจะเห็นการแจ้งเตือน 7 บิต ASCII <
และ >
ใน pscl
ซึ่งเป็นเพียงในเครื่องเพื่อการดีบักและการตรวจจับความคืบหน้าที่ง่ายขึ้น
โปรดทราบว่าการเชื่อมต่อกับไซต์ระยะไกลจะต้องสะอาด 8 บิต เช่น ssh, telnet, UART หรือช่องสัญญาณใดก็ตาม จะต้องไม่จัดการลำดับการหลีกเลี่ยง (ไม่เหมือนเมื่อใช้ pscr
) สำหรับการเชื่อมต่อ ssh หมายความว่าคุณต้องใช้ ssh -e none
ในเซสชัน pscl
ต่อไป ทำตามตัวอย่างบางส่วนเพื่อจัดการไฟล์ไบนารี xfer โดยที่ rfile หมายถึงไฟล์ระยะไกลและ ไฟล์ ในเครื่อง
หากต้องการเริ่มเซสชันเพื่อวางไฟล์ระยะไกลในเครื่อง:
./pscl -B '1234:[stty -echo raw;echo GO;dd of=rfile.bin bs=1 count=7350;echo FIN]'
โดยคุณจะต้องระบุจำนวนข้อมูลที่ฝั่งรีโมตคาดหวัง มันจะทำงานได้โดยไม่ต้องใช้ (เช่น cat>...
) แต่เซสชันจะหยุดทำงานหลังจากการส่งข้อมูลเสร็จสิ้นเนื่องจาก cat
คาดหวังอินพุตอย่างไม่มีที่สิ้นสุด เมื่อใช้ dd count=...
คุณจะได้รับทางออกที่สะอาดและได้รับการแจ้งเตือนจากเครื่องหมาย FIN
จากนั้น ssh หรืออะไรก็ตามที่จำเป็นเพื่อรับเชลล์บนอุปกรณ์ระยะไกลจากภายในเซสชัน pscl
ที่เพิ่งเริ่มต้น บนเทอร์มินัลที่สองในเครื่อง:
dd if=lfile.bin|nc 127.0.0.1 1234
ซึ่งจะเชื่อมต่อกับพอร์ตโลคัล 1234 ของ pscl
และทริกเกอร์คำสั่ง dump บนรีโมตไซด์ โดยส่งต่อข้อมูลไบนารี่ของ lfile.bin
ในเครื่องไปยังรีโมต rfile.bin
เนื่องจากการจำกัดอัตรา อาจใช้เวลาสักครู่ และคุณ จะเชื่อถือหน้าจอความคืบหน้า psc ของคุณเท่านั้น ไม่ว่าการถ่ายโอนจะเสร็จสิ้นหรือไม่ คำสั่ง dd ...|nc ...
ในเครื่องจะแสดงเฉพาะสถานะในเครื่องซึ่งสามารถกินไฟล์ทั้งหมดได้ในหน่วยมิลลิวินาทีเนื่องจากบัฟเฟอร์ TCP ในเครื่องในขณะที่ไฟล์ยังคงถูกถ่ายโอนผ่าน pty ดังนั้นตรวจสอบให้แน่ใจว่าคุณกด Ctrl-C
เมื่อหน้าจอ pscl บอกคุณว่าเสร็จสิ้นแล้ว หรือคุณเห็นเครื่องหมายสิ้นสุด FIN
สะท้อนกลับมาหาคุณในเซสชัน dd ...|nc ...
ในทำนองเดียวกัน คำสั่งที่คล้ายกันสามารถใช้เพื่อถ่ายโอนข้อมูลไบนารีจากอุปกรณ์ระยะไกลไปยังกล่องโลคัลเพื่อวัตถุประสงค์ทางนิติเวช เริ่มต้นเซสชันในเครื่องอีกครั้ง:
./pscl -B '1234:[stty -echo raw;echo GO;dd if=rfile.bin]'
หรือ
./pscl -B '1234:[stty -echo raw;echo GO;cat rfile.bin]'
จากนั้น ssh ไปยังอุปกรณ์ระยะไกลเพื่อรับเชลล์ จากนั้นอีกครั้งในเครื่อง:
nc 127.0.0.1 1234|dd of=lfile.bin bs=1 count=7350
หากต้องการรับ rfile.bin
ขนาด 7350 ให้คัดลอกไปยังไฟล์ในเครื่อง lfile.bin
หากไม่มี stty -echo raw
บนอุปกรณ์ python -c "import tty;tty.setraw(0)"
ก็ใช้งานได้เช่นกัน โปรดทราบว่าบนอุปกรณ์ระยะไกล คุณต้องมี tty (ไม่ใช่แค่พอร์ตเชลล์) เมื่อใช้คำสั่งตีกลับ เนื่องจากคำสั่ง stty
เพื่อตั้งค่าโหมด raw ต้องใช้ tty จริง
ถ้า psc ทำงานผ่านการเชื่อมต่อแบบอนุกรม บิตที่หายไปอาจทำลายความสนุกของคุณได้ หากคุณทำงานโดยไม่มี HW FC คุณจะพบกับปัญหาบิตลอสและการเชื่อมต่อที่ค้างในที่สุด โดยเฉพาะอย่างยิ่งเนื่องจากไม่มีการควบคุมปริมาณเมื่ออุปกรณ์ส่งข้อมูลไปในทิศทางของคุณเมื่อใช้ คำสั่งตีกลับ การดัมพ์ข้อมูลไปยังอุปกรณ์ทำงานได้ดีขึ้นเนื่องจากข้อมูลนี้ผ่านขีดจำกัดอัตรา pscl
อย่างไรก็ตาม ต่อไปนี้เป็นเคล็ดลับบางส่วนที่เหมาะกับฉันในสถานการณ์ที่ไม่สามารถใช้ pscr
บนอุปกรณ์และ HW FC ได้ สิ่งนี้มีผลเฉพาะเมื่อใช้ UART เนื่องจากเป็นช่องทางการขนส่งที่อาจไม่น่าเชื่อถือ
pscr
บนอุปกรณ์เพื่อให้คุณสามารถกำหนดขีดจำกัดอัตราสำหรับข้อมูลที่ส่งไปยังทิศทางของคุณได้ เนื่องจากทิศทางไปยังอุปกรณ์นั้นมีอัตราจำกัดอยู่เสมอ คุณสามารถใช้คำสั่งตีกลับเพื่อดัมพ์ไบนารี pscr
ที่คอมไพล์แล้วไปยังอุปกรณ์ และเริ่มเซสชันจำกัดอัตราแบบสองทางด้วยtio -o 1
หรือ -o 2
เพื่อเพิ่มความล่าช้าระหว่างไบต์เอาต์พุตที่ส่ง38400
แม้ว่าบรรทัดอนุกรมจะตั้งค่าไว้ 115200
)psc
ด้วย -DRESPECT_UART_BUFSIZE=4096
อย่างไรก็ตามสิ่งนี้จะทำให้เซสชันช้ามาก ภายในโฟลเดอร์ contrib
คุณยังจะพบแพตช์ tio-noprefix
เพื่อปิดใช้งานการประมวลผลอักขระหลีก แต่แพตช์นี้จำเป็นสำหรับเวอร์ชันเก่าเท่านั้น เนื่องจากอัปสตรีมได้รับการยอมรับและรวมแพตช์นี้แล้ว ฉันแนะนำให้ใช้ tio
เมื่อใช้ UART
เมื่อใช้คำสั่งตีกลับข้าม tio คุณต้องเพิ่มไฟล์ ~/.tioconfig
ของคุณ:
[default]
prefix-ctrl-key = none
ซึ่งปิดใช้งานการจัดการ ESC และให้ช่องสัญญาณที่สะอาด 8 บิตแก่คุณ
คุณสามารถส่ง SIGUSR1
ไปที่ pscl
เพื่อแจ้งให้คุณทราบว่าเซสชันถูกเข้ารหัสหรือไม่ ถ้า pscr
ระยะไกลเสียหรือออกโดยไม่มีความเป็นไปได้ที่จะส่งสัญญาณนั้นไปยังส่วนที่อยู่ในเครื่อง pscl
จะอยู่ในโหมดการเข้ารหัสและจะหยุดทำงาน ในกรณีนี้ คุณสามารถบังคับให้รีเซ็ตเป็นโหมดข้อความธรรมดาได้โดยการส่ง SIGUSR2
เพื่อให้สามารถเริ่มเซสชันใหม่ได้
ในเวอร์ชัน 0.64 psc รองรับ scripting-sockets ดังนั้นคุณจึงไม่จำเป็นต้องใช้ screen
ในการรับ/วางไฟล์หรือดัมพ์บัฟเฟอร์เพื่อวางลงในคอนโซลระยะไกลอีกต่อไป แต่คุณเริ่มเซสชันท้องถิ่นของคุณแทน:
~ > ./pscl -S ~/psc.script_sock
จากนั้นคุณสามารถไปข้างหน้าและใช้งานได้เหมือนเดิม หากคุณต้องการ 'วาง' สิ่งที่คุณชอบ:
~ > ./pscsh -S ~/psc.script_sock -f script_/helloworld
สิ่งนี้จะ 'พิมพ์' เนื้อหาของ script_/helloworld
ลงในคอนโซล ขณะเขียนสคริปต์ stdin ของ pscl
จะถูกบล็อก เพื่อให้อินพุตที่ฉีดเข้าไปไม่ปะปนกับการพิมพ์ใดๆ หากละเว้น -S
ใน pscsh
ระบบจะใช้ ~/psc.script_sock
โดยอัตโนมัติ ด้วยเหตุผลด้านความปลอดภัย สคริปต์ต้องขึ้นต้นด้วยคำนำหน้า script_
โบนัสพิเศษคือ ขณะนี้ pscr
มีความสามารถในการเข้ารหัสไฟล์ base64 แม้ว่าจะมีอักขระ CR ฝังอยู่เพื่อความสะดวกก็ตาม มันเข้ากันได้กับ uuencode -m