写作绅士,读作丧尸 X岛揭示板
 首页版规 |用户系统 |移动客户端下载 | 丧尸路标 | | 常用图串及路标 | 请关注 公众号:【矛盾苇草】| 人,是会思考的芦苇
常用串:·豆知识·跑团板聊天室·公告汇总串·X岛路标

No.64295053 - 无标题 - 技术宅


回应模式
No.64295053
名 称
E-mail
标题
颜文字
正文
附加图片
•程序语言、压制投稿、视频制作以及各计算机领域的技术问题
•我觉得还是CSDN靠谱一点
•本版发文间隔为15秒。

无标题 无名氏 2024-11-05(二)14:35:05 ID:4WVuFwF [举报] [订阅] [只看PO] No.64295053 [回应] 管理
有无.net大手子,我希望实现动态修改方法(不要monomod,因为不支持arm平台)

目前的思路是想办法获取到jit之后方法的入口点内存地址然后注入汇编,但是卡在了获取获取入口点内存地址这一步,肥哥们有没有什么头猪
Tips 无名氏 2099-01-01 00:00:01 ID:Tips超级公民 [举报] No.9999999 管理
( 」゚Д゚)」<X岛微信公众号已开放:【矛盾苇草】 官方微博:【X岛揭示板】
收起 查看大图 向左旋转 向右旋转
无标题 无名氏 2024-11-05(二)14:50:07 ID:4WVuFwF (PO主) [举报] No.64295185 管理
jp
无标题 无名氏 2024-11-05(二)19:55:58 ID:gnKY6f5 [举报] No.64298167 管理
上js写eval( ゚∀。)
无标题 无名氏 2024-11-08(五)02:27:51 ID:YfgpobQ [举报] No.64323194 管理
c#热更新的话,unity那边挺多开源实现,或许可以借鉴一下
无标题 无名氏 2024-11-11(一)01:06:49 ID:tjnmeqM [举报] No.64352583 管理
感觉可以整ast
无标题 无名氏 2024-11-11(一)01:07:58 ID:tjnmeqM [举报] No.64352590 管理
>>No.64352583
c#的ast应该是可以运行中编译的
无标题 无名氏 2024-11-11(一)21:27:42 ID:4WVuFwF (PO主) [举报] No.64360946 管理
>>No.64352590
我不是要运行中编译啊,我是要动态修改已经存在的方法啊( ゚∀。)

要修改的方法可以是自己写的,也可以是其他三方库里的
无标题 无名氏 2024-11-11(一)21:28:10 ID:4WVuFwF (PO主) [举报] No.64360952 管理
>>No.64298167
和js有什么关系( ゚∀。)
无标题 无名氏 2024-11-12(二)16:59:32 ID:tjnmeqM [举报] No.64368477 管理
>>No.64360946
你可以动态修改ast,修改完编译放进delegate里调用不就行了?
无标题 无名氏 2024-11-12(二)17:02:37 ID:tjnmeqM [举报] No.64368512 管理
或者你可以试试 c# 的其他反射功能
无标题 无名氏 2024-11-13(三)10:59:25 ID:4WVuFwF (PO主) [举报] No.64375368 管理
>>No.64368477
我只是自己代码范围用哪有这么麻烦,我是要修改这个方法让这个程序所有调用这个方法的地方都是调用修改后的方法,自己整个委托没有意义啊( ゚∀。)
无标题 无名氏 2024-11-13(三)11:00:31 ID:4WVuFwF (PO主) [举报] No.64375372 管理
>>No.64368512
c#的反射最多能修改已经new出来的实例的方法,不能修改类的方法
无标题 无名氏 2024-12-13(五)16:41:38 ID:DIdPlGi [举报] No.64682703 管理
>>No.64295053
所以解决了吗,好奇.jpg
无标题 无名氏 2024-12-14(六)14:57:11 ID:4WVuFwF (PO主) [举报] No.64691735 管理
>>No.64682703
没有,卡住了( ´_ゝ`)
无标题 无名氏 2024-12-14(六)17:45:04 ID:YdWBvB8 [举报] No.64692969 管理
建议先说场景,严重怀疑是x-y问题
>>No.64375368
如果是这样为什么不直接用一个单例委托,只要改变动态改变委托指向的方法就好了
>>No.64360946
看你这里的意思又好像是要对二进制IL进行hook之类的,那就找专门的hook方案吗
无标题 无名氏 2024-12-14(六)18:45:54 ID:4WVuFwF (PO主) [举报] No.64693540 管理
>>No.64692969
说我的需求罢,我是在为一个在安卓上xamarin用C#编写的游戏写mod加载器,作为一个mod来说是无法对应用本身做静态修改的,所以说我需要实现一个在安卓arm平台上的il动态修改来进行方法绕行
无标题 无名氏 2024-12-14(六)18:46:28 ID:4WVuFwF (PO主) [举报] No.64693546 管理
>>No.64692969
至于现有hook方案,比如monomod不支持arm平台
无标题 无名氏 2024-12-18(三)01:46:56 ID:YfgpobQ [举报] No.64728675 管理
从零实现热更框架挺麻烦的,要把整个app切成两部分,需要热更新的部分全编译成IL然后上ILRuntime执行
从简单可行的角度来说,我的建议是:
- 如果需要修改的逻辑比较有限,那在本体里留好mod接口,加载mod的时候主动调用
- 如果希望mod一切,那我建议全部游戏逻辑进lua,c#当个壳

UP主: