<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.28.0-GA</version>
</dependency>
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
public class Cracker {
public static void main(String[] args) throws Exception {
cracker();
}
public static void cracker() throws Exception {
// 获取 Jar 包
ClassPool.getDefault().insertClassPath(
"D:/jdeli-imageio-cracker.jar");
CtClass c2 = ClassPool.getDefault().getCtClass("com.idrsolutions.image.JDeliImage");
CtMethod aMethod = c2.getDeclaredMethod("optimiseImage",new CtClass[]{ClassPool.getDefault().makeClass("java.awt.image.BufferedImage")});
// 重置方法体
aMethod.setBody("{ return $1;}");
c2.writeFile();
}
}
运行上面然后得到的class进行替换jar包里面的class文件即可。生成的class文件默认在当前项目的com.idrsolutions.image包下面。
提示:以上操作仅供学习研究参考,切勿用于商用。
地址:https://www.leftso.com/article/1120.html