« CQW-MRB: Willcom NS001U(RX420IN)使用時の不満を改善 | トップページ | CQW-MRB2: シリアルポート接続 »

2013年1月16日 (水)

CQW-MRB2: ファームウェアv1.02からファイルシステムを取り出す

CQW-MRB2のファームウェアV1.02からromfsを取り出してみる。CQW-MRBと同じ手法が使えそうだ。

ファームウェアは次の構造になっているとアタリを付ける。

  1. Linuxカーネルイメージ
  2. ファイルシステム:squashfsで圧縮されている
  3. チェックサム:2バイト

まず3.は最後の2バイトで決めうちで良いだろう。
次に1.と2.の境界を探すため、ファームウェアcqw-mrb2_v1.02.binをバイナリエディタなどで開いて文字列"hsqs"を探す。これはsquashfsを示すヘッダ"sqsh"を逆順にしたもの。ここから後ろがsquashfsで圧縮されたファイルシステムと思われる。

Cqwmrb2_v102hsqs

0x110000(16進)=1114112(10進)。あとはddなどで分割すればよい。


# dd if=cqw-mrb2_v1.02.bin of=header.img bs=1114112 count=1
1+0 records in
1+0 records out
# dd if=cqw-mrb2_v1.02.bin of=body.img skip=1114112 bs=1 count=3526656
3526656+0 records in
3526656+0 records out
# dd if=cqw-mrb2_v1.02.bin of=footer.img skip=4640768 bs=1 count=2
2+0 records in
2+0 records out
# ll
total 9108
-rw-r--r-- 1 root root 3526656 2013-01-15 22:16 body.img
-rw-r--r-- 1 root root 4640770 2013-01-15 22:08 cqw-mrb2_v1.02.bin
-rw-r--r-- 1 root root       2 2013-01-15 22:16 footer.img
-rw-r--r-- 1 root root 1114112 2013-01-15 22:13 header.img

このbody.imgをunsquashfsツールで解凍する。squashfsは4.0が必要なようだ。


# file body.img
body.img: Squashfs filesystem, little endian, version 4.0, 898609919 bytes, 720 inodes, blocksize: 0 bytes, created: Mon Aug  3 13:13:52 1998

本家squashfsからダウンロードしても良いが、Edimaxの3G6218Nの製品ページからGPL Source Codeがダウンロードできる。それをビルドするとsquashfs-tools 4.0が入っているので、今回はそれを使ってみる。


# /home/RTL8196C_GPL/AP/mkimg/squashfs4.0/squashfs-tools/unsquashfs body.img
Parallel unsquashfs: Using 1 processor
681 inodes (733 blocks) to write
[=========================================================================================================================================|] 733/733 100%
created 497 files
created 39 directories
created 111 symlinks
created 73 devices
created 0 fifos
# ll
total 9116
-rw-r--r--  1 root root 3526656 2013-01-15 22:16 body.img
-rw-r--r--  1 root root 4640770 2013-01-15 22:08 cqw-mrb2_v1.02.bin
-rw-r--r--  1 root root       2 2013-01-15 22:16 footer.img
-rw-r--r--  1 root root 1114112 2013-01-15 22:13 header.img
drwxr-xr-x 13 root root    4096 2011-04-06 18:58 squashfs-root
# ll squashfs-root/
total 96
drwxr-xr-x 2 root root 4096 2011-04-06 18:58 bin
drwxr-xr-x 3 root root 4096 2011-04-06 18:58 dev
drwxr-xr-x 9 root root 4096 2011-04-06 18:58 etc
drwxr-xr-x 3 root root 4096 2011-04-06 18:58 lib
lrwxrwxrwx 1 root root   11 2013-01-15 22:21 linuxrc -> bin/busybox
drwxr-xr-x 2 root root 4096 2011-04-06 18:58 proc
drwxr-xr-x 2 root root 4096 2011-04-06 18:58 root
drwxr-xr-x 2 root root 4096 2011-04-06 18:58 sbin
drwxr-xr-x 2 root root 4096 2011-04-06 18:58 sys
lrwxrwxrwx 1 root root    4 2013-01-15 22:21 tmp -> /var
drwxr-xr-x 6 root root 4096 2011-04-06 18:58 usr
drwxr-xr-x 8 root root 4096 2011-04-06 18:58 var
drwxr-xr-x 3 root root 4096 2011-04-06 18:58 web

ファイルシステムを取り出すことが出来た。CQW-MRBとほとんど同じ構成に見える。
とりあえず今日はここまで。

« CQW-MRB: Willcom NS001U(RX420IN)使用時の不満を改善 | トップページ | CQW-MRB2: シリアルポート接続 »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/143173/56551450

この記事へのトラックバック一覧です: CQW-MRB2: ファームウェアv1.02からファイルシステムを取り出す:

« CQW-MRB: Willcom NS001U(RX420IN)使用時の不満を改善 | トップページ | CQW-MRB2: シリアルポート接続 »

最近のトラックバック

2017年4月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            
フォト
無料ブログはココログ