CC4_CC2_CC5_CC7

CC4 环境: Commons-Collections 4.0 https://mvnrepository.com/artifact/org.apache.commons/commons-collections4/4.0 xml 1 2 3 4 5 6 7 8 <dependencies> <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-collections4 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-collections4</artifactId> <version>4.0</version> </dependency> </dependencies> JDK 8u65 分析: 以 ChainedTransformer.transform 为出发点,往回找 ...

CC3

再次深入学习动态加载字节码: 动态加载字节码 1、什么是Java的字节码 严格来说,Java字节码(ByteCode)其实仅仅指的是Java虚拟机执行使用的一类指令,通常被存储在.class文件中。 ...

CC6

环境: JDK 8u71: https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html Comoons-Collections 3.2.1 CC6 链分析: 在 CC1 中分析过 JDK 8u71之后的 AnnotationInvocationHandler.readObject 的写法改变,导致 CC1 链用不了,也就是说: AnnotationInvocationHandler.readObject AnnotationInvocationHandler.invoke.memberValues.get 这半条链子用不了,所以要找一个替代,这个替代也应该调用了 LazyMap.get 方法,之后的链子和 CC1 一样。 ...

CC1

环境 1、JDK-8u65 https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html 注意:国家不要选为国区,国区对应的 8u65 下载的时候会自动下载 8u111 等高版本! 2、Maven-commons-collections 3.2.1 https://mvnrepository.com/artifact/commons-collections/commons-collections/3.2.1 xml 1 2 3 4 5 6 <!-- https://mvnrepository.com/artifact/commons-collections/commons-collections --> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.2.1</version> </dependency> 3、修改 sun 包-方便调试 https://hg.openjdk.org/jdk8u/jdk8u/jdk/rev/af660750b2f4 ...