uu8101 发表于 2012-3-21 01:22:05

中兴ZXV10 W300D全破解记录

本帖最后由 uu8101 于 2012-3-21 02:55 编辑

[缘由]
前不久装电信宽带,送了一个W300D的猫及iTV(中兴B700 V2A机顶盒),本来没什么问题的。但我家电视在客厅那边,而猫在客厅这边,电信工作人员给拖一根网线穿过客厅,很不爽。于是从taobao上买了个W200C的无线网卡,插上去。结果东也要密码,西也要密码,而电信工作人员死活不给,于是。。。自己动手,丰衣足食。感谢google,感谢internet,感谢贡献知识的人,让我能够一步步达到我的目标。而写这篇帖子的目的有二:一是因为我找了很久,没有找到专门针对W300D的破解,共享出来利己利人;二是留着存档,以后自己可以查阅。


插上无线网卡后,google之,共用密码6321,按网上搜索方法设置完毕,连接猫,居然连接不上,NND。于是再google之,找到超级用户密码,居然登陆成功了。进去之后,首先按其它教程将里面所有连接全部清空,再新建,其实就建立两个:一个internet和一个itv的桥接,主要是本地的VPI/VCI知道就OK。成都的internet是1/33,iTV是8/43。把SSID1绑定到iTV上,其它的绑定到internet上,再连接,iTV没问题了。but。。。笔记本和手机由于SSID1绑定到itv上了,这边连接不上了,怒!

[多开SSID]
因为W300D虽然支持4个SSID两个LAN,但4个SSID只开了一个。。。最先想通过网页去调整,用firefox+firebug将页面里面隐藏的元素显示出来,提交,虽然可以看到有设置SSID数量的地方,并且我手工加上了SSID2/3/4,提交后又复原了,NND。(PS:通过这种方法还是可以改SSID1的隐藏设置,比方说支持用户数,优先级等,可以提交成功)。[具体的firebug调整方法后面我会详述。]
没办法,好象除了TTL之外,无法了。taobao买了个usb-ttl小板,带快递费共16元,甚至我还买了个万用表,用来确定gnd/tx/rx针脚(网上没找着W300D的资料,自己摸索来,没办法)。到货后,开整:

[拆机]

小白猫还是很小巧可爱di...而且功能也很强大,但电信为毛要屏蔽掉它强大的功能呢?不解。。。

先拆螺丝,再拆机,注意卡子。

螺丝在标签下面

梅花螺丝拧下,注意卡子,拆开即可。

我用万用表确定的GND/TX/RX连线。因为不是学电子的,而且万用表也好多年没用过了,若有错误,请高手指正。

连接到usb-ttl小板。

[嵌入式linux]
我对linux还算熟悉,但嵌入式linux第一次用,好象限制不少唉。。。

电脑上用putty连接到com口,启动猫,root/root用户密码登陆之。。。

进来了。。。

先看一下cpu, mtd之类的信息

然后直奔主题进入/etc目录,可以看到db_default_cfg.xml就在那里,不来不去

我最先以为整个/etc目录是可写的,结果我错了,仔细研究了一下,整个/目录挂的文件系统是squashfs,好象不可写的,虽然我后面翻阅资料查到可以将/挂为rw,但还是写不进去东西,这是一个遗憾,因为不能写/etc,就不能更改rc和init.norm等启动文件,甚至连telnetd也开不起来(这个后面我再详说)

先tftp把配置文件弄到电脑上。用网线(无线也可以,只要你可以连接)把电脑接到猫上,在电脑上开tftp server,然后在putty终端输入
cd /etc
tftp -l ./db_default_cfg.xml -p 192.168.1.2
192.168.1.2是我电脑的ip

取回文件后,找个你习惯的编辑器打开。
-1. 如果你用那个通用的超级用户密码登陆不进去的话,这儿是机会了哈,打开文件后,搜索UserInfo,里面有超级用户和普通用户的用户名称和密码。。。        <Tbl name="UserInfo" RowCount="2">
                <Row No="0">
                        <DM name="ViewName" val="IGD.UserIF.UserInfo1"/>
                        <DM name="Type" val="1"/>
                        <DM name="Enable" val="1"/>
                        <DM name="Username" val="telecomadmin"/>
                        <DM name="Password" val="nE7jA%5m"/>
                        <DM name="Right" val="1"/>
                </Row>
                <Row No="1">
                        <DM name="ViewName" val="IGD.UserIF.UserInfo2"/>
                        <DM name="Type" val="1"/>
                        <DM name="Enable" val="1"/>
                        <DM name="Username" val="useradmin"/>
                        <DM name="Password" val="useradmin"/>
                        <DM name="Right" val="2"/>
                </Row>
        </Tbl>-2. 开多SSID,这个是我的目的。搜索SSID,很快就能找到相应的配置:

