首页
论坛
课程
招聘
如何调用以及HOOK il2cpp编译方式下的函数?

我想给某个游戏添加一些功能,类似MOD的那种。然后我逆出了这个游戏所有函数的地址,我试着注入了一个DLL,DLL会直接用地址调用游戏的函数,参数和返回值还有传参方式(__fastcall)都是对的,但游戏还是闪退了,用CE调试以后发现函数确实被调用了,调试了很久,最终闪退的原因还是无法确定,几乎所有函数都会闪退。
我知道il2cpp编译以后,所有函数的第一个参数都是this指针,但是哪怕我调用只有这一个参数的函数,this指针直接用RCX里面的地址,几乎保证了和它自己调用没有区别,还是会闪退。
所以我想知道,是不是还有什么未知的原因会导致闪退,比如Unity引擎。因为我调用的函数涉及到了更新UI的操作。

 

第二个问题就是,我已经逆出了这个游戏所有的类,有没有一种简单的方式可以让我像正向开发一样,在HOOK的代码中调用这些类呢?这些类都是C#写的,但我用的是C++,每次我都只能从原来的内存里复制一块出来,然后根据偏移在内存上更改,如果可以直接用高级语言的一个变量来做这些更改,会很方便。

收藏
0条回答