출석 장치가 실행 중 Linux OS
입니다. 텔넷 세션을 통해이 장치를 연결할 수 있습니다. 장치에 새 파일로 다운로드하여 업로드하려는 파일이 있습니다. 어떻게해야합니까? Linux OS에 대한 지식이 매우 부족합니다. 도와 주시겠습니까?
출석 장치가 실행 중 Linux OS
입니다. 텔넷 세션을 통해이 장치를 연결할 수 있습니다. 장치에 새 파일로 다운로드하여 업로드하려는 파일이 있습니다. 어떻게해야합니까? Linux OS에 대한 지식이 매우 부족합니다. 도와 주시겠습니까?
답변:
이것은 어떤 도구가 클라이언트 장치에 설치 / 커널에 의해 지원되는지에 달려 있습니다.
파일 전송을위한 가능한 방법 (순서가없는) :
netcat
또는 간단한 TCP 연결을 통해socat
bash
wget
또는 curl
웹 서버에서 업로드 / 다운로드직렬 콘솔 만 있으면 간단한 파일 전송 및 호스트로 파일을 가져 오는 방법을 읽으십시오 . 더 많은 가능성을 위해.
desktop.jpg
netcat / nc 방법을 사용하여 장치에서 PC로 복사 하십시오.PC에서 방화벽을 일시적으로 비활성화하거나 가능한 경우 재구성하십시오.
netcat -l -p 10000 > desktop.jpg
그리고 장치에서
busybox nc A.B.C.D -p 10000 < desktop.jpg
ABCD를 PC의 IP 주소로 바꿔야합니다. 전송이 완료되면 PC의 netcat 프로세스가 자동으로 중지됩니다. 그렇지 않은 경우, 무언가 잘못되었으므로 중지 할 수 있습니다Ctrl+C
다른 방향으로는 교환 <
하고 >
양쪽에 두십시오. 먼저 원본 desktop.jpg
( cp desktop.jpg desktop_orig.jpg
)을 백업하십시오 .
sz
터미널을 통해 파일을 보내는 데 사용할 수도 있습니다 . 양쪽에 필요합니다.
방금 시리얼 포트를 통해 ~ 7Kb 펌웨어 파일을 BusyBox 기반 Linux 임베디드 시스템에 업로드했습니다.
네트워킹, 파일 전송 유틸리티가 없습니다. Base64 유틸리티 또는 장치에서 원격으로 유용한 것은 없습니다.
호스트에서 펌웨어를 다음 형식으로 간단하게 인코딩했습니다. printf
명령 과 결합 된 쉘 리터럴로 구성된 일종의 16 진 덤프 :
printf "\xDE\xAD\xBE\xEF\x...\xF0"
printf "\xCA\xFE\x33\xE1\x...\xD3"
기본적으로 해석 printf
하는 \x
이스케이프 시퀀스가있는 쉘 명령 printf
. 장치에서 나는 :
device $ cat > firmware.sh
그런 다음 minicom
ASCII 파일 전송 ( Ctrl-AS)을 사용하여이 파일을 호스트로 전송했습니다. 데이터 양이 적기 때문에 복사하여 붙여 넣기를 사용했을 수 있습니다.
그런 다음 실행 파일을 표시하고 printf
스크립트를 실행하십시오 .
device $ chmod a+x firmware.sh
device $ ./firmware.sh > firmware.bin
BusyBox를 사용 하여 장치 md5sum
의 firmware.bin
체크섬이 호스트의 원래 펌웨어 이미지와 일치 하는지 확인했습니다 .
PS 셸 큰 따옴표 구문은 \x
인식 된 이스케이프 시퀀스가 아니기 때문에 그대로 사용됩니다. 따라서 백 슬래시를 두 배로 늘릴 필요가 없습니다.
@jofel 및 다른 모든 사람들, 당신의 친절한 지원에 대단히 감사합니다. 특정 Linux 명령 만 인식하므로 장치에 맞춤형 OS가 설치되어 있다고 생각합니다. 장치가 netcat을 인식하지 못합니다. 그러나 오늘 나는 tftp 명령을 사용하여 파일을 성공적으로 전송했습니다. desktop.jpg 파일을이 명령으로 대체했습니다. 내가 한 것은 창 시스템에 tftp 서버를 만든 것입니다. 장치에서 텔넷을 통해 로그인하고 다음 명령을 실행하십시오.
파일 다운로드 tftp -l -p tftp -l desktop.jpg-192.168.0.249 69
파일 업로드 tftp -l desktop.jpg -g 192.168.0.249 69
나는 다음과 같은 방법 으로이 작업을 수행했습니다.
윈도우 시스템에 ftp 서버를 작성하십시오. 장치에서 텔넷을 통해 로그인하고 다음 명령을 실행하십시오.
파일을 다운로드하려면
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
다음 방법을 사용하여 텔넷을 통해 작은 바이너리 파일을 Windows 상자에 다운로드합니다.
busybox --help
와ls -l /bin
와ls -l /usr/bin
주세요.