您的位置:首页 > 编程语言 > Java开发

Idea的mybatis插件破解

2016-09-16 18:50 302 查看

背景

一些java软件要进行收费,很多采用远程认证的方式,jar包代码中肯定有一个地方处理是否已经认证。

我们通过一些手段,如本地建立一个认证服务器、修改jar包class文件修改认证逻辑等等。

分析

本地采取idea插件[mybatis pluin]进行实验,因为这个比较简单。

在JavaUtils类中有一个refValid方法验证key和result是否有效

在一个ActivationDriver类的activate方式

是进行激活验证。

环境

MAC Intellj 15 (16也是类似的)

步骤

下载插件找到对应的存储jar包的位置,如在我的机器上是~/Library/Application Support/IntelliJIdea15/mybatis_plus/lib

下载后新建一个工程,将这个jar包加入到项目的依赖Libary。 将javassist加入到依赖中,用于修改class文件。

编写一个简单的Main类和Main方法。

package javaassist;

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

import java.io.IOException;

/**
* Description:
*
* @author liuzhengyang
* @version 1.0
* @since 2016-09-16
*/
public class Main {
public static void main(String[] args) throws NotFoundException {
ClassPool pool = ClassPool.getDefault();
CtClass driverClass = pool.get("com.seventh7.mybatis.ref.license.ActivationDriver");
CtClass javaUtil = pool.get("com.seventh7.mybatis.util.JavaUtils");
CtMethod activate = driverClass.getMethod("activate", "(Ljava/lang/String;)Lcom/seventh7/mybatis/ref/license/ActivationResult;");
CtMethod refValid = javaUtil.getDeclaredMethod("refValid");
try {
refValid.setBody("{return true;}");
} catch (CannotCompileException e) {
e.printStackTrace();
}
System.out.println(activate);
try {
activate.setBody("{com.seventh7.mybatis.ref.license.LicenseData licenseData = new com.seventh7.mybatis.ref.license.LicenseData(\"1\", \"2\");com.seventh7.mybatis.ref.license.ActivationResult res =com.seventh7.mybatis.ref.license.ActivationResult.success(licenseData); return res;}");
} catch (CannotCompileException e) {
e.printStackTrace();
}
try {
driverClass.writeFile("hello");
javaUtil.writeFile("hello");
} catch (CannotCompileException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}


这样会在执行java命令的目录(在Idea里是project下面的目录)生成一个hello文件夹,下面有ActivationResult这个类。

将com文件夹和mybatis_plus.jar文件夹放到一个目录,执行

jar uvf mybatis_plus.jar com


这样就把修改的class文件替换了。

重启Idea即可生效。

我把破解的jar包上传到了

IDEA 2015https://pan.baidu.com/s/1o79n38e

IDEA 2016 https://pan.baidu.com/s/1pKKP06Z

,直接选择本地安装就可以。

更多liuzhengyang.github.io
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  idea java mybatis 插件