-
-
[原创]如何修改unity HybridCLR 热更dll
-
发表于:
2022-12-22 14:27
32062
-
[原创]如何修改unity HybridCLR 热更dll
由于很多原因比如修bug、减小包体积、迅速更新,游戏需要使用到热更。
目前比较热门的热更方法,一种是使用lua,比如xlua、tolua之类的,还有一种是使用热更框架,比如HybridCLR、ILRuntime。
如何修改lua,已经有很多文章了,证明了使用lua被篡改是很简单的一件事。那么,热更框架就安全了吗?
项目地址:https://github.com/focus-creative-games/hybridclr
不得不说,通过阅读文档,这个框架是修改了il2cpp来实现的原生级热更,真的是很厉害。
原生的unity il2cpp是将游戏所有代码编译到libil2cpp.so,不会生成Assembly-CSharp.dll。
首先在github上拉取测试demo,并打包成apk,运行起来截图:
我们可以看到游戏加载了热更的Assembly-CSharp.dll,并且输出hello,HybridCLR。
可以通过查找字符串“image can't be init again”来获取加载函数,找到这个函数并hook,就能将热更的dll dump下来,修改内容后并重新加载进去。
通过查找发现目标函数的偏移为0x66bbd0,获取到的dll内容为:
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2022-12-22 14:30
被八重嘤编辑
,原因: