rabbit5455 发表于 2007-4-24 07:56:25

DLINK-DSL500-BusyBox - tftp功能

前几天对ADSL-DLINK500做了初步的分析,这次重点放在ADSL内部的linux系统上,
用ps -ef查看后可以看到很多服务进程:
# ps -ef
PIDUid   VmSize Stat Command
    1 root       1272 S    init
    2 root            S   
    3 root            R   
    4 root            S   
    5 root            S   
    6 root            S   
    7 root            S   
   32 root       1168 S    /usr/sbin/thttpd -d /usr/www -u root -p 80 -c /cgi-b
   33 root       1784 S    /usr/bin/cm_pc
   35 root       1272 S    init
   36 root       2864 S    /usr/bin/cm_logic -m /dev/ticfg -c /etc/config.xml
   37 root       1280 S    /usr/bin/cm_monitor
   48 root      632 S    /sbin/dproxy -c /etc/resolv.conf -d
   99 root      672 S    /usr/sbin/udhcpd /var/tmp/udhcpd.conf
101 root       2340 S    /usr/sbin/pppd plugin pppoe nas7 user ta1*****38@e p
121 root      616 S    /sbin/utelnetd
122 root       1276 S    -sh
124 root       1272 R    ps -ef
=============================================

我重点看了上面32,的两行,thttpd的现实被截断了,不过在/etc/init.d/rcS脚本中,
看到了这句话的完整内容:
/usr/sbin/thttpd -d /usr/www -u root -p 80 -c '/cgi-bin/*'
它指定web服务的主目录,端口和cgi脚本。

从cm_logic的帮助中看到它的用法:
cm_logic -h
      Prints this help message.

cm_logic -c /path/to/config.xml
      Uses XML file on a filesystem for configuration.

cm_logic -m /path/to/mtdblock/device -c /path/to/config.xml
      Uses raw MTD block for configuration. If MTD is corrupted, it will be po
pulated with XML file.

所以 /dev/ticfg 和 /etc/config.xml 的内容应该是一样的,我用cat命令查看了他们。
帮助的最后一行也有:如果ticfg出了意外,就用config.xml来重建ticfg。

===========================================

接下来看一下那个tftp的小东西,在/usr/bin中:
# cd /usr/bin
# ls
[         cm_logic    free      test      wget
cm_cli      cm_monitorid          tftp      whoami
cm_convertcm_pc       passwd      tty         yes
=============================================
我们知道,tftp是一个非常简单的文件传输协议,一般只有上传和下载功能,
不可以列出目录,但对于嵌入式linux的开发,确实非常优秀的工具。
我从网上找了个Cisco TFTP Server V1.1 汉化版.rar,设定好主目录,
在里面放了个xuhua.txt,内容是“xuhua, tftp succ ...”。

这样windows2003上
就开启了tftp服务,回到ADSL的telnet界面,测试一下tftp的get(上传)命令:
# tftp -g -l /var/xuhua.txt -r xuhua.txt 192.168.1.13
# cat /car/xuhua.txt
xuhua, tftp succ ...
==============================
再测试一下put上传命令,我把/etc/init.d/rcS传到我的本本上:
# tftp -p -l /etc/init.d/rcS -r rcS 192.168.1.13

在Cisco TFTP Server 指定的根目录中找到rcS,用记事本打开:
摘录部分内容:
==============================================
#! /bin/sh
#
# rcS         Call all S??* scripts in /etc/rcS.d in
#               numerical/alphabetical order.
#
# Version:      @(#)/etc/init.d/[email protected]
#
trap "" SIGHUP

PATH=/sbin:/bin:/usr/sbin:/usr/bin
runlevel=S
prevlevel=N
umask 022
export PATH runlevel prevlevel
....
....(省略)
....
# UPnP requires loopback
ifconfig lo 127.0.0.1

/usr/sbin/thttpd -d /usr/www -u root -p 80 -c '/cgi-bin/*'
/usr/bin/cm_pc > /dev/tts/0 &
================================================
这样我们就可以和ADSL进行数据交换了,让我看看/etc里面的内容:
# ls /etc -a
.nautilus-metafile.xmlhost.conf               resolv.conf
config.xml            hosts                   securetty
dproxy.conf             init.d                  services
dropbear                inittab               shadow
firewall_start          led.conf                shells
firewall_stop         linux-igd               strings.xml
flush_firewall          passwd                  sysdef.xml
fstab                   ppp                     udhcpc
gateways                progdefs.xml            udhcpd.conf
group                   protocols               versions
===========================================
看到了不少conf和xml吧,我认为有必要把它们tftp -p 到咱们的pc上
好好研究一下, 。。。
页: [1]
查看完整版本: DLINK-DSL500-BusyBox - tftp功能