Skip to content
芒果糯米糍 edited this page Oct 18, 2023 · 4 revisions
  • 由于JS特性在64位hook下存在精度问题,arm64下的指针大小是8字节,但是js命令行传参最大值是 Number.MAX_SAFE_INTEGER = 9007199254740991 (0x1fffffffffffff),所以命令行直接给值超出范围导致精度丢失,这时候建议使用string类型 use ptr("0xb400007d17736990") instead of ptr(0xb400007d17736990),这部分发现的比较晚后续很多东西都没有做好优化
  • 如果需要启动的时候先暂停下来,可以在这里调用pause,重新编译ts,然后在命令行输入 resume() 继续执行
  • 我这里用的环境: frida==15.2.2 | frida-tools==10.5.4 , 测试机 :piex 4 原生android 11
    1. 确认手机端server与电脑端frida版本一致,如果你的版本不一致概率性出问题
    2. 已确认高版本的 frida-tools 在使用老版 Ufunc.js (ts版不受影响)会出问题,所以建议直接使用 10.5.4 版本
    3. 由于ts分支版本的 Ufunc.js 是基于frida-il2cpp-bridge 的,所以有一些新版Unity它本身不支持的,自然也会影响脚本的使用,也可以尝试使用老版本(master分支)下的Ufunc.js
    4. il2cpp: couldn't determine the Unity version, please specify it manually 参见 这里
  • 建议使用真机,尽量不在x86模拟器中使用,x86中找不到对应so,其次frida对于模拟器的兼容性也并不好
  • 文档写的不够详细,所以大伙想看那些导出函数建议直接搜索 globalThis. 即可
  • 数据类型这一块还是很混 ValueType ,后续会慢慢优化

TODO:

  • 从游戏对象获取对象下挂载的脚本
  • qbdi 调用栈
  • 协程hook webrequests hook
  • 从任意一个游戏对象无法遍历到当前场景所有游戏对象(顶层对象不同)
  • 不能跨场景找游戏对象 ...

QQ群:992091014

欢迎各位大佬加群交流

提供新的功能需求,反馈问题,提交代码

Clone this wiki locally