내가 시도한 것들

내가 시도한 것들

장치를 성공적으로 루팅했으며 장치를 분석하고 리버스 엔지니어링하기 위해 전체 파일 시스템을 덤프하고 싶습니다.

이 장치는 다음과 같이 주장합니다 Linux 2.6.31 mips GNU/Linux. 네트워크를 통해 셸 인터페이스에 액세스할 수 있으며 포트에 텔넷을 연결하기만 하면 됩니다.

장치에서 전체 파일 시스템을 덤프하려면 어떻게 해야 합니까?

내가 시도한 것들

  • DD: 거의 불가능합니다. df -h파일 시스템이 48% 사용되었고 dd미러는 이를 98%까지 사용한다고 가정해 보겠습니다. 공간이 부족하여 벽돌이 될 수 있습니까?
  • Rsync: 이것이 가장 좋은 옵션인 것 같지만, 내가 아는 한 rsync는 내부적으로 ssh를 사용하지만 장치에 ssh가 없으므로 포트를 열면 셸로 이동합니다. 이와 같은 인수는 [email protected]:23:/포트( ssh: connect to host 192.168.3.10 port 22: Connection refused)를 무시하는 것 같습니다. rsync바이너리가 장치에 존재하지 않습니다.

고려해야 할 사항

  • 파일 시스템은 정확히 동일하게 유지되어야 합니다. 이는 기호 링크도 현재 가리키는 위치를 가리켜야 함을 의미합니다.

답변1

네트워크를 통해 데이터를 얻는 가장 간단한 방법은 TCP 연결을 사용하여 데이터를 파이프하는 것입니다 nc. 원하는 복제본의 정확성에 따라 여기서 "데이터"는 다음 중 하나를 의미할 수 있습니다.

  • 전체 블록 장치(파일 시스템의 전체 블록 수준 이미지): cat /dev/sda |또는 cat /dev/mtdblocksomething |(예, 이것은 다른 옵션과의 일관성을 위해 여기에서 사용된 cat의 쓸모없는 사용입니다. 자유롭게 로 바꾸십시오 < /dev/sda.)
  • 파일/디렉토리/링크/등만: tar -c / |(아마도 --one-file-system)

파이프 뒤에 오는 내용은 장치에서 컴퓨터로 또는 그 반대로 TCP 연결을 설정할 수 있는지 여부에 따라 다릅니다. 예를 들어:

  • nc -l -p someport > deviceimage.tar당신의 컴퓨터에서
  • tar -c / | nc yourmachine someport기기에서

장치에만 연결할 수 있고 장치에서 연결할 수 없는 경우 nc -l및 을 바꾸십시오 nc.

파일 시스템을 먼저 정지하지 않고 실행 중인 시스템을 복제하면 복제 프로세스 중에 쓰기가 발생할 경우 스냅샷이 일관되지 않을 수 있습니다. 전체 블록 장치를 복제할 때 상황은 더욱 악화될 수 있습니다(불일치로 인해 복제의 파일 시스템이 손상될 수 있음). 장치가 약간 사용량이 많은 경우 kill -STOP가능하면 중지()를 고려하십시오.

관련 정보