|
本帖最后由 keke1023 于 2022-6-30 17:55 编辑
原本的解锁方法大家都知道的,需要用到另一台刷好OpenWRT系统的路由器,并且要上传文件关闭它的DHCP还要设置LAN口地址之类的,用完了还得设置回来很麻烦
很多朋友可能还并没有这样一个OpenWRT的路由器,以至于还得用虚拟机什么的
于是我就尝试用最便宜的设备ESP8266(我用到的模块只要5块钱)来制作一个具有相同功能的小工具
一开始是使用arduino core来测试,发现它的dhcp关闭实现的不太正常,而且每次都要编译才能上传实在是太慢了
后来就选定了使用NodeMCU固件,这样就可以随时修改init.lua随时看到效果了
最后当然是成功啦,但是中间也遇到了一些坑
在指定path的时候字符串里不能带-(就是openwrt的cgi-bin这个-),不然就会解析错误,
一开始没发现是这个问题,因为报错写的完全是另一件事,> PANIC: unprotected error in call to Lua API (httpServer.lua:87: bad argument #1 to 'exists' (filename invalid))
但这个位置是sendfile函数,而输出json用的是send函数,完全不搭噶啊…最后给-前面加了%转义就好了
httpServer:use('/cgi%-bin/luci/api/xqsystem/token', function(req, res)
输出的json在本来的lua脚本是直接在花括号里的,而到了这里又在外面加了一对单引号,反而和里面内容的单引号形成错误的闭合,且还有unicode的\u0022,都得要再加\做转义
res:send('{"token":"; nvram set ssh_en=1; nvram commit; sed -i \'s/channel=.*/channel=\\u0022debug\\u0022/g\' /etc/init.d/dropbear; /etc/init.d/dropbear start;","code":0}')
到这里终于是做出来了,今天也终于买了一台机子又做了一次解锁的测试,没问题~
虽然ESP8266不是谁都会操作,但是我觉得给大家提供一个新的工具总是好的,也许也会有人把它做成成品拿来卖钱哈哈哈哈
分享链接我就放在这里:
里面用到的NodeMCU固件,刷入工具,连接工具,以及需要上传到ESP8266上的文件都有,也写了一个简单的教程,有这方面基础的朋友应该是一看就明白了
祝各位昨天七夕快乐,一切顺利!
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
查看全部评分
|