java rt.jar 代码注入
## 前言
众所周知rt.jar是JDK中的一个jar包,里面包含了JDK中的核心类库,如java.lang、java.util等,这些类库是JDK中的基础类库,是JDK中的核心,也是Java程序运行的基础。在Java程序运行时,JVM会自动加载rt.jar中的类库,这些类库会被加载到JVM的内存中,供Java程序使用。<br/>
因此,如果我们能够在rt.jar中注入一些代码,那么这些代码就会被JVM加载到内存中,在每次Java程序运行时,这些代码都会被执行,这样就可以实现权限维持。
## 尝试
最初的尝试是直接修改`rt.jar`,将一些代码注入到常用的类库中,如`java.lang.String`、`java.util.ArrayList`等,但是这样做有两个问题。
1. jvm初始化`ClassLoader`时很多类并未加载,这时在注入的代码里做操作会导致jvm初始化失败