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
,允许自我附加。