无标题无名氏No.64295053 只看PO
2024-11-05(二)14:35:05 ID:4WVuFwF 回应
有无.net大手子,我希望实现动态修改方法(不要monomod,因为不支持arm平台)
目前的思路是想办法获取到jit之后方法的入口点内存地址然后注入汇编,但是卡在了获取获取入口点内存地址这一步,肥哥们有没有什么头猪
无标题无名氏No.64375368
2024-11-13(三)10:59:25 ID: 4WVuFwF (PO主)
>>No.64368477
我只是自己代码范围用哪有这么麻烦,我是要修改这个方法让这个程序所有调用这个方法的地方都是调用修改后的方法,自己整个委托没有意义啊( ゚∀。)
无标题无名氏No.64375372
2024-11-13(三)11:00:31 ID: 4WVuFwF (PO主)
>>No.64368512
c#的反射最多能修改已经new出来的实例的方法,不能修改类的方法
无标题无名氏No.64692969
2024-12-14(六)17:45:04 ID: YdWBvB8
建议先说场景,严重怀疑是x-y问题
>>No.64375368
如果是这样为什么不直接用一个单例委托,只要改变动态改变委托指向的方法就好了
>>No.64360946
看你这里的意思又好像是要对二进制IL进行hook之类的,那就找专门的hook方案吗
无标题无名氏No.64693540
2024-12-14(六)18:45:54 ID: 4WVuFwF (PO主)
>>No.64692969
说我的需求罢,我是在为一个在安卓上xamarin用C#编写的游戏写mod加载器,作为一个mod来说是无法对应用本身做静态修改的,所以说我需要实现一个在安卓arm平台上的il动态修改来进行方法绕行
无标题无名氏No.64693546
2024-12-14(六)18:46:28 ID: 4WVuFwF (PO主)
>>No.64692969
至于现有hook方案,比如monomod不支持arm平台
无标题无名氏No.64728675
2024-12-18(三)01:46:56 ID: YfgpobQ
从零实现热更框架挺麻烦的,要把整个app切成两部分,需要热更新的部分全编译成IL然后上ILRuntime执行
从简单可行的角度来说,我的建议是:
- 如果需要修改的逻辑比较有限,那在本体里留好mod接口,加载mod的时候主动调用
- 如果希望mod一切,那我建议全部游戏逻辑进lua,c#当个壳