-
-
[求助]安卓apk进行hook时,回调函数的地址保存
-
发表于:
2016-5-21 17:57
3205
-
[求助]安卓apk进行hook时,回调函数的地址保存
最近碰到一个问题,请大神给点方法或建议:
1.一个安卓的apk,其是用unity3d写的,C#语言
2.其中有一个函数,其原型如下:
public void tcp_data (char msg[], CMsgHandler callback)
msg:表示一个字符串,用其中前四个字符表示当前msg的消息类型(如聊天、交易等)
callback:表示此消息的回调函数,其中 CMsgHandler的原型如下:
public delegate void CMsgHandler(CMsgResult result, CMsg msgRes, CMessenger messenger);不同的消息,有不同的回调函数
3.现在的问题是,当我去hook到这个tcp_data时,想把当前消息的回调函数地址保存下来,以便自己主动发包时使用。
但我用一个void *p=callback去保存时,发现这个 p并不能把这个回调函数的地址保存下来,两次聊天消息,相同的内容,其保留下来的p的值都不一样(连续发两条同样内容的聊天消息)
故请大神指导下,应该怎么搞?mono中有没有类似下面寻找类的函数,可以真正把这个回调函数callback的地址真正保存下来?
备注:mono中寻找类的相关函数 mono_object_get_class(根据hook时的this指针找到相关类) ,get_class_method(得到相关类的中方法)
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)