让路由器开机自动破解老协同拨号的脚本。
支持 openwrt、ddwrt、tomato。不确保在多拨或者其他特殊路由上能够使用。
进成都理工的时候(2012-12-20)写的,最近修正了一下。
用法:
curl https://gist.github.com/heruoxin/8437177/raw |sh
如果路由上没有 curl 的话试试:
wget https://gist.github.com/heruoxin/8437177/raw -O cdutrouterdial.sh;sh cdutrouterdial.sh
源码:
#!/bin/bash echo echo "成都理工协同拨号路由破解脚本" echo "算法来源:http://fyscu.com/forum.php?mod=viewthread&tid=1104" echo "本脚本仅适用于ddwrt、openwrt、tomato的路由" echo "使用前请确认已经在路由设置页面上调整之为PPPoE拨号模式,并最好备过份。" echo "截至2014年2月,对CD028XXXXX@96301类型的帐号有效,对使用本脚本后的任何意外本人无力负责。" echo #判断系统 osame=$(uname) if [[ $osame == *omato* ]] then nextgo=tomato; elif [[ $osame == *dd*wrt* ]] then nextgo=ddwrt; elif [[ $osame == *open*wrt* ]] then nextgo=openwrt; else while true; do read -p '系统识别失败,请输入系统类型(ddwrt/openwrt/tomato):' osname; case $osname in "tomato") nextgo=tomato; break ;; "ddwrt") nextgo=ddwrt; break ;; "openwrt") nextgo=openwrt; break ;; *) ;; esac done fi #输入帐号密码 while true; do read -p "输入你的帐号名称(格式类似于CD028XXXXX@96301这样):" usrname if ! [ -z $usrname ]; then break fi done read -p "输入密码:" passwd if [ -z $passwd ]; then echo "未输入密码,使用默认的12345678" passwd='12345678' fi #写入算号步骤并设为自启动 #囧sh在function上语法和bash有区别…… #这下面本来是函数的…… case $nextgo in "tomato") echo "你的路由系统为tomato,如判断错误请终止执行" sleep 3 nvram set script_init="\ _account=$usrname;\ _password=$passwd;\ _random=\$(head /dev/urandom |tr -cd a-f0-9|cut -c 1-8);\ _true_account='~ghca'\$_random'2007'\$(echo -n 'jepyid'\$_account\$_random\$_password|md5sum|cut -c 1-20)\$_account;\ nvram set ppp_username=\$_true_account;\ nvram set ppp_passwd=\$_password;" echo "3秒后重启……" echo "tomato可能需要再重启一次,可能哈" sleep 3 rm cdutrouterdial.sh > /dev/null reboot ;; "openwrt") echo "你的路由系统为openwrt,如判断错误请终止执行" sleep 3 cat >> /etc/rc.local << EOF _account=$usrname _password=$passwd _random=\$(head /dev/urandom |tr -cd a-f0-9|cut -c 1-8) _true_account='~ghca'\$_random'2007'\$(echo -n 'jepyid'\$_account\$_random\$_password|md5sum|cut -c 1-20)\$_account _the_line=' option username '\'\$_true_account\' sed -i "s/.*username.*/\$_the_line/" /etc/config/network sed -i "s/.*password.*/ option password \'\$_password\'/" /etc/config/network sleep 2 /etc/init.d/network restart EOF echo "3秒后尝试拨号……" sleep 3 /etc/rc.local rm cdutrouterdial.sh > /dev/null ;; "ddwrt") echo "你的路由系统为ddwrt,如判断错误请终止执行" sleep 3 cat >> /etc/rc.local << EOF _account=$usrname _password=$passwd _random=\$(head /dev/urandom |tr -cd a-f0-9|cut -c 1-8) _true_account='~ghca'\$_random'2007'\$(echo -n 'jepyid'\$_account\$_random\$_password|md5sum|cut -c 1-20)\$_account sed -i "s/^user.*/user \'\$_true_account\'/g" /tmp/ppp/options.pppoe sed -i "s/^password.*/password \'\$_password\'/g" /tmp/ppp/options.pppoe killall redial killall pppd pppd file /tmp/ppp/options.pppoe& EOF echo "3秒后尝试拨号……" sleep 3 /etc/rc.local rm cdutrouterdial.sh > /dev/null ;; esac
本站的文章和资源来自互联网或者站长的原创,按照 CC BY -NC -SA 3.0 CN协议发布和共享,转载或引用本站文章应遵循相同协议。如果有侵犯版权的资 源请尽快联系站长,我们会在24h内删除有争议的资源。欢迎大家多多交流,期待共同学习进步。