WLANBase是基本配置,对应于页面上的这个界面:

是不是觉得配置文件里面内容多了许多?其实页面上也存在,只是被隐藏了而已,后面用firebug可以看到。。
后面的WLANCfg就是对于每个SSID的配置了,共有四个,但只开了一个,我们把它们都打开。。。并且我很讨厌ChinaNet那个前缀,也删除之。。。至于后面的WPA密码什么的在这儿就不调整了,后面在页面上再改吧,更直观。        <Tbl name="WLANCfg" RowCount="4">
                <Row No="0">
                        <DM name="ViewName" val="IGD.LD1.WLAN1"/>
                        <DM name="LANDViewName" val="IGD.LD1"/>
                        <DM name="InstExist" val="1"/>
                        <DM name="Enable" val="1"/>
                        <DM name="ESSID" val="LiD1"/>
                        <DM name="ESSIDPrefix" val=""/>
                        <DM name="Priority" val="1"/>
                        <DM name="ACLPolicy" val="0"/>
                        <DM name="BeaconType" val="2"/>
                        <DM name="ESSIDHideEnable" val="0"/>
                        <DM name="BeaconEnabled" val="1"/>
                        <DM name="WEPAuthMode" val="2"/>
                        <DM name="WEPLevel" val="1"/>
                        <DM name="WEPKeyIndex" val="1"/>
                        <DM name="WPAEncryptType" val="1"/>
                        <DM name="WPAAuthMode" val="0"/>
                        <DM name="11iEncryptType" val="1"/>
                        <DM name="11iAuthMode" val="0"/>
                        <DM name="WPAGroupRekey" val="600"/>
                        <DM name="WPAEAPServerIp" val="192.168.1.1"/>
                        <DM name="WPAEAPSecret" val="12345678"/>
                        <DM name="MaxUserNum" val="32"/>
                        <DM name="VapIsolationEnable" val="0"/>
                        <DM name="BasicEncryptionModes" val="0"/>
                </Row>
                <Row No="1">
                        <DM name="ViewName" val="IGD.LD1.WLAN2"/>
                        <DM name="LANDViewName" val="IGD.LD1"/>
                        <DM name="InstExist" val="1"/>
                        <DM name="Enable" val="1"/>
                        <DM name="ESSID" val="LiD2"/>
                        <DM name="ESSIDPrefix" val=""/>
                        <DM name="Priority" val="1"/>
                        <DM name="ACLPolicy" val="0"/>
                        <DM name="BeaconType" val="2"/>
                        <DM name="ESSIDHideEnable" val="0"/>
                        <DM name="BeaconEnabled" val="1"/>
                        <DM name="WEPAuthMode" val="2"/>
                        <DM name="WEPLevel" val="1"/>
                        <DM name="WEPKeyIndex" val="1"/>
                        <DM name="WPAEncryptType" val="1"/>
                        <DM name="WPAAuthMode" val="0"/>
                        <DM name="11iEncryptType" val="1"/>
                        <DM name="11iAuthMode" val="0"/>
                        <DM name="WPAGroupRekey" val="600"/>
                        <DM name="WPAEAPServerIp" val="192.168.1.1"/>
                        <DM name="WPAEAPSecret" val="12345678"/>
                        <DM name="MaxUserNum" val="32"/>
                        <DM name="VapIsolationEnable" val="0"/>
                        <DM name="BasicEncryptionModes" val="0"/>
                </Row>
                <Row No="2">
                        <DM name="ViewName" val="IGD.LD1.WLAN3"/>
                        <DM name="LANDViewName" val="IGD.LD1"/>
                        <DM name="InstExist" val="1"/>
                        <DM name="Enable" val="1"/>
                        <DM name="ESSID" val="LiD3"/>
                        <DM name="ESSIDPrefix" val=""/>
                        <DM name="Priority" val="1"/>
                        <DM name="ACLPolicy" val="0"/>
                        <DM name="BeaconType" val="2"/>
                        <DM name="ESSIDHideEnable" val="0"/>
                        <DM name="BeaconEnabled" val="1"/>
                        <DM name="WEPAuthMode" val="2"/>
                        <DM name="WEPLevel" val="1"/>
                        <DM name="WEPKeyIndex" val="1"/>
                        <DM name="WPAEncryptType" val="1"/>
                        <DM name="WPAAuthMode" val="0"/>
                        <DM name="11iEncryptType" val="1"/>
                        <DM name="11iAuthMode" val="0"/>
                        <DM name="WPAGroupRekey" val="600"/>
                        <DM name="WPAEAPServerIp" val="192.168.1.1"/>
                        <DM name="WPAEAPSecret" val="12345678"/>
                        <DM name="MaxUserNum" val="32"/>
                        <DM name="VapIsolationEnable" val="0"/>
                        <DM name="BasicEncryptionModes" val="0"/>
                </Row>
                <Row No="3">
                        <DM name="ViewName" val="IGD.LD1.WLAN4"/>
                        <DM name="LANDViewName" val="IGD.LD1"/>
                        <DM name="InstExist" val="1"/>
                        <DM name="Enable" val="1"/>
                        <DM name="ESSID" val="LiD4"/>
                        <DM name="ESsidPrefix" val=""/>
                        <DM name="Priority" val="1"/>
                        <DM name="ACLPolicy" val="0"/>
                        <DM name="BeaconType" val="2"/>
                        <DM name="ESSIDHideEnable" val="0"/>
                        <DM name="BeaconEnabled" val="1"/>
                        <DM name="WEPAuthMode" val="2"/>
                        <DM name="WEPLevel" val="1"/>
                        <DM name="WEPKeyIndex" val="1"/>
                        <DM name="WPAEncryptType" val="1"/>
                        <DM name="WPAAuthMode" val="0"/>
                        <DM name="11iEncryptType" val="1"/>
                        <DM name="11iAuthMode" val="0"/>
                        <DM name="WPAGroupRekey" val="600"/>
                        <DM name="WPAEAPServerIp" val="192.168.1.1"/>
                        <DM name="WPAEAPSecret" val="12345678"/>
                        <DM name="MaxUserNum" val="32"/>
                        <DM name="VapIsolationEnable" val="0"/>
                        <DM name="BasicEncryptionModes" val="0"/>
                </Row>
        </Tbl>大概就这样吧,再通过tftp传上去。传之前需要先复制一份,名称为db_user_cfg.xml。在putty里面,执行如下命令:
