*
  Мысли   Галерея   Проекты   Тексты  
  Мысли   Галерея   Проекты   Тексты  
Giver: D-link DSL-2640U  (2008-09-28 13:49:51)

Прогресс не стоит на месте, и WiFi входит в каждый дом, наконец он посетил и мой дом: приобрел PCMCIA карточку D-linl DWL-G650+ и роутер D-link DSL-2640U. Карточка поднялась без проблем, и двумя коммандами — «emerge acx wifi-radar; modprobe acx», ну и роутер тоже поднялся практически сразу. Вдоволь налазившись по Web-админке роутера наткнулся на лог, в котором увидел что ОС — линукс. «Интересно, что можно выжать из этой железяки?» — подумал я и попытался залогинится через ssh, и у меня это вышло:

[giver@xaero ~]% ssh admin@router
admin@router's password:
>

Замечательно, есть нормальная оболочка. Хотя нет, она далеко не нормальная, список допустимых комманд был очень ограничен, и большинство из них были предназначены только для админитрирования, и несколько информационных комманд, которые тоже не могли мне помочь:

help logout reboot adsl atm brctl cat ddns df dumpcfg echo ifconfig kill arp defaultgateway dhcpserver dns lan passwd ppp remoteaccess restoredefault route save swversion wan tr69c ping ps pwd sntp sysinfo tftp wlctl

Нет даже ls, не говоря уже о других составляющих coreutils. df показал что смонтированы три файловые системы: /dev/mtdblock0 обьемом 2.5 мегабайта, без свободного пространства в корень, /proc и tmpfs размером 320кб в /var, при этом наполовину полную. sysinfo показал 14мб общей памяти, меньше мегабайта свободной. На удачу попробовал cat /etc/fstab, и получил желаемый результат:

proc /proc proc defaults 0 0
tmpfs /var tmpfs size=320k 0 0
none /proc/bus/usb usbdevfs defaults 0 0

По каким-то причинам /proc/bus/usb смонтирована не была. Тогда я попытался прочитать стандартные файлы с информацией о системе из /proc: meminfo, cpuinfo, version, mounts, filesystems, /etc: fstab, passwd, group. Вот мои наблюдения: Система основана на процессоре BCM6348, который, как показал гугл построен на архитектуре MIPS32, и создан специально для роутеров. В системе было 4 пользователя, все имели uid 0, а также одна группа. Ядро поддерживало файловую систему sysfs но она не была смонтирована. Особо порадовала версия системы — Linux version (@) ().

Оболочка была крайне простая, не позволяла выполнять никакие синтаксические конструкции, но вот звездочки и вопросительные знаки раскрывала. Это дало возможность просматривать структуру файлов и каталогов — echo /*. С помощью cat можно было читать и записывать файлы. После этого выяснилось, что в /bin, /usr/bin и /sbin обитает немало полезных программ:

> echo /bin/* /sbin/* /usr/bin/*
/bin/adsl /bin/adslctl /bin/atm /bin/atmctl /bin/bftpd /bin/brctl /bin/busybox /bin/cat /bin/cfm /bin/chmod /bin/date /bin/ddnsd
/bin/df /bin/dhcpc /bin/dhcpd /bin/dhcpr /bin/dmesg /bin/dnsprobe /bin/dumpmem /bin/ebtables /bin/echo /bin/epi_ttcp /bin/ethctl
/bin/false /bin/hotplug /bin/igmp /bin/iptables /bin/kill /bin/ln /bin/mkdir /bin/mount /bin/msh /bin/nas /bin/nas4not
/bin/netctl /bin/openssl /bin/ping /bin/pppd /bin/ps /bin/pvc2684ctl /bin/pvc2684d /bin/pwd /bin/reaim /bin/ripd /bin/rm
/bin/sendarp /bin/setmem /bin/sh /bin/snmp /bin/sntp /bin/sysinfo /bin/tftpd /bin/true /bin/udhcpd /binпо/upnp /bin/wlctl
/bin/zebra /sbin/ethctl /sbin/hotplug /sbin/ifconfig /sbin/init /sbin/insmod /sbin/klogd /sbin/logread /sbin/reboot /sbin/rmmod
/sbin/route /sbin/syslogd /sbin/vconfig /usr/bin/[ /usr/bin/expr /usr/bin/ftpget /usr/bin/ledctrl /usr/bin/logger /usr/bin/test /usr/bin/tftp /usr/bin/top /usr/bin/tty
> cat /etc/modules_install
#!/bin/sh
cd 
for f in *
do
    case $f in
    bcmatmtest.ko)
        echo "skip $f"
    ;;
    *.ko)
        insmod $f
        ;;
    *)
        {$form} $f
        ;;
    esac
done


Имя:
Комментарий: