| BBルータ解剖 |
|
| IO-DATA WN-AG/C |
|
実はルータではなく「イーサネットコンバーター」です。解析が終わったときに 気がつきました。デザインは個人的に好きなほうです。法人向けを 意識しているのか、セキュリティ周りの設定が多いようです。2004.9.4 |
| CPU と OS |
|---|
ファームウェアを見ると、 Linux version 2.4.18-mips (root@Delis) (gcc version 2.95.4 20010319 (prerelease)) なので、 MIPS の CPU が搭載されているようです。それも、解凍すると現れるファイルは ramdisk.mipsel とあるので、リトルエンディアンだと思われます。 |
| アップデートファームの取り出し |
|---|
| ファームウェア : Ver.2.20 |
このページから Ver.1.01e05b の ファームウェアをダウンロードします。wnagc_f101e05b.exe ファイルを解凍すると AGC-101e05b.bin というファイルになります。このファイルからイメージファイルを 取り出します。dd コマンドにすると dd if=AGC-101e05b.bin of=image1 bs=1 skip=12420 count=3691637 です。このファイルサイズ 3691637 は 12420 バイト目の直前にバイナリで 28 54 75 と書かれています(16進です)。切り出したこのファイルは gzip 形式ですので、 解凍します。解凍したファイルを image2 とします。 image2 ファイル、形式は不明ですが Linux の kernel を含んでいたりします。 strings コマンドなどで見ると、色々とわかると思います。 さらに、このファイルからイメージファイルを取り出します。取り出します。 dd コマンドにすると dd if=image2 of=image3 bs=1 skip=1323008 count=3233069 です。この image3 も gzip 形式のファイルですので、解凍します。解凍しますと、 ramdisk.mipsel というファイルが取り出せます。このファイルは ext2 ファイルの 形式のようです。 [toyota@geonosis]% file ramdisk.mipsel ramdisk.mipsel: Linux rev 1.0 ext2 filesystem data そこで、 linux マシンでマウントをしてみました。以下、マウントをしたときの tree コマンドの結果です。
[toyota@kashyyyk]% tree
.
|-- bin
| |-- ash -> busybox
| |-- busybox
| |-- cat -> busybox
| |-- chmod -> busybox
| |-- cp -> busybox
| |-- df -> busybox
| |-- dmesg -> busybox
| |-- echo -> busybox
| |-- grep -> busybox
| |-- hostname -> busybox
| |-- kill -> busybox
| |-- ln -> busybox
| |-- ls -> busybox
| |-- mount -> busybox
| |-- pidof -> busybox
| |-- ping -> busybox
| |-- ps -> busybox
| |-- pwd -> busybox
| |-- rm -> busybox
| |-- sed -> busybox
| |-- sh -> busybox
| |-- sleep -> busybox
| `-- usleep -> busybox
|-- dev
| |-- console
| |-- i2c-0
| |-- i2c-1
| |-- mtd0
| |-- mtd1
| |-- mtd2
| |-- mtd3
| |-- mtdblock0
| |-- mtdblock1
| |-- mtdblock2
| |-- mtdblock3
| |-- mtdr0
| |-- mtdr1
| |-- mtdr2
| |-- mtdr3
| |-- null
| |-- nvram
| |-- ptyp0
| |-- ptyp1
| |-- ram -> ram1
| |-- ram0
| |-- ram1
| |-- ram2
| |-- ram3
| |-- stderr -> ../proc/self/fd/2
| |-- stdin -> ../proc/self/fd/0
| |-- stdout -> ../proc/self/fd/1
| |-- tty0
| |-- tty1
| |-- ttyS0
| |-- ttyS1
| |-- ttyp0
| |-- ttyp1
| `-- urandom
|-- etc
| |-- 1x
| |-- cfg_dft.conf
| |-- cgi_reboot.sh
| |-- fstab
| |-- host.conf
| |-- init.d
| |-- inittab
| |-- localtime
| |-- mime.types
| |-- rc.d
| | |-- init.d
| | | |-- dhcpd
| | | `-- runsyslog-noklogd.sh
| | `-- rcS
| |-- resolv.conf
| |-- services
| |-- snmp
| |-- sysconfig
| | `-- network-scripts
| | |-- ifdown
| | |-- ifup
| | `-- network-functions
| |-- syslog.conf
| `-- timezone
| |-- AFT.tz
| |-- AKST.tz
| |-- ALMT.tz
| |-- AST+.tz
| |-- AST.tz
| |-- AZOT.tz
| |-- BRT.tz
| |-- CET.tz
| |-- CSAT.tz
| |-- CST+.tz
| |-- CST.tz
| |-- EET.tz
| |-- EST+.tz
| |-- EST.tz
| |-- FNT.tz
| |-- GMT.tz
| |-- GST.tz
| |-- HST.tz
| |-- ICT.tz
| |-- IRT.tz
| |-- IST.tz
| |-- JST.tz
| |-- MAGT.tz
| |-- MHT.tz
| |-- MMT.tz
| |-- MST.tz
| |-- NST.tz
| |-- NZST.tz
| |-- PST.tz
| |-- SST.tz
| |-- TOT.tz
| `-- YEKT.tz
|-- lib
| |-- ld-2.2.5.so
| |-- ld-linux.so.1 -> ld-2.2.5.so
| |-- ld.so.1 -> ld-2.2.5.so
| |-- libc-2.2.5.so
| |-- libc.so.6 -> libc-2.2.5.so
| |-- libcrypto.so -> libcrypto.so.0
| |-- libcrypto.so.0 -> libcrypto.so.0.9.7
| |-- libcrypto.so.0.9.7
| |-- libdl-2.2.5.so
| |-- libdl.so.2 -> libdl-2.2.5.so
| |-- libgenErrchk.so -> libgenErrchk.so.0
| |-- libgenErrchk.so.0 -> libgenErrchk.so.0.0
| |-- libgenErrchk.so.0.0
| |-- libgenIpc.so -> libgenIpc.so.0
| |-- libgenIpc.so.0 -> libgenIpc.so.0.0
| |-- libgenIpc.so.0.0
| |-- libgenSysLog.so -> libgenSysLog.so.0
| |-- libgenSysLog.so.0
| |-- libgenTcm.so -> libgenTcm.so.0
| |-- libgenTcm.so.0 -> libgenTcm.so.0.0
| |-- libgenTcm.so.0.0
| |-- libm-2.2.5.so
| |-- libm.so.6 -> libm-2.2.5.so
| |-- libnss_dns-2.2.5.so
| |-- libnss_dns.so.2 -> libnss_dns-2.2.5.so
| |-- libprivcrypto.so -> libprivcrypto.so.0
| |-- libprivcrypto.so.0 -> libprivcrypto.so.0.0
| |-- libprivcrypto.so.0.0
| |-- libpthread-0.9.so
| |-- libpthread.so.0 -> libpthread-0.9.so
| |-- libresolv-2.2.5.so
| |-- libresolv.so.2 -> libresolv-2.2.5.so
| |-- libsnmp-0.4.2.6.so
| |-- libsnmp.so -> libsnmp-0.4.2.6.so
| |-- libssl.so -> libssl.so.0
| |-- libssl.so.0 -> libssl.so.0.9.7
| |-- libssl.so.0.9.7
| |-- libucdagent-0.4.2.6.so
| |-- libucdagent.so -> libucdagent-0.4.2.6.so
| |-- libucdmibs-0.4.2.6.so
| |-- libucdmibs.so -> libucdmibs-0.4.2.6.so
| |-- libupnp.so
| `-- modules
| |-- 2.4.18-mips
| | |-- ath_hal.o
| | |-- ath_pci.o
| | |-- eth.o
| | |-- flashapi.o
| | `-- wlan.o
| `-- modules -> /mnt/lib/modules
|-- linuxrc -> bin/busybox
|-- lost+found
|-- proc
|-- sbin
| |-- CLIX
| |-- CSPX
| |-- apfd
| |-- arp
| |-- arping
| |-- art
| |-- autoipd
| |-- brctl
| |-- csptest
| |-- dhcpcd
| |-- dhcpcrd
| |-- ifconfig -> ../bin/busybox
| |-- ifdown -> /etc/sysconfig/network-scripts/ifdown
| |-- ifup -> /etc/sysconfig/network-scripts/ifup
| |-- init -> ../bin/busybox
| |-- insmod -> ../bin/busybox
| |-- ip
| |-- ipcalc
| |-- iwconfig
| |-- iwpriv
| |-- linkevent
| |-- lsmod -> ../bin/busybox
| |-- mDNSPublish
| |-- mDNSResponder
| |-- nifd
| |-- ntpclient
| |-- ntpclientd
| |-- openssl
| |-- reboot -> ../bin/busybox
| |-- rmmod -> ../bin/busybox
| |-- route
| |-- snmpd
| |-- snmptrap
| |-- snmpwalk
| |-- synclient
| |-- syslogd
| |-- telnetd
| |-- thttpd
| |-- upnpd
| |-- wdog
| |-- wpa_supplicant
| `-- xsupplicant
|-- tmp
|-- usr
| |-- bin
| | |-- [ -> ../../bin/busybox
| | |-- basename -> ../../bin/busybox
| | |-- cut -> ../../bin/busybox
| | |-- free -> ../../bin/busybox
| | |-- killall -> ../../bin/busybox
| | |-- test -> ../../bin/busybox
| | `-- tftp -> ../../bin/busybox
| `-- local
| `-- share
| `-- snmp
| `-- mibs
| |-- RFC1155-SMI.txt
| `-- RFC1213-MIB.txt
`-- var
|-- log
|-- run
|-- state
| `-- dhcp
|-- syslog
| |-- msg_clog.idx
| |-- msg_clog.msg
| |-- msg_eng.idx
| |-- msg_eng.msg
| |-- msg_jpn.idx
| |-- msg_jpn.msg
| |-- msg_log.idx
| `-- msg_log.msg
`-- www
|-- html
| |-- cacfg.cgi
| |-- eadesc.skl
| |-- help.htm
| |-- ie1
| | |-- add.gif
| | |-- apply.gif
| | |-- as_btm.gif
| | |-- as_tit.gif
| | |-- associate.gif
| | |-- back.gif
| | |-- ball-none.gif
| | |-- ball.gif
| | |-- bar.gif
| | |-- bar1.gif
| | |-- barinf.gif
| | |-- bg_ln.gif
| | |-- bg_ln1.gif
| | |-- default.gif
| | |-- dele.gif
| | |-- dhcp_s.gif
| | |-- dhcp_t.gif
| | |-- di01a.gif
| | |-- di01b.gif
| | |-- di02a.gif
| | |-- di02b.gif
| | |-- di03a.gif
| | |-- di03b.gif
| | |-- di04a.gif
| | |-- di04b.gif
| | |-- di05a.gif
| | |-- di05b.gif
| | |-- di_bg.gif
| | |-- di_btm.gif
| | |-- di_top.gif
| | |-- dv_btm.gif
| | |-- dv_inf1.gif
| | |-- dv_tit.gif
| | |-- finish.gif
| | |-- generate.gif
| | |-- help.gif
| | |-- help_1.jpg
| | |-- help_2.gif
| | |-- help_3.gif
| | |-- help_4.gif
| | |-- help_5.gif
| | |-- help_6.gif
| | |-- help_7.gif
| | |-- help_8.gif
| | |-- home.gif
| | |-- import.gif
| | |-- index_1.jpg
| | |-- index_2.gif
| | |-- index_3.gif
| | |-- index_4.jpg
| | |-- index_5.jpg
| | |-- index_6.jpg
| | |-- index_7.jpg
| | |-- index_8.jpg
| | |-- index_9.jpg
| | |-- logon.gif
| | |-- next.gif
| | |-- refresh.gif
| | |-- restore.gif
| | |-- saveto.gif
| | |-- si01a.gif
| | |-- si01b.gif
| | |-- si02a.gif
| | |-- si02b.gif
| | |-- si03a.gif
| | |-- si03b.gif
| | |-- si04a.gif
| | |-- si04b.gif
| | |-- si05a.gif
| | |-- si05b.gif
| | |-- si06a.gif
| | |-- si06b.gif
| | |-- si07a.gif
| | |-- si07b.gif
| | |-- si08a.gif
| | |-- si08b.gif
| | |-- sp_btm.gif
| | |-- sp_tit.gif
| | |-- spi01a.gif
| | |-- spi01b.gif
| | |-- spi03a.gif
| | |-- spi03b.gif
| | |-- spi04a.gif
| | |-- spi04b.gif
| | |-- spi05a.gif
| | |-- spi05b.gif
| | |-- syslog.gif
| | |-- ti01a.gif
| | |-- ti01b.gif
| | |-- ti02a.gif
| | |-- ti02b.gif
| | |-- ti03a.gif
| | |-- ti03b.gif
| | |-- ti04a.gif
| | |-- ti04b.gif
| | |-- tl_btm.gif
| | |-- tl_tit.gif
| | |-- top_1.jpg
| | |-- top_10.gif
| | |-- top_2.jpg
| | |-- top_3.gif
| | |-- top_3a.gif
| | |-- top_4.gif
| | |-- top_4a.gif
| | |-- top_5.gif
| | |-- top_5a.gif
| | |-- top_6.gif
| | |-- top_6a.gif
| | |-- top_7.gif
| | |-- top_7a.gif
| | |-- top_8.jpg
| | |-- top_9.gif
| | |-- upgrade.gif
| | `-- yes.gif
| |-- index.htm
| |-- infoSCPD.xml
| |-- setup.cgi
| |-- txtcfg.cgi
| |-- upload.cgi
| `-- vssver.scc
`-- template_cei-1
|-- adv_opmode.htm
|-- adv_passwd.htm
|-- adv_snmp.htm
|-- adv_sysmon.htm
|-- adv_wireless.htm
|-- index.htm
|-- login.htm
|-- sts_bridgetbl.htm
|-- sts_sitesvy.htm
|-- sts_syslog.htm
|-- tool_default.htm
|-- tool_reboot.htm
|-- tool_texcon.htm
|-- tool_upgrade.htm
|-- wiz_devip.htm
|-- wiz_save.htm
|-- wiz_time.htm
`-- wiz_wireless.htm
34 directories, 354 files
面白そうなファイルはなさそうです。念のため、アーキテクチャと busybox の
バージョンを確認してみました。
[toyota@kashyyyk]% file busybox
busybox: ELF 32-bit MSB MIPS-I executable, MIPS, version 1 (SYSV), for GNU/Linux
2.4.18, dynamically linked (uses shared libs), stripped
[toyota@kashyyyk]% strings busybox | grep BusyBox
BusyBox v0.60.5 (2004.08.16-12:21+0000) Built-in shell (ash)
BusyBox is a multi-call binary that combines many common Unix
link to busybox for each function they wish to use, and BusyBox
BusyBox v0.60.5 (2004.08.13-06:30+0000) multi-call binary
だそうです。
|
|
|