私はデバイスを正常にルーティングし、デバイスを分析してリバースエンジニアリングするためにファイルシステム全体をダンプしたいと思います。
この装置は次のように主張しますLinux 2.6.31 mips GNU/Linux
。ネットワーク経由でシェルインターフェイスにアクセスでき、ポートにTelnetを接続するだけです。
デバイスからファイルシステム全体をダンプするにはどうすればよいですか?
私が試したこと
- 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
停止()を検討してください。