记录一次破解 xxx jar 包 的过程。
- 添加 javasisst 依赖。
- 写代码替换两个方法的返回值,生成新的 .class 文件。
import javassist.CannotCompileException; import javassist.ClassPool; import javassist.CtClass; import javassist.CtMethod; import javassist.NotFoundException; import java.io.IOException; /** * @Date:2020/7/3 11:52 下午 */ public class Crack { public static void main(String[] args) throws NotFoundException, CannotCompileException, IOException { ClassPool.getDefault().insertClassPath("/xxxx/Downloads/.jar"); CtClass zzZJJClass = ClassPool.getDefault().getCtClass("com.xxxx"); CtMethod zzv = zzZJJClass.getDeclaredMethod("xxxx"); zzv.setBody("{return 1;}"); CtMethod zzv111 = zzZJJClass.getDeclaredMethod("YYYY"); zzv111.setBody("{return 1;}"); zzZJJClass.writeFile("/xxxx/shfq"); } }
- 把 xxx.jar 重命名为 xxx.zip
- 解压 xxx.zip
- 把旧的 .class 文件删掉,新生成的放进去。
- 删除 META-INF 下的 .RSA 、.SF 后缀的文件。
- 选中 com、META-INF 这两个目录然后右键压缩 2 个项目。
- 在苹果系统下,压缩完会默认生成 __MACOSX 目录,需要把它删除,删除方法见 删除压缩文件中__MACOSX 目录的方法 。
- 把 .zip 后缀改为 .jar 。
至此破解完毕。至于怎么找到需要破解的类以及方法,在这里就不说了,毕竟用破解软件是不对的。破解代码里的被破解的类和方法不是真实的,以 xxx、YYY 代替。不用私信问我破解方法了,私信问我,我也不会回的。在这里仅仅是记录而已。