Linux OSผมมีอุปกรณ์การเข้าร่วมทำงาน ฉันสามารถเชื่อมต่ออุปกรณ์นี้ผ่านเซสชัน telnet มีบางไฟล์ในอุปกรณ์ที่ฉันต้องการดาวน์โหลดและอัพโหลดด้วยไฟล์ใหม่ ฉันจะทำสิ่งนั้นได้อย่างไร ฉันมีความรู้ต่ำมากใน Linux OS คุณช่วยได้ไหม!

Linux OSผมมีอุปกรณ์การเข้าร่วมทำงาน ฉันสามารถเชื่อมต่ออุปกรณ์นี้ผ่านเซสชัน telnet มีบางไฟล์ในอุปกรณ์ที่ฉันต้องการดาวน์โหลดและอัพโหลดด้วยไฟล์ใหม่ ฉันจะทำสิ่งนั้นได้อย่างไร ฉันมีความรู้ต่ำมากใน Linux OS คุณช่วยได้ไหม!

คำตอบ:
ขึ้นอยู่กับว่าเครื่องมือใดที่ติดตั้งบนอุปกรณ์ไคลเอนต์ / สนับสนุนโดยเคอร์เนล
วิธีการที่เป็นไปได้สำหรับการถ่ายโอนไฟล์ (ไม่ได้เรียงลำดับ):
netcatหรือsocatหรือbashและและ / dev / tcpwgetหรือcurlจากเว็บเซิร์ฟเวอร์อ่านการถ่ายโอนไฟล์อย่างง่ายและวิธีรับไฟล์ไปยังโฮสต์เมื่อสิ่งที่คุณมีคือซีเรียลคอนโซล สำหรับความเป็นไปได้มากขึ้น
desktop.jpgจากอุปกรณ์ไปยังพีซีของคุณด้วยวิธี netcat / nc:บนพีซีของคุณปิดการใช้งานชั่วคราว (หรือกำหนดค่าใหม่ถ้าเป็นไปได้) ไฟร์วอลล์ใด ๆ และเรียกใช้
netcat -l -p 10000 > desktop.jpg
และบนอุปกรณ์
busybox nc A.B.C.D -p 10000 < desktop.jpg
ที่คุณต้องการแทนที่ ABCD ด้วยที่อยู่ IP ของพีซีของคุณ ทันทีที่การถ่ายโอนสำเร็จกระบวนการ netcat บนพีซีของคุณควรหยุดโดยอัตโนมัติ ถ้าไม่เป็นอย่างนั้นคุณก็สามารถหยุดมันได้Ctrl+C
สำหรับทิศทางอื่นเพียงแค่แลกเปลี่ยน<และ>ทั้งสองด้าน ทำสำเนาสำรองของต้นฉบับก่อนdesktop.jpg( cp desktop.jpg desktop_orig.jpg)
szเพื่อส่งไฟล์ผ่านเทอร์มินัล คุณจะต้องใช้ทั้งสองด้าน
                    ฉันไม่มี ssh หรือ ftp (หรืออื่น ๆ ) บนอุปกรณ์
