type
Post
status
Published
date
Aug 4, 2021
slug
summary
tags
category
icon
password
游戏运营需要统计游戏在用户手机中的使用情况,需要我们使用逆向的手段 添加某些指定位置触发事件上报

简述为两个部分

使用游戏自己的事件上报函数

gp上的游戏很多有自己的事件上报api,拿来直接hook 使用 dps.py 和 bpoint.js 去筛选带有 “event” / "report" 之类的关键字的函数 批量断点即可
例如 -----> 这个游戏 <-----
使用
dump出来就可以看到在其中就能找到一个
notion image
这里使用dobby hook ReportEvent(string .....) frida: args1 (c#string) ===> args1.add(pointersize*2+4).readUtf16String() 即可获得cstring inlinehook 使用 MonoString 解析一下c#string 即可

万能解法:使用u3d的 一些函数作为hook点

  • hook SetActive UnityEngine.GameObject.SetActive(Boolean) : Void args[0] ===> gameobj args[1] ===> boolean 使用 AssetStudioGUI 查看层级 (也可以使用 Ufun.js 中的 PrintHierarchy()) 涉及这些u3d函数的主动调用
UnityEngine.Transform.GetParent() : Transform UnityEngine.Object.GetName(Object) : String UnityEngine.Transform.GetChild(Int32) : Transform UnityEngine.Transform.get_childCount() : Int32
  • hook OnPointerClick UnityEngine.UI.Button.OnPointerClick(PointerEventData) : Void args[0] ===> button实例 args[1] ===> PointerEventData (UnityEngine.EventSystems.PointerEventData) 调用 get_pointerEnter() 函数返回值即为被点击物体的 gameobj 对象 拿到 gameobj 后 ,剩下的操作同理上了
PS: 配合使用 Ufun.js 会非常的香
notion image
静态InlineHook的简单实现Chatgpt-prompt