cd /proc/cfg
tftp -r db_default_cfg.xml -g 192.168.1.2
tftp -r db_user_cfg.xml -g 192.168.1.2
reboot
重启。。。firefox用超级用户登陆192.168.1.1,发现tr069它们又回来了,那是因为默认配置里面这个没有修改,木关系,重做一遍就OK了。。。如果想简便,直接在配置文件里面搜索之改好就成。

成都的如上设置(自动拨号功能也加上了哈),其它地方的类似,注意调整自己的VPI/VCI就好。至于端口绑定看你自己兴趣,我把SSID4留给了iTV,其它的全绑定给了LAN和SSID1/2/3。下面开始整WLAN。。。



进入基本配置页面,打开firebug,选择查看页面代码,会发现很多style="display:none"的项,鼠标在style上点击右键,删除style,看看,对应的元素是否出来了?这样保存是会成功的。基本配置里面隐藏的东西大概有国家设置,还有一些什么阙值设置,搞不懂,明白的可以试一下。
SSID设置,这才是重头:

显示这个看看。。。

哈哈,SSID选择出来了,选择对应的SSID可以设置对应的SSID,但需要注意,选择后页面会刷新,这个项又会隐藏,木关系,再次firebug打开显示就可以了,设置的内容也会写到对应的SSID里面去(虽然有些标签名是SSID1,但只要SSID下拉框里面的值是对的就OK)。。。

这个页面隐藏的项有些还是有用的,比方说最大用户数,优先级等,自己试去。。。
你会问密码在哪儿设置呢,别急,下面就是:

和上一步一样,把SSID选择先调出来。。。选择对应的SSID就可以设置了。

貎似目的已经达到了。。

