/xyks

小猿口算逆向笔记

Primary LanguageJavaScript

小猿口算

未完成的逆向笔记
vue逆向笔记 frida/readme.md
sign逆向笔记 frida/sign_decrypt.md

待完成的自动发包笔记

关键目录说明

目录 功能
dexdump 使用frida-dexdump导出的dex
frida 用到的一些脚本和逆向笔记
har 在虚拟机抓到的包
java_test 一点java测试
matchV2 修改获取到的试题包,可修改成一道题任意答案
matchV2_byDataDecryptCommand matchV2同样的功能, 修改获取到的试题包,可修改成一道题任意答案
submit 修改提交的答案包,可修改答题耗时
gan_sign 生成sign参数, 在未来纯协议发包时有用, 目前没用

如何复现

adb相关

现在frida使用adb shell ps | grep com.fenbi.android.leo查询小猿口算pid, 所以需要安装adb

  • 提前下载platform模块并放入系统环境变量。

  • 运行PowerShell或者CMD

  • 输入adb devices查找设备绑定

  • 输入adb connnect 127.0.0.1:port 注意 此处的port为端口号 具体查看模拟器的ADB端口
    Mumu模拟器一般默认为16384 或者直接输入adb connect 127.0.0.1:16384

  • 下载frida-server-android使用adb推送至安卓

    adb push frida-server-android*路径 /data/local/tmp
    adb shell
    su #此处需要在模拟器中授权
    cd /data/local/tmp
    chmod 777 frida-server-android* #给rwx权限
    ./frida-server-android*

    即可运行frida,到此adb结束。

    注意不要退出powershell或者cmd的窗口 image

webview复现

  • windows:
    安装mumu模拟器,根据mumu官方教程,依次安装magisk,lsposed,算法助手。

    安装小猿口算app,在算法助手里设置小猿口算app允许webview远程调试。

    打开chrome或edge浏览器,分别打开chrome://inspect或者edge://inspect

    打开小猿口算app,打开口算pk,回到浏览器的inspect页面,等待显示出pk链接调试按钮,点击调试。

    开发者工具的网络页面选择保留日志。然后左上角刷新页面以确保获取到完整数据。每打开一个页面回到inspect页面等待获取到新的调试链接,在新的调试页面刷新页面。
    查看视频

frida复现

  • windows:
    安装mumu模拟器, 根据mumu官方教程, 开启root

    frida仓库下载frida-server-版本号-android-x86_64.xz并解压

    把解压后的frida-server推送到模拟器任意目录,比如通过adb push推送到/data/local目录下

    连接到模拟器终端使用root启动frida-server,比如adb shell, su, /data/local/frida-server-文件名

    电脑安装frida和frida-tools

    pip install frida-tools
    pip install frida
    

    电脑命令行向小猿口算注入xx脚本frida -U -n 小猿口算 -l .\hook_JsBridgeBean_sign.js

进度

  • 方法一(已可以修改答案):
    使用frida/matchV2目录下的py脚本或ts脚本,他们可以拿到试题和答案 do_matchV2_model.py示例
    image

    视频演示

  • 方法二(已可以修改答案):
    使用示例模板目录下的py脚本或ts脚本,他们可以拿到试题和答案
    image

根据 taotao5#9 提供的hook方向, 现写出:

现状

已完成:

待完成:

推荐项目:

推荐链接

免责声明

  1. 本仓库发布的 xyks (下文均用本项目代替) 项目中涉及的任何脚本,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。

  2. 作者对任何脚本问题概不负责,包括但不限于由任何脚本错误导致的任何损失或损害.

  3. 请勿将本项目的任何内容用于商业或非法目的,否则后果自负。

  4. 以任何方式查看此项目的人或直接或间接使用本项目的任何脚本的使用者都应仔细阅读此声明。作者保留随时更改或补充此免责声明的权利。一旦使用并复制了任何相关脚本或本项目,则视为您已接受此免责声明。

  5. 您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

  6. 任何擅自改变计算机信息网络数据属于违法行为,本项目不提供成品可运行程序,仅做学习研究使用。

您使用或者复制了本仓库且本人制作的任何代码或项目,则视为已接受此声明,请仔细阅读。