首页
社区
课程
招聘
[求助]VirtualApp+YAHFA方案无法调用Unity项目mono.so的方法
发表于: 2020-2-15 10:14 3922

[求助]VirtualApp+YAHFA方案无法调用Unity项目mono.so的方法

2020-2-15 10:14
3922
我想开发一个测试工具,通过VirtualApp打开Unity游戏,然后通过mono.so加载一个新的DLL,达到嵌入工具到游戏里的目的。
可是发现我Hook到mono.so里方法后,唤起游戏,游戏执行过程中并不会触发hook,感觉我手动加载的mono.so和游戏自己加载的mono.so不在一个内存。
手动dl_open mono的log:
2020-02-12 10:16:20.017 8140-8140/? D/VA++: do_dlopen_V24 : /data/user/0/io.virtualhook/virtual/data/app/com.tink.unityhook.unity/lib/libmono.so, return : 0x2fe62feb.
游戏加载mono的log:
2020-02-12 10:16:20.220 8140-8160/? D/VA++: do_dlopen_V24 : /data/user/0/io.virtualhook/virtual/data/app/com.tink.unityhook.unity/lib/libmono.so, return : 0xe935cc59.
我Hook了Unity的Android启动类UnityPlayerActivity:OnCreate方法,在方法里通过jni调用mono.so里的mono_get_root_domain方法
mono_get_root_domain_func getRootDomainFunc = findSymbol("libmono.so", "mono_get_root_domain");
LOGI("mono_get_root_domain_func %s", func);
MonoDomain *domain = getRootDomainFunc();
if (!domain)
{
LOGI("loadDll err get root domain");
return;
}
发现得到的domain也是为空的,是否真的说明两个mono.so不在一个内存呢?
请教各位大佬,我该如何做才能调用到Unity游戏里mono.so的方法呢?
我的核心需求是不改原Unity项目的情况下,将一个新的DLL加载到Unity项目里执行,达到我的工具可以脱离项目,方便适配各个项目的目的。
本人是Unity开发者,对安卓|Java的这部分是新接触,望各位不吝赐教。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 2510
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
帮顶
2020-2-15 10:27
0
雪    币: 302
活跃值: (825)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
为什么不在onSoLoaded那里添加代码?
2020-2-15 11:06
1
雪    币:
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
啊!我今晚试试!
2020-2-15 18:24
0
雪    币:
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
天边之云 为什么不在onSoLoaded那里添加代码?
感谢3楼,一言惊醒梦中人,onSoLoaded内捕获mono.so解决问题了。
2020-2-16 00:00
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
有懂安卓加解密的吗?
2020-2-19 23:59
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
wx_小小书童 感谢3楼,一言惊醒梦中人,onSoLoaded内捕获mono.so解决问题了。
请问onSoLoaded内捕获mono.so 有参考代码不,新手小白求教
2021-3-1 17:08
0
游客
登录 | 注册 方可回帖
返回
//