用javassist破解java软件

破解Java软件,这里提供两种思路, 1)修改主程序,使主程序不调用验证器; 2)修改验证器, 使验证器始终返回true.
用javassist可以实现这两种方式, 本质上一样的, 都是修改class文件达到目的. 很明显, 第一种烦琐, 第二种简单.
以下以第二种为例, 简单模拟一下.

这是主程序:
package trial.crack;

public class App {
public static void main(String[] args){
System.out.println(Checker.check());
}
}


这是验证器:
package trial.crack;

public class Checker {
public static boolean check(){
return false;
}

}

验证器的check方法负责验证工作, 该方法始终返回false.


这是Cracker:
package trial.crack;

import java.lang.reflect.Method;

import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
import javassist.NotFoundException;

public class Cracker {
public static void main(String[] args) throws Except

你可能感兴趣的:(用javassist破解java软件)