小米路由器破解开启SSH mini丢失SN后恢复找回SN 完美无需编程器!

原帖:http://www.360doc.com/content/17/0110/21/39770982_621618633.shtml

1.刷回官方低版本rom

优盘格式化为fat32,将低版本固件2.7.11(miwifi_r1cm_firmware_b9d56_2.7.11.bin)放在优盘内,优盘内最好只有这一个文件,将优盘插入路由器usb接口,断电,用牙签等按住reset孔按住后路由器通电,LED指示灯闪烁的时候松开按住reset的物体,开始使将优盘内的固件刷入路由器。

2:安装 python (32和64二选一)

Windows 64位

https://www.python.org/ftp/python/3.5.0/python-3.5.0-amd64.exe

Windows 32位

https://www.python.org/ftp/python/3.5.0/python-3.5.0.exe

(Windows XP 使用python 3.4.3)

并安装requests模块

pip install requests

2:任意版本固件(建议先恢复出厂设置)初始化后登陆路由器,

地址栏url类似下面这样:

http://192.168.31.1/cgi-bin/luci/;stok=e00b01a819d8a18b93d6cedb6f74d621/web/setting/upgrade

把你登陆成功的stok值复制一下(stok值每一次都不一样),

3:mini需要准备一个U盘插入路由器,把payload硬盘版跳过。放在优盘里

注意事项:

1:stok值得是你登陆成功后的,关闭网页或重启就失效

2:IP是192.168.31.1 如果不是自己修改py脚本

3:如果想显示详细返回信息,就用文本编辑器打开.py脚本,把里面

#print (req.content)  前面的#号删除(一共有4处)

4:脚本里写的是sda1,由于U盘分区的不同或多次插拔,挂载点会顺延成sdb1、sdc1或sda4、sdb4等等,

会导致不成功,需要自己修改py脚本里的路径,或者最简单的办法就是 重启,换U盘。

(操作成功返回信息:"code": 0   如果提示:not exist ext device 就是挂载点不是sda1)

5.脚本里面增加了修改默认ssh密码为admin建议用文本编辑器打开payload改成你自己的

硬盘版运行mi.py,mini运行mini.py,

出现提示后右键粘贴你的stok值,回车,等待操作完成后,重启后生效

目前(2015.11.19)官方发布的版本全部通杀,这个漏洞将来肯定会补,以后封了降级旧版再开启就是了。

做人要厚道,转载请注明!

------------------------------------------------------------------------------------------------

普通用户和硬盘版用户可以不用往下看了:)

-------------------------------------------------------------------------------------------------

详细解读:

这个 python 破解脚本执行了5个操作:

1:上传payload到路由器可写目录

2:把/etc/rc.local重命名备份为/etc/rc.local.bak

3:复制payload到/etc/目录

4:把payload重命名替换为/etc/rc.local

5:删除可写目录下的payload

rc.local里面的命令开机后会自动执行,payload是原始rc.local增加了破解命令,

dropbear是一个小型的ssh服务器,启动方法:/etc/init.d/dropbear start

小米在dropbear启动脚本start段里增加了判断,稳定版不让启动直接退出,nvram参数 ssh_en不是1也退出,

而开了ssh官方就不保修,这样确实降低了售后成本,虽然各地的xiaomi之家执行没有那么严格,

这下完美解决了,保修和开启SSH能共存了,再次感谢原创作者@哒哒哒知了

mini恢复SN:

本帖隐藏内容

刷了newifi或者其他没有适配mini的固件会覆盖清空你的bdata信息(丢失SN),会影响刷机和绑定

使用上述方法开启SSH后可以使用官方的bdata程序恢复Bdata:

PuTTY登陆后

先bdata show查看bdata信息

增加&修改命令:自己替换XXX

bdata setmodel=R1CM

bdata setcolor=101

bdata setCountryCode=CN

bdata set SN=XXXXXXXXXXXX

设置默认ssid并保存

setssid_fact

model是型号

bdata setcolor=101就是设置为白色,随意更改,颜色定义如下:

黑色100 -- 白色101 -- 橘色102 -- 绿色103 -- 蓝色104 -- 粉色105

CountryCode是国家代码(CN HK TW EN)

SN填写你路由背面的(12位数字,如果有特殊符号等,请忽略)

默认ssid的后缀是你的lan口MAC后4位大写

输入getmac eth会显示lan口MAC

可以再次bdata show查看验证是否修改成功。

这种方法修改的是Config分区,修改后能正常使用绑定,但是也有可能被清空

Bdata分区保也存着SN等信息,由于Bdata分区在官方固件下面是只读的,如果想连Bdata一起修改就稍微有点麻烦了,

如果下面的学不会,就用上面简单的方法,不提供远程协助

1:pandorabox网站随便下载一个固件,stable下是稳定版,testing下是测试版,随便下载一个版本,

2:使用WinSCP工具把固件上传到路由/tmp目录下,

3:在官方固件下面使用mtd程序刷入OS1,xxxx是文件名:

mtd write /tmp/xxxx.binOS1-r

(自动重启后,默认ip:192.168.1.1 用户名:root 密码:admin )

4:修改 Bdata.bin 里面的颜色、SN 、默认SSID 、CRC32

注意的是CRC32反序填入,我以前发过帖子但现在进不去了

版主转载到这里了,可以参考一下。

使用WinHex就可以把Bdata文件造出来,为了方便我把建好的空白Bdata模板传上来了,按照下面的图片教程改就行了

5:使用WinSCP把修改好的Bdata.bin传到/tmp目录

使用mtd程序刷入Bdata

mtd write /tmp/Bdata.bin culiang-Bdata

刷完以后就可以用官方方法U盘刷回

完美修复。

再次提醒 mini用户:不要随便刷别人备份的编程器固件,如果使用了非本机的eeprom(比如刷了别人备份的编程器固件)

就把你本机原来的Factory(eeprom)分区覆盖了,使用别人的参数你的芯片不能发挥最优性能,

无线信号会受影响,可能无线会变的非常糟糕!

http://bbs.xiaomi.cn/t-11583550

推荐阅读更多精彩内容

  • 在此记录一下自己刷入的过程,希望能够帮到更多的小伙伴(不建议输入潘多拉,没能配置SS,建议刷入华硕的固件) 1.首...
    陌上初寒l阅读 11,215评论 1 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 89,724评论 13 124
  • 立夏,大邑出了一趟门,半个月之后他回来了,收拾了一点东西,环顾了四周,轻轻的落下门栓,离开了这个熟悉而孤单的地方。...
    夏末秋初_fd9e阅读 104评论 0 3
  • 文/阿毛 关于恋爱,我真的不是太有发言权,毕竟我的恋爱史就那点,等同没有。哇,看到这,好多人好开心啊!聊以慰藉,但...
    公子留仙阅读 68评论 0 0
  • 早饭后喝普洱,泡脚,简单准备,上盘,左脚在上,十点零六分。半小时左腿木麻木,左膝涨痛。 坚持到七十分钟,...
    冬日蝴蝶结阅读 38评论 1 0