找回密码
 初始化身份识别芯片
搜索
查看: 803|回复: 2

[已解决]请问如何在远行星号mod使用mixin?

[复制链接]

巡洋大副

AlphardPaarthurnax

发表于 2026-6-23 08:30:05 | 显示全部楼层 |阅读模式
本帖最后由 Alphard 于 2026-6-27 03:30 编辑

如题,已经用普通的手段写了自己的ClassLoader,绕过了反射限制
但是在尝试添加mixin时遇到了困难

势力巨擘

安全超驰协议

发表于 2026-6-23 09:16:49 | 显示全部楼层
嗯...要不要去加下MOD群? 我记得对BUG和验证状态之类的问题, 回复还是蛮有活力的说~
快就是好! 多就是强! 超! 超! 冲!

战列舰长

电子生命

发表于 2026-6-26 12:40:37 | 显示全部楼层
本帖最后由 全自动电棍 于 2026-6-26 12:49 编辑

你可以看一下我手搓的Nanoforge,如果你的实现是pre-main类型的话
https://github.com/StarFabricated/NanoForge/tree/dev

以及Enaium的这个视频
https://www.bilibili.com/video/BV1NG4y1A7GN

但我看你好像是像用自定义cl搞侧载在原版框架下使用。
你可以考虑一下运行时类转换,在self-attach之后用ClassTransformer库,他这个有Mixin注解翻译
https://github.com/Lenni0451/ClassTransform

同作者还有一个库可以让你不用手动self-attach,并且提供了更多打破封装性的工具
https://github.com/Lenni0451/Reflect

关于self-attach你可以看一下冰蝎作者的这篇文章
https://www.cnblogs.com/rebeyond/p/15162264.html

self-attach其实挺简单的。只要有反射就行。
反射拿unsafe然后强制解除allowAttachSelf限制,之后就能随便用instrument了
但这种方式的类转换能力是有限制的,你无法对你加载前就已经执行过(且仅执行一次)的代码生效。
即使你转换了类,效果也是在你转换前便起效的,换句话说,你无法修改你加载前已经发生的事情。

原版Mixin其实也是有Agent的,但是没见到有人用它
你说的对,但是《远神》是由Fractal Softworks, LLC.自主研发的一款上古史山Java游戏。游戏被设计为不使用「SemVar」的非标准版本号,在这里,被Alex选中的人将被授予「授权」,引导字节码神力。你将扮演一位名为「开发者」的神秘角色,在并不自由的逆向工程中邂逅性格各异、能力独特的DMCA,被它们一起击败,找回Alex失散的亲人——同时,逐步发掘「CoreModding」的真相。
*滑块验证:

本版积分规则

Archiver|手机版|小黑屋|远行星号中文论坛

GMT+8, 2026-9-14 00:25

Powered by Discuz! X3.5

© 2001-2077 Tencent Cloud | Durian Software Studio

快速回复 返回顶部 返回列表