给斐讯K1刷机并拨号e信(湖北地区测试无问题)
◆购买斐讯k1路由器
路由器在天猫京东斐讯旗舰店都有售卖,我买的价格是159,不过有一张铃铛卡,一个月之后返还160元,相当于0元购
◆路由器刷不死Breed
1.路由与电脑有线连接好,输入192.168.2.1,完成设置
2.在浏览器地址栏输入:http://192.168.2.1/goform/Diagnosis?pingAddr=192.168.2.100|echo""|telnetd
(如果你的电脑ip不是192.168.2.100,请改成你电脑的ip(内网ip))
3.打开tftp,这里用tftp32演示,按图设置
4.打开CMD,务必使用管理员权限,telnet 192.168.2.1
5.输入用户名密码
6.输入命令
1) cd /tmp
2) tftp –g –l /tmp/breed.bin –r breed.bin 192.168.2.100
3) cat /dev/mtd1 >/tmp/mtd1.bin
cat /dev/mtd0 >/tmp/mtd0.bin
4) tftp –p –r mtd1.bin –l /tmp/mtd1.bin 192.168.2.100
tftp –p –r mtd1.bin –l /tmp/mtd1.bin 192.168.2.100
5) mtd_write write breed.bin Bootloader
等待出现#字
7.拔掉电源,然后按住reset键插上电源,地址栏输入192.168.1.1,就进入了breed界面
懒人一键式安装法:
输入:
wget http://breed.hackpascal.net/breed-mt7620-reset1.bin
然后输入:
mtd_write write breed-mt7620-reset1.bin Bootloader
等待出现#字(代表着已经完成)
刷breed后语
只要路由breed不被变动,路由刷错固件也不怕,同样方式进入breed刷回正确的即可。
推荐每次刷完固件后,去固件系统管理--恢复原厂默认值。
◆刷openWRT
1.刷新固件
我在下面的文件中打包了两个固件,一个是潘多拉的K1专版,一个是openWRT,我自己使用的是专版潘多拉,各位看官自己选择,刷新固件很简单,看图
点击更新,看路由灯全部亮起后,无线网络出现,OK
◆安装e信(NetKeeper)插件并进行拨号
1.你得准备一些东西(WINSCP一个,op系统相关netkeeper一只)找到对应地区更改文件名为sxplugin.so
2.通过WINSCP登录你的路由器
** 注意使用scp协议,密码admin(第一次登录op需要重设密码依然设为admin就可以了 **
3.放入拨号插件
登录之后打开路由器,在这儿选择/(root)然后选择/usr/lib/pppd/2.4.7文件夹将你编辑好的sxplugin.so
文件放入即可(** 这里的sxplugin.so是自己更名的,湖北的就选择wuhan的来更名,文件在文末有打包 ** )
4.设置帐号密码拨号
通过浏览器登录浏览器打开网络下的接口选择WAN口点击修改,协议选择PPPOE即可,然后下面有个按钮点一下会出来填帐号密码的,账户和密码也要写对,我是重庆动态密码可以正常用。(蓝字我是加了中文包的,你刷了过后是英文呢,凑合看吧,加中文包需要路由器联网。)
最后点击保存应用退出
5.最后的配置
通过WINSCP登录路由器同样打开文件夹/etc/config/找到network修改
在图中的位置输入option 'pppd_options' 'plugin sxplugin.so'这个代码即可(注意粘贴后字体是否一致,主要是‘号的问题,可保存后再打开查看,必须搞定字体格式才行),到此netkeeper就安装完了。最后重启路由器,到系统里面选时区,同步浏览器时间,保存。再到wan点击连接就能联网了。(如果进不去wan这个界面就是设置错了)
最后要说的,这个可用的原因是湖北地区e信2.5的算法依旧可用,有的地区加了心跳,有的地区强制升级了,并不可用,教程到此处完结,后面的有能力可以看看,工具教程打包在文末
◆闪讯算法源码
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include <pppd/pppd.h>
#include <pppd/md5.h>
typedef unsigned char byte;
char pppd_version[] = VERSION;
static char saveuser[MAXNAMELEN] = {0};
static char savepwd[MAXSECRETLEN] = {0};
static void getPIN(byte *userName, byte *PIN)
{
int i,j;//循环变量
long timedivbyfive;//时间除以五
time_t timenow;//当前时间,从time()获得
byte RADIUS[16];//凑位字符
byte timeByte[4];//时间 div 5
byte beforeMD5[32];//时间 div 5+用户名+凑位
MD5_CTX md5;//MD5结构体
byte afterMD5[16];//MD5输出
byte MD501H[2]; //MD5前两位
byte MD501[3];
byte timeHash[4]; //时间div5经过第一次转后后的值
byte temp[32]; //第一次转换时所用的临时数组
byte PIN27[6]; //PIN的2到7位,由系统时间转换
//code
info("sxplugin : using zjxinlisx01");
strcpy(RADIUS, "zjxinlisx01");
timenow = time(NULL);
timedivbyfive = timenow / 5;
for(i = 0; i < 4; i++) {
timeByte[i] = (byte)(timedivbyfive >> (8 * (3 - i)) & 0xFF);
}
for(i = 0; i < 4; i++) {
beforeMD5[i]= timeByte[i];
}
for(i = 4; i < 16 && userName[i-4]!='@' ; i++) {
beforeMD5[i] = userName[i-4];
}
j=0;
while(RADIUS[j]!='\0')
beforeMD5[i++] = RADIUS[j++];
MD5_Init(&md5);
MD5_Update (&md5, beforeMD5, i);
printf("%d %s\n",i,beforeMD5);
MD5_Final (afterMD5, &md5);
MD501H[0] = afterMD5[0] >> 4 & 0xF;
MD501H[1] = afterMD5[0] & 0xF;
sprintf(MD501,"%x%x",MD501H[0],MD501H[1]);
for(i = 0; i < 32; i++) {
temp[i] = timeByte[(31 - i) / 8] & 1;
timeByte[(31 - i) / 8] = timeByte[(31 - i) / 8] >> 1;
}
for (i = 0; i < 4; i++) {
timeHash[i] = temp[i] * 128 + temp[4 + i] * 64 + temp[8 + i]
* 32 + temp[12 + i] * 16 + temp[16 + i] * 8 + temp[20 + i]
* 4 + temp[24 + i] * 2 + temp[28 + i];
}
temp[1] = (timeHash[0] & 3) << 4;
temp[0] = (timeHash[0] >> 2) & 0x3F;
temp[2] = (timeHash[1] & 0xF) << 2;
temp[1] = (timeHash[1] >> 4 & 0xF) + temp[1];
temp[3] = timeHash[2] & 0x3F;
temp[2] = ((timeHash[2] >> 6) & 0x3) + temp[2];
temp[5] = (timeHash[3] & 3) << 4;
temp[4] = (timeHash[3] >> 2) & 0x3F;
for (i = 0; i < 6; i++) {
PIN27[i] = temp[i] + 0x020;
if(PIN27[i]>=0x40) {
PIN27[i]++;
}
}
PIN[0] = '\r';
PIN[1] = '\n';
memcpy(PIN+2, PIN27, 6);
PIN[8] = MD501[0];
PIN[9] = MD501[1];
strcpy(PIN+10, userName);
}
static int pap_modifyusername(char *user, char* passwd)
{
byte PIN[MAXSECRETLEN] = {0};
getPIN(saveuser, PIN);
strcpy(user, PIN);
info("sxplugin : user is %s ",user);
}
static int check(){
return 1;
}
void plugin_init(void)
{
info("sxplugin : init");
strcpy(saveuser,user);
strcpy(savepwd,passwd);
pap_modifyusername(user, saveuser);
info("sxplugin : passwd loaded");
pap_check_hook=check;
chap_check_hook=check;
}
◆下载地址
给斐讯K1刷机并拨号e信(湖北地区测试无问题)的更多相关文章
- 斐讯K2刷不死breed与第三方固件教程
本文主要就是简单的斐讯 K2 刷机教程,方便大家了解一下 K2 怎样刷固件.斐讯 K2 是一款 1200M AC 双频无线路由器,支持 5G 和 2.4G WiFi 信号,虽然缺少 USB 且只有百兆 ...
- 斐讯 N1 刷 Armbian 5.64
前言 N1 天天链是斐讯出的一款挖矿产品,虽然已经翻车,但是本身硬件配置还是很不错的,晶晨 S905D 主控,蓝牙 4.1,双频 WiFi,2G + 8G,USB2.0,HDMI.而一个只要不到 80 ...
- 斐讯 N1 刷 Armbian 5.75
前言 不知不觉居然鸽了快半年的博客_(:3」∠)_ 好吧最近发现之前玩的 N1 Armbian 系统已经出到 5.75 了,之前刷 5.64 玩过,具体博文在此,说实话并不是很稳定,有线网络有时会卡死 ...
- 斐讯k1路由器刷Breed BootLoader(不死UBoot)教程
刷入Breed BootLoader: 因为这个K1路由器可以开启telnet服务,所以此处刷Breed可以不使用编程器刷Flash芯片的方法进行. 1.打开K1路由器的Telnet服务. 电脑通过有 ...
- 斐讯K1 K2 开启Telnet
官方V21.4.5.5前的ROM,直接打开下边这个链接就直接开telnet了,然后就可以随便搞了 http://192.168.2.1/goform/gra_NTPSyncWithLocal?text ...
- [无线路由] “免费”斐讯K2路由器刷OpenWRT(实战MWAN多宽带网速叠加)
(阿财首发于什么值得买)斐讯K2可以算是一个非常另类的跨界数码产品,其产品完全的醉翁之意不在酒.最多值99元的 MT7260硬件架构和用料,售价399元,金额激活K码后自动转入合作理财P2P平台,等待 ...
- 斐讯K2 22.5.9固件刷华硕固件实测教程
斐讯K2最新的固件是V22.5.9.163这个版本是锁死了,不能刷机的,而且不能降级到原来的可以刷机的老版本固件,也就不能刷第三方固件了,怎么破呢?下面就教大家怎么降级刷机到V22.4.2.8固件. ...
- TFTP 1.68智能刷机全能版发布,TTL线在CFE模式解决BCM5357如斐讯FIR302B等产品变砖问题
TFTP 智能刷机从发布以来一直受广大刷机朋友的喜爱,也有很多人一直加我的Q问如何刷机? 在这里我要告诉大家一下,由于机型种类繁多,建议有遇到问题,直接百度,有空的时候我能回答我尽量回答,其他的爱莫能 ...
- 斐讯K2 V22.X.X.X 新版固件 刷机教程 (开telnet,安装SSH,adbyby,刷breed,华硕Padavan)
源:http://www.right.com.cn/forum/thread-191833-1-1.html 属于我的上一个帖子的升级版,基本属于无脑操作,点击恢复就可以自动刷好breed,浏览上传新 ...
随机推荐
- CentOS上svn checkout时报错SSL handshake failed: SSL error: Key usage violation in certificate has been det
局域网安装了个SVN在checkout的时候报错 SSL handshake failed: SSL error: Key usage violation in certificate has bee ...
- 超简单系列:ubuntu 13.04 安装 apache2.2+mod_wsgi+Django
1,Ubuntu更新系统 sudo apt-get update sudo apt-get upgrade 2,安装apache,mod_wsgi,Django sudo apt-get instal ...
- 代码审查Code Review
代码审查清单 常规项 代码能够工作么?它有没有实现预期的功能,逻辑是否正确等. 所有的代码是否简单易懂? 代码符合你所遵循的编程规范么?这通常包括大括号的位置,变量名和函数名,行的长度,缩进,格式和注 ...
- ENode, 领域模型,DDD
Entity Framework之领域驱动设计实践 使用ENode框架前您需要了解的东西(初稿) 领域驱动设计实战--战略建模 http://www.cnblogs.com/yubaolee/p/Ca ...
- python基础之可变数据类型与不可变数据类型
一.什么可变数据类型和不可变数据类型 可变数据类型:value值改变,id值不变:不可变数据类型:value值改变,id值也随之改变. 二.如何确定一种数据类型是可变的还是不可变的 根据可变数据类型与 ...
- linux文件系统的用户和权限管理
1. 为什么要有用户的概念? 多用户,多任务业务对系统资源的隔离产生需求 2. linux 用户的分类? 2.1. 管理员 拥有操作所有文件的权限 2.2. 普通用户 2.2.1. 普通登录用户 2. ...
- python 在列表,元组,字典变量前加*号
废话不说,直接上代码(可能很多人以前不知道有这种方法): a=[1,2,3]b=(1,2,3)c={1:"a",2:"b",3:"c"}pr ...
- C#使用SmtpClient发送邮件
目的:写一个可发送邮件的DLL. 原理: 例如A使用163邮箱发送邮件给B(qq邮箱).首先A会把邮件通过SMTP(Simple Mail Transfer Protocol)协议传输到163的Smt ...
- .NET 常用ORM之iBatis
ibatis 一词来源于“internet”和“abatis”的组合,是一个由Clinton Begin在2001年发起的开放源代码项目,到后面发展的版本叫MyBatis但都是指的同一个东西.最初侧重 ...
- Hadoop学习笔记之一:Hadoop IPC
因为某些原因需要把前一段时间对Hadoop(版本基于0.20.2)的学习积累搬到这里,成为一个系列.写得会很简单,只为必要时给自己提醒. IPC框架 所有Hadoop协议接口的实现都依赖Hadoop ...