关于 YDPEN_jailbreak

前言

转载自听秋念

新定义有道词典笔的破解过程名为YDPEN_jalibreak

有道词典笔早期好像使用的是安卓系统? 但后面出的笔都不是安卓系统 而是基于linux的词典笔os 故即使开启有道词典笔的adb依然无法实现安装apk等功能 仅限折腾着玩玩罢了。

操作有风险,玩机需谨慎。因任何操作造成的包括但不限**于变砖、炸 mini app ……**损失作者均不承担任何责任 也没有义务帮你修复 如有侵权联系删除

有道词典笔一直都带有adb开启入口 只需多次点击’法律监管’中的文本即可打开

按照提示输入adb shell auth则会出现一个输入密码的提示YoudaoDictionaryPen-xxx's password:

但adb打开并不意味着结束 当你尝试使用adb连接设备时 会弹出login with “adb shell auth” to continue.

在早期的系统版本中,这个密码被设置为CherryYoudao 但当词典笔os出现后 adb密码开始使用md5储存 导致你无法通过解包固件获得明文

本文采用大佬SkySight-666的方案加以改进 靠中间人攻击劫持更新请求从而替换更新包

参考链接:参考文章 1 参考文章 2

本文用到的全部工具 下载 提取码:0m8B

正文开始

首先,通过抓包抓取系统全量包

使用词典笔连接电脑热点,启用wireshark对热点所在连接进行抓包,词典笔检查更新,在wireshark中找到如图post请求,抓到后可以停止抓包(图片来自LittleSadSheep)

重新发送更新请求,获取全量包链接

找一个HTTP测试网站,这里我用的是SOJSON,将Header设置为,将你在获得的数据填入,发送如下请求:

图片来自LittleSadSheep

请求完毕我们会获得一个包含完整包链接的json

特别注意 这不是所有型号通用的 你要自己抓自己对应的更新包 然后取出其中deltaurl的值 下载更新包 然后使用RKDevTool-高级功能 选择固件后点击解包

随后,在Output文件夹中我们可以看到解好的包 对于x7pro来说,需要进入Android文件夹并分解rootfs分区,最终在/usr/bin下找到adbd_auth.sh 打开它

找到其中的md5值 记录下来备用

使用winhex替换md5值

打开winhex并打开你的完整包img,开启搜索,搜索前面记录的md5值。

md5值

千万注意,这里有一个网易挖的坑!!这边代码用的echo会在你输入密码之后加一个换行符 导致密码md5改变 最终校验失败 这也是大部分升级成功却依旧密码错误的原因之一!因此我们需要想办法在自己的密码转为md5前也加上换行符。我采用的方案是询问gpt(

总之我们把带换行符一起转换的md5用来替换原img中的md5 然后保存文件

注意:此时文件大小未发生改变 大小一个字节也没变!

计算修改后的文件校验码

编辑getnewmd5.py,使得segment_sizes数组中的值为前面抓包抓到的每一个endpos的值,有多少就加多少,每个机器值可能是不一样多的,然后在cmd中执行’python getnewmd5.py {修改后的img路径}’,并紧跟着执行’certutil -hashfile {修改后的img路径} md5’,随后我们会获得如图所示的分片md5和整体md5

计算md5

还需要计算一个img的sha256值,我这边使用的是7zip 得到修改后的img的sha256值 留存备用

sha256计算

搭建更新服务器

首先自行安装nodejs然后编辑YDPen.js,将JsonData的内容全部替换为前面抓包抓到的内容,然后手动修改segmentMd5中每一个分块的md5值为前面计算得到的md5值,并修改bakUrl和deltaUrlhttp://{本机局域网ip}:14514/你修改的完整包.img,随后修改’md5sum’为前面计算的完整img的md5,sha修改为计算的sha256值

下拉到js下方部分,修改’/product/1717746496/*********/ota/checkVersion’为你自己抓到的请求url,保存文件。

前5处修改

第6处修改

开启两个cmd,一个执行python httpserver.py {img路径},另一个执行node YDPen.js,同时修改一下host,把’iotapi.abupdate.com’劫持到本机ip,并执行ipconfig /flushdns来刷新dns

搭建服务器

更新自定义固件

在词典笔连接电脑热点的情况下检查更新,会检测到一个很大的更新包,直接更新即可

获得adb权限,美美折腾

更新完毕后,待设备重启,再次去法律监管里面连击打开adb,此时连接电脑执行adb shell auth并输入前面转换为md5的密码明文,回车,见证奇迹

adb密码校验成功

可以看到adb连接成功,密码正确,并成功获得shell的root权限

至此,教程结束

感谢各位大佬的支持,本文总结了多位大佬的经验,并加以修改,解决了一些很头疼的问题,比如那个恶心人的密码换行符以及sed修改不了img等

如有疑问欢迎评论区讨论,谢谢大家!