[问题及讨论]
1、telnet和FTP的问题        <Tbl name="FTPServerCfg" RowCount="1">
                <Row No="0">
                        <DM name="FtpEnable" val="1"/>
                        <DM name="ServerPort" val="21"/>
                        <DM name="WanIfEnable" val="0"/>
                        <DM name="FtpAnon" val="0"/>
                        <DM name="WanID0" val=""/>
                        <DM name="WanID1" val=""/>
                        <DM name="WanID2" val=""/>
                        <DM name="WanID3" val=""/>
                        <DM name="WanID4" val=""/>
                        <DM name="WanID5" val=""/>
                        <DM name="WanID6" val=""/>
                        <DM name="WanID7" val=""/>
                        <DM name="MaxClient" val="3"/>
                        <DM name="MaxPerIp" val="3"/>
                        <DM name="MaxRate" val="250000"/>
                </Row>
        </Tbl>
        <Tbl name="FTPUser" RowCount="1">
                <Row No="0">
                        <DM name="ViewName" val="IGD.FTPUSER0"/>
                        <DM name="Username" val="admin"/>
                        <DM name="Password" val="admin"/>
                        <DM name="Location" val="/mnt"/>
                        <DM name="UserRight" val="3"/>
                </Row>
        </Tbl>
        <Tbl name="TelnetCfg" RowCount="1">
                <Row No="0">
                        <DM name="TS_Enable" val="1"/>
                        <DM name="Wan_Enable" val="0"/>
                        <DM name="Lan_Enable" val="1"/>
                        <DM name="TS_Port" val="23"/>
                        <DM name="TS_UName" val="root"/>
                        <DM name="TS_UPwd" val="root"/>
                        <DM name="Max_Con_Num" val="5"/>
                        <DM name="ProcType" val="0"/>
                </Row>
        </Tbl>把telnet和ftp的enable都打开了,但还是登陆不上去,why?
研究了一下rc和init.norm(debug也是一样)

很明显,启动里面没有让telnetd启动,而/etc目录又是不可写的,所以telnet无法登陆。我直接在putty上运行telnetd&这样是没什么问题的。。。。有兄弟想到解决办法请告知。FTP没试,估计类似。
2、/目录可写的问题

如图所示,/var和/mnt挂的是tmpfs,所以这两个可写;/proc挂的是proc,象我们用tftp也能写进去,但/挂的是squashfs,挂的是可读,我试着用

将其挂为rw,但实际上还是写不进去。我查阅了这个文件系统相关的资料,通过unionfs可以写到特定目录,但这个系统本身不支持unionfs,怎么处理?因为/etc是挂在/目录下的,不能写就不能调整。知道的朋友请告知。
3、关于页面上display:none的问题
通过firebug或者是chrome自带的调试工具都可以显示出来,但这样太不灵活了。能否想办法把它配置为直接显示出来?我查过配置文件,没有找到对应的开关。只有一个SSID2可以显示在左栏的选项,但没啥用处。个人感觉肯定有那么一个开关,关键是配置在什么地方?有知道的高手告知。

~~~~~~~~~~~~~~~~~~~~~~~~~~~全文完~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`

antitel 发表于 2012-3-21 10:39:26

写得相当详细 不过我的W300D怎么是BCM6328的呢?

uu8101 发表于 2012-3-21 10:50:32

这个我也不清楚。可能是地方不一样或者版本不一样吧。我的是W300D V2.0的硬件,V2.0.00_E的软件版本号。

zfggong 发表于 2012-3-21 15:20:55

这个型号的没有见过。为什么只有2个LAN 口      

uu8101 发表于 2012-3-21 23:43:32

我觉得可能是被阉割过了吧,我邻居的是H108L,感觉和我这个内核上一模一样,连路由界面也基本一样;但他的就有4个LAN口,4个SSID,还带1个USB。。。

anthony0321 发表于 2012-3-22 11:42:50

占位收藏,谢谢楼主。

adu99 发表于 2012-3-22 12:13:29

记号~看看

米罗 发表于 2012-3-23 20:55:42

技术贴 支持

ivanysc 发表于 2012-3-24 19:57:24

太强悍了,幸好的我不是这款机,要不我肯定搞不定

rzd4evr 发表于 2012-3-28 18:51:46

squashfs是压缩过的,只读文件系统,要修改,只有把固件备份出来,解压后修改,再打包刷回去
页: [1] 2 3 4 5
查看完整版本: 中兴ZXV10 W300D全破解记录