小猿口算全功能实现方案

项目地址: https://github.com/nkxingxh/YuanShenPK

YuanShenPK

小猿口算 PoC。纯抓包,无需Frida、无需Hook,全功能实现。

警告: 该项目仅作为 PoC (概念验证),现已停止维护。请勿将其用于任何非学习目的,使用该项目所产生的一切后果由用户自行承担。

如果你只是想找个脚本直接改 0s 秒杀其他用户,那可以不用继续往下看了。

环境要求

安卓设备

需要 Root 后的安卓设备,用于抓包。具体怎么让 APP 流量过代理自行想办法解决。

不挑版本: 实测小猿口算最新 3.94.0 也支持。

抓包机

实测可用环境:

  • Windows 10
  • Python: 3.12.4
  • Mitmproxy: 11.0.0

自动答题还需要 (二选一):

  • pywin32: 控制鼠标直接操作模拟器
  • adb: 使用 adb 操作安卓设备

前言

自 v2 接口响应加密以来,大家都开始想办法解密。上什么 Frida 啊,Hook 这个函数那个函数的,实在是不够优雅,而且这玩意还挑版本。

通过先前的研究,我们了解这个口算 PK 其实本质还是一个 H5 页面。已经有人想办法可以打开 WebView 调试,来看到更多详细的信息。也有人提出方案,修改 JS 脚本。

我看了其他修改 JS 的方案,也是装这个装那个的,其实一个 mitmproxy 就搞定了哪来这么麻烦。

思路

注入 JS 中的 dataDecrypt, 使其在解密后把数据提交给我们处理,然后使用我们的返回内容替换其值,再执行剩余内容。这样就轻松实现了修改答案的功能。修改提交的作答数据也是同理,不过就是注入 dataEncrypt 相关逻辑而已。

由于我们本身就是中间人,无论向哪个 URL 发送请求,我们都可以捕获。所以都不需要想办法搭建 Web 服务器,使用 mitmproxy 即可完成。

功能

这个 PoC 在 v2 响应加密的次日就实现了基本功能,随后两天逐步完善。现在热度差不多也过去了,所以将其发布。

目前直接使用该 PoC 可以实现:

  • 获取答案 (包括 PK 与 练习)
  • 修改答案 (仅限 PK, 只保留一题)
  • 自动答题 (仅限比较题)

这个项目只用于概念验证与学习,其他功能我扣掉了,你可以自行实现。

运行

mitmdump -s poc.py

随后在安卓设备上配置好 APP 代理,然后启动小猿口算即可。

自动答题默认为 adb 方式,请确保设备正常连接。你也可以修改 operation_mode 与答题位置。

许可

该项目基于 AGPL-3.0 许可证进行开源。详细信息请参阅 LICENSE

本文链接:

https://blog.nkxingxh.top/archives/471/
1 + 1 =
快来做第一个评论的人吧~