ดังนั้นฉันทำต่อไป:
telnet a.b.c.d | tee telnet.logcat file.txttelnet.logจากถังขยะควรเขียนยูทิลิตี้เพื่อดาวน์โหลด / อัพโหลดไฟล์ทาง telnet
ลองด้วยrcpคำสั่ง
ใช้man rcpสำหรับข้อมูลเพิ่มเติมในกรณีที่คุณต้องการโอนเงินอัตโนมัติ
โดยวิธีการที่คุณรู้ว่านี้ไม่ปลอดภัยมากใช่มั้ย
ฉันเพิ่งอัปโหลดไฟล์เฟิร์มแวร์ ~ 7 Kb ไปยังระบบฝังตัวบน Linux BusyBox ผ่านพอร์ตอนุกรม
ไม่มีเครือข่ายไม่มีการถ่ายโอนไฟล์ ไม่มี Base64 utils หรือสิ่งใดที่เป็นประโยชน์ในระยะไกลบนอุปกรณ์
ในโฮสต์ฉันเข้ารหัสเฟิร์มแวร์ในรูปแบบดังต่อไปนี้ ชนิดของ hex-dump ที่ประกอบด้วยเชลล์ตัวอักษรรวมกับprintfคำสั่ง:
printf "\xDE\xAD\xBE\xEF\x...\xF0"
printf "\xCA\xFE\x33\xE1\x...\xD3"
โดยทั่วไปแล้วprintfคำสั่งเชลล์ที่มี\xลำดับเอสเคปที่printfตีความ บนอุปกรณ์ที่ฉันทำ:
device $ cat > firmware.sh
จากนั้นใช้minicomไฟล์ ASCII ของ send ( Ctrl-AS) เพื่อส่งไฟล์นี้ไปยังโฮสต์ ฉันสามารถใช้การคัดลอกและวางได้เนื่องจากปริมาณข้อมูลมีน้อย
จากนั้นทำเครื่องหมายปฏิบัติการและเรียกใช้printfสคริปต์:
device $ chmod a+x firmware.sh
device $ ./firmware.sh > firmware.bin
ตรวจสอบโดยใช้ BusyBox md5sumว่าการfirmware.binตรวจสอบบนอุปกรณ์ตรงกับภาพเฟิร์มแวร์เดิมบนโฮสต์
PS รูปแบบเชลล์อัญประกาศคู่ส่งผ่าน\xคำต่อคำเพราะมันไม่ใช่ลำดับ escape ที่รู้จัก ดังนั้นเราไม่ต้องเพิ่มแบ็กสแลชเป็นสองเท่า
@jofel และคนอื่น ๆ ขอบคุณมากสำหรับความช่วยเหลือของคุณ ฉันคิดว่าอุปกรณ์มีการติดตั้งระบบปฏิบัติการที่กำหนดเองเพราะมันรู้จักบางคำสั่ง linux เฉพาะ อุปกรณ์ไม่รู้จัก netcat อย่างไรก็ตามวันนี้ฉันประสบความสำเร็จในการถ่ายโอนไฟล์โดยใช้คำสั่ง tftp ฉันแทนที่ไฟล์ desktop.jpg ได้สำเร็จด้วยคำสั่งนี้ สิ่งที่ฉันทำคือสร้างเซิร์ฟเวอร์ tftp บนระบบหน้าต่าง เข้าสู่ระบบผ่าน telnet บนอุปกรณ์และเรียกใช้คำสั่งเหล่านี้:
ดาวน์โหลดไฟล์ tftp -l -p tftp -l desktop.jpg - 192.168.0.249 69
อัปโหลดไฟล์ tftp -l desktop.jpg -g 192.168.0.249 69
ฉันได้ทำตอนนี้โดยวิธีการเหล่านี้:
สร้างเซิร์ฟเวอร์ ftp (โดยการติดตั้ง solerwinds) บนระบบหน้าต่าง เข้าสู่ระบบผ่าน telnet บนอุปกรณ์และเรียกใช้คำสั่งเหล่านี้:
วิธีดาวน์โหลดไฟล์:
tftp -l <FileName> -p <TFTP Server IP> <Port No of TFTP>
ตัวอย่าง:
tftp -l desktop.jpg -p 192.168.0.249 69
หรือเพื่ออัพโหลดไฟล์:
tftp -l <FileName> -g <TFTP Server IP> <Port No of TFTP>
ตัวอย่าง:
tftp -l desktop.jpg -g 192.168.0.249 69
ตำแหน่งเริ่มต้นของไฟล์ tftp คือ C:\TFTP-Root
ฉันใช้วิธีการต่อไปนี้เพื่อดาวน์โหลดไฟล์ไบนารีขนาดเล็กผ่าน telnet ลงในกล่อง windows ของฉัน:
busybox --helpและls -l /binและls -l /usr/binได้โปรด