web-dev-qa-db-ja.com

'cat'を使用してブロックデバイスのクローンを作成します

カスタマイズされたLinuxファームウェアを実行しているルーターにtelnetで接続できます。 'buildroot'を使用してコンパイルされました。

私はルーターのいくつかの仕様を掘り下げることができました。今後の調査のために、ルーターのファームウェアのクローンを作成する予定です。 「dd」は使用できないため、catを使用して、netcatを使用してフラッシュドライブ(mtdblock0)のコンテンツ全体をPCにスローしてみました。

ルーター:

cat /dev/mtdblock0 | nc ip port

PC:

nc -lp port > routerFirmware

次に、PCで「binwalk」を使用してダウンロードしたファイルを調べました。結果は次のとおりです。

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             Squashfs filesystem, little endian, non-standard signature, version 4.0, compression:gzip, size: xxxxxxx bytes, xxx inodes, blocksize: xxxxxx bytes, created: xxxx-xx-xx xx:xx:xx

これまでのところ良さそうです。ただし、「#unsquashrouterFlash」の結果は次のようになります。

Can't find a SQUASHFS superblock on routerFlash

私が考える最も可能性の高い理由は、「cat」と「nc」が意図したとおりにフラッシュ全体のクローンを作成できないことです。私はここで立ち往生しています。どんな助けでもいただければ幸いです!

4
Fulcrum

「クローン作成」ステップは問題ではなかったことが判明しました。私のルーターベンダーは、非標準の「マジックナンバー」を使用してsquashfsシステムを作成していました。 sasquatch ショットを与えるようにアドバイスされました。幸い、sasquatchはファイルの圧縮やその他の詳細を正しく読み取り、理解しましたが、unsquashは正しくレポートしませんでした。

結果:PCにルーターファームウェアのレプリカがあり、必要に応じて調査および分析できます。これまでのところよさそうだ。

2
Fulcrum