-javaagent

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文件重新编译过时则动态重新对应的类。


-javaagent_第1张图片
指定premain
-javaagent_第2张图片
premain
-javaagent_第3张图片
字节码增强转换

你可能感兴趣的:(-javaagent)