(投科技区简介只能写 250 字,所以投了游戏区)
基于jvm attach机制 我的世界运行时热修改class方案
工具:
arthas,alibaba 的 jvm 运行时调试工具,官方链接 https://github.com/alibaba/arthas
jbe、jdgui、我的世界1.8.9mdk反混淆代码等 蓝奏云:https://wwe.lanzoui.com/b01o9opyd 密码:dcti
原理:
jvm attach 用于连接目标jvm进程,
java agent 功能,通过 agent agentmain 提供的 instrument 获取、修改目标jvm进程已加载的class。
小结:
视频使用人工定位字节码,人工修改字节码,比较麻烦,比较好的方式是使用 asm、Javassist 之类的库编写定位逻辑和修改逻辑。
热注入方案的局限性,不能对目标 class 字段进行修改,包括增加删除字段,也不能修改字段类型和可访问性。也不能增加删除方法,只能对已有方法体修改逻辑。不过可以额外加载jar,已有方法体中增加调用额外jar的逻辑。