type
status
date
slug
summary
tags
category
icon
password
允许自我附加(Attach Self):在Java 9及之后的版本中,默认情况下不允许进程自我附加,代码通过修改JVM内部标志位来绕过这一限制。
Permit.godMode();
Field AttachSelfEnabledFlag = Class.forName("sun.tools.attach.HotSpotVirtualMachine").getDeclaredField("ALLOW_ATTACH_SELF");该方法修改JVM内部的
ALLOW_ATTACH_SELF标志位,允许进程自我附加。- Permit.godMode():使用
Permit库绕过Java访问控制。
- 反射操作:
- 通过反射获取
HotSpotVirtualMachine类中的ALLOW_ATTACH_SELF字段。 - 通过
MethodHandles和反射机制,动态修改该字段的修饰符,移除final标志位。 - 将
ALLOW_ATTACH_SELF字段设置为true,允许自我附加。