Java探针-Java Agent技术
在利用JetbrainsCrack对IDEA进行破解的时候有用到如下-javaagent参数:
-javaagent:/Applications/IntelliJ IDEA.app/Contents/bin/JetbrainsCrack-3.1-release-enc.jar
另外还有springloaded工具,事实上这里利用到的是Java探针技术。
原理
JavaAgent是运行在main方法之前的拦截器,我们指定编写好的Jar包,Jar包中指定一个类,并且方法名叫premain,这样在运行main方法前就会先执行premain方法,premain方法中会定义一个或多个ClassFileTransformer接口,ClassFileTransformer实现类会在某些class被装载到JVM之前将class字节码转换掉,从而达到动态注入代码的目的对某些类的字节码进行代理增强。
springloaded:代理过程如下是一样的,具体源码看不太懂,应该是启动时先将所有class文件加入到自己的监控中,当发现有class文件重新编译过时则动态重新对应的类。



网友评论