TAXAN MeoBank SD ファームウェアの展開

TAXAN MeoBank SD

MeoBank SD の ファームウェアアップデータの構造がわかったので、 実際に展開してみる

一つ目のファイル

一つ目のファイルは、単にヘッダをスキップすればよい。
16バイト目以降を取り出す
yasunari@vl:/mnt/share/meobankSD_fw_20130110$ dd if=CWFB109-PXX-324-V253117CS4_20121210-Taxan-M1.bin of=/tmp/1st bs=16 skip=1
241017+1 records in
241017+1 records out
3856286 bytes (3.9 MB) copied, 1.71947 s, 2.2 MB/s
yasunari@vl:/mnt/share/meobankSD_fw_20130110$
このファイルは???
yasunari@vl:/mnt/share/meobankSD_fw_20130110$ file /tmp/1st
/tmp/1st: bzip2 compressed data, block size = 900k
yasunari@vl:/mnt/share/meobankSD_fw_20130110$
bzip2 で圧縮されたファイル。
復元する
yasunari@vl:/mnt/share/meobankSD_fw_20130110$ bunzip2 /tmp/1st
bunzip2: Can't guess original name for /tmp/1st -- using /tmp/1st.out

bunzip2: /tmp/1st: trailing garbage after EOF ignored
yasunari@vl:/mnt/share/meobankSD_fw_20130110$
後ろにゴミが付いているので、無視されているが、まぁ、問題なし。
このファイルは、、
yasunari@vl:/mnt/share/meobankSD_fw_20130110$ file /tmp/1st.out
/tmp/1st.out: HTML document text
yasunari@vl:/mnt/share/meobankSD_fw_20130110$
HTML document。
yasunari@vl:/mnt/share/meobankSD_fw_20130110$ less /tmp/1st.out
"/tmp/1st.out" may be a binary file.  See it anyway?
ntp.asp^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^\^R<h
tml>
<! Copyright (c)   , 2004. All Rights Reserved. ->
<head>
<meta http-equiv="Content-Type" content="text/html">
<title>Time Zone Setting</title>
<script type="text/javascript" src="util_gw.js"> </script>
<script>
	:
	:

2つ目のファイル

一つ目のファイルのサイズをスキップして取り出す。
一つ目のファイルのサイズは、、、、
yasunari@vl:/mnt/share/meobankSD_fw_20130110$ od -xc CWFB109-PXX-324-V253117CS4_20121210-Taxan-M1.bin |head -2
0000000    3677    6763    0100    0000    0100    0000    0200    7e51
          w   6   c   g  \0 001  \0  \0  \0 001  \0  \0  \0 002   Q   ~
yasunari@vl:/mnt/share/meobankSD_fw_20130110$
0200 7e51 -> 0x02517e=151934 バイト + ヘッダの 16 バイトをスキップする
yasunari@vl:/mnt/share/meobankSD_fw_20130110$ dd if=CWFB109-PXX-324-V253117CS4_20121210-Taxan-M1.bin of=/tmp/2nd bs=151950
skip=1
24+1 records in
24+1 records out
3704352 bytes (3.7 MB) copied, 0.0411669 s, 90.0 MB/s
yasunari@vl:/mnt/share/meobankSD_fw_20130110$ od -xc /tmp/2nd |head
0000000    7263    6336    5080    0000    0300    0080    0f00    0284
          c   r   6   c 200   P  \0  \0  \0 003 200  \0  \0 017 204 002
0000020    0000    0000    0000    2180    9040    0060    0000    0000
         \0  \0  \0  \0  \0  \0 200   !   @ 220   `  \0  \0  \0  \0  \0
0000040    0000    0000    0000    0000    103c    6080    1026    0084
         \0  \0  \0  \0  \0  \0  \0  \0   < 020 200   `   & 020 204  \0
0000060    113c    6080    3126    580c    0002    2140    00ad    0000
          < 021 200   `   &   1  \f   X 002  \0   @   ! 255  \0  \0  \0
0000100    0821    0400    1115    fdff    0000    0000    2002    2140
          !  \b  \0 004 025 021 377 375  \0  \0  \0  \0 002       @   !
yasunari@vl:/mnt/share/meobankSD_fw_20130110$
cr6c は
#define FW_HEADER_WITH_ROOT	((char *)"cr6c")
更にヘッダよりあと(151950 + 16)を取り出す
yasunari@vl:/mnt/share/meobankSD_fw_20130110$ dd if=CWFB109-PXX-324-V253117CS4_20121210-Taxan-M1.bin of=/tmp/2nd bs=151966
skip=1
24+1 records in
24+1 records out
3704336 bytes (3.7 MB) copied, 0.0433756 s, 85.4 MB/s
yasunari@vl:/mnt/share/meobankSD_fw_20130110$ file /tmp/2nd
/tmp/2nd: data
yasunari@vl:/mnt/share/meobankSD_fw_20130110$
ふがー。。。。

3つ目のファイル

更に 0xf8402 バイト目以降を取り出す
yasunari@vl:/mnt/share/meobankSD_fw_20130110$ dd if=CWFB109-PXX-324-V253117CS4_20121210-Taxan-M1.bin of=/tmp/3rd bs=1168800
 skip=1
2+1 records in
2+1 records out
2687502 bytes (2.7 MB) copied, 0.0284962 s, 94.3 MB/s
yasunari@vl:/mnt/share/meobankSD_fw_20130110$ od -xc /tmp/3rd |head
0000000    3672    7263    2d00    0000    1500    0000    2900    fe01
          r   6   c   r  \0   -  \0  \0  \0 025  \0  \0  \0   ) 001 376
0000020    7368    7371    01f9    0000    2800    7cff    0000    0002
          h   s   q   s 371 001  \0  \0  \0   ( 377   |  \0  \0 002  \0
0000040    0015    0000    0002    0011    00e0    0002    0004    0000
        025  \0  \0  \0 002  \0 021  \0 340  \0 002  \0 004  \0  \0  \0
0000060    1874    05d2    0000    0000    01fc    0029    0000    0000
          t 030 322 005  \0  \0  \0  \0 374 001   )  \0  \0  \0  \0  \0
0000100    01f4    0029    0000    0000    ffff    ffff    ffff    ffff
        364 001   )  \0  \0  \0  \0  \0 377 377 377 377 377 377 377 377
yasunari@vl:/mnt/share/meobankSD_fw_20130110$
r6cr は、
#define ROOT_HEADER			((char *)"r6cr")
ヘッダより後を取り出す
yasunari@vl:/mnt/share/meobankSD_fw_20130110$ dd if=CWFB109-PXX-324-V253117CS4_20121210-Taxan-M1.bin of=/tmp/3rd bs=1168816 skip=1
2+1 records in
2+1 records out
2687486 bytes (2.7 MB) copied, 0.0415654 s, 64.7 MB/s
yasunari@vl:/mnt/share/meobankSD_fw_20130110$
このファイルは、、、
yasunari@vl:/mnt/share/meobankSD_fw_20130110$ file /tmp/3rd
/tmp/3rd: Squashfs filesystem, little endian, version 4.0, 686213119 bytes, 505 inodes, blocksize: 0 bytes, created: Mon Oct 21 06:58:24 1991
yasunari@vl:/mnt/share/meobankSD_fw_20130110$
SquashFS filesystem ってどうやってマウントするの???


TAXAN MeoBank SD ファームウェアの構造
山下康成の
きばらないブログ

MeoBankSD をハックしよう!開設

ツイート Tweet to @yasunari_y @yasunari_yをフォロー

Copyright (C) 2003-2017 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp 山下康成@京都府向日市