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だそうです。 |
|