type
Post
status
Published
date
Aug 4, 2021
slug
summary
tags
category
icon
password
游戏运营需要统计游戏在用户手机中的使用情况,需要我们使用逆向的手段
添加某些指定位置触发事件上报
简述为两个部分
使用游戏自己的事件上报函数
gp上的游戏很多有自己的事件上报api,拿来直接hook
使用 dps.py 和 bpoint.js 去筛选带有 “event” / "report" 之类的关键字的函数
批量断点即可
例如 -----> 这个游戏 <-----
使用
dump出来就可以看到在其中就能找到一个

这里使用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 会非常的香

- 作者:axhlzy
- 链接:https://github.com/axhlzy/article/ee37ed2e-3516-4ca5-87ce-193c38c0fe7a
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

