Mybatis Plus 插件注册机
分析的版本为2.83
先看下面的代码
public static synchronized boolean refValid()
{
if (!validated)
{
validated = true;
try
{
String key = MybatisSetting.getInstance().getKey(); //KEY
String result = MybatisSetting.getInstance().getResult(); //RESULT
if ((StringUtils.isBlank(key)) || (StringUtils.isBlank(result)))
{
valid = false;
}
else
{
Key publicKey = Codec.loadKey(key);
Codec.decrypt(publicKey, Hexs.toBytes(result));
valid = true;
}
}
catch (Exception e)
{
valid = false;
}
}
return valid;
}
这里说明KEY和RESULT其实是C:Usersilanyu\.IntelliJIdea2016.2configoptionsmybatis.xml这个文件中获取到的
下面的
Key publicKey = Codec.loadKey(key);
Codec.decrypt(publicKey, Hexs.toBytes(result));
这两句是校验KEY和RESULT的
具体代码如下
public static Key loadKey(String key)
{
Preconditions.checkNotNull(key, "key must not be null");
try
{
KeyFactory factory = KeyFactory.getInstance("RSA");
X509EncodedKeySpec spec = new X509EncodedKeySpec(Hexs.toBytes(key));
return factory.generatePublic(spec);
}
catch (Exception e)
{
throw new RuntimeException(e);
}
}
public static byte[] decrypt(Key key, byte[] raw)
{
Preconditions.checkNotNull(key, "key must not be null");
Preconditions.checkNotNull(raw, "raw must not be null");
try
{
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(2, key);
return cipher.doFinal(raw);
}
catch (Exception e)
{
throw new RuntimeException(e);
}
}
首先对KEY检查,看是否含有公钥,有就通过,没有就失败
然后用KEY里的公钥检测能不能用来解密RESULT
针对性的注册机:
package com.lanyus;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import java.security.*;
import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey;
public class Main {
public static void main(String[] args) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, BadPaddingException, IllegalBlockSizeException {
KeyPairGenerator keygen = KeyPairGenerator.getInstance("RSA");
keygen.initialize(512);
KeyPair kp = keygen.generateKeyPair();
RSAPrivateKey privateKey = (RSAPrivateKey)kp.getPrivate();
RSAPublicKey publicKey = (RSAPublicKey)kp.getPublic();
System.out.println("KEY:\n" + bytesToHexString(publicKey.getEncoded()) + "\n");
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE,privateKey);
System.out.println("RESULT:\n" + bytesToHexString(cipher.doFinal("ilanyu".getBytes())) + "\n");
}
private static String bytesToHexString(byte[] src){
StringBuilder stringBuilder = new StringBuilder("");
if (src == null || src.length <= 0) {
return null;
}
for (byte aSrc : src) {
int v = aSrc & 0xFF;
String hv = Integer.toHexString(v);
if (hv.length() < 2) {
stringBuilder.append(0);
}
stringBuilder.append(hv);
}
return stringBuilder.toString();
}
}
计算出来的KEY和RESULT:
KEY:
305c300d06092a864886f70d0101010500034b003048024100878e6bea07d7052499419efe4ed4382f426dc5ca2d01140f896a6d0566526c6757ff591347d888bd032f94ce92609ce0cc349de0ba9043dc3163f9667438a14d0203010001
RESULT:
414834456369b9329793f0b42c6c0af67d00516c7ceb136ad221fa0355dc2cd611ed1bcd36b61d00ba7e587d253c1de145831cd0d65b891c9dc34430f9e69c59
说下KEY和RESULT的使用方法:
1、安装官方版mybatis plus插件,然后关闭IDEA
2、hosts中添加127.0.0.1 www.codesmagic.com
3、记事本打开C:Users\{USER}\.IntelliJIdea{VERSION}configoptionsmybatis.xml,写入到对应的字段中,打开idea,mybatis插件已经激活
按照这种方法并没有激活,请问是什么原因,麻烦回复,谢谢
@hotsacen激活了,谢谢楼主。
3.6.2版本怎么激活
重新启动idea后mybatis.xml文件中的KEY和RESULT自动被清空了
@hotsacen
你用的哪个版本,我这测试了idea 15.0.6+mybatis plus 2.64以及idea 2016.2+mybatis plus 2.83,都没问题
mac系统下,修改mybatis.xml后,重启idea,key和result也被清空了。
mybatis-plus 2.8.3 版本 idea 2016.2
@fengfujie
mac系统
这个文件在哪?
@fengfujiemac系统 有mybatis.xml 这个文件?
@大头
有的
同样,Windows系统,mybatis-plus 2.8.3 版本 idea 2016.2
@hotsacen
修改mybatis.xml,是要在关闭idea的状态修改,修改后打开,试试呢。或者下载链接: http://pan.baidu.com/s/1i4XHuwX 密码: 7ug6,这份在关闭Idea的状态下复制到对应目录去
@hotsacen
知道了,把127.0.0.1 www.codesmagic.com加hosts
@ilanyu试了几次好像是没有问题了,多谢博主的耐心解答
成功了,不过每次启动IDEA后都弹出一个退出的对话框,你们也是这样的么?
博主有没有遇到Mybatis Plus 插件启动分析时,会提示退出idea,只有第一次打开有对应xml的JAVA类时才提示,Mac和win下都会有,2016.2的版本,插件用的最新的,有没有解决办法?
mac系统下这个文件在哪呢,没找到
mybaits plus 2.8.5 + idea2016.2 亲测可用,多谢楼主!!!
@馒头昨天重启了一下idea,key和result都被清空了,但是再次写进去还是能破解,难道是需要每次重启idea都要重新输入吗
@馒头
windows 清除 key 的 要在hosts 加入 127.0.0.1 www.codesmagic.com 就可以解决了
@大头 昨天也改过hosts了
博主太牛了,激活成功
mac下找到插件安装位置了,但是里面并没有mybatis.xml
另外看了rover12421/MyBatisPluginCrack ,想请教下使用方法,不知道加载哪个jar
@四四
貌似要自己编译源码
@ilanyu
编译没问题,可是要打包成jar文件,那么jar文件里的MANIFEST.MF里的mainclass是哪个啊?
@ilanyu
编译没问题,可是要打包成jar文件,那么jar文件里的MANIFEST.MF里的mainclass是哪个啊?
@p0mp0k0
用gradle编译,自动就会有的
博主,mac系统没有mybatis.xml 文件, 请问该如何激活
idea 2016.2 mybatis plug 2.85
windows 清除 key 的 要在hosts 加入 127.0.0.1 www.codesmagic.com
@大头
mac下也有这文件的,位置不同,具体我也不知道,可以试试rover12421的
2.16.2.1+2.85 没通过
@p0mp0k0
win测试没问题
博主,我想知道mac版本的mybatis.xml这个文件在哪?
idea-2016.2.4, mybatis plugin-2.86, 可用。
谢谢博主!
@zhYou
mybatis插件推荐使用rover12421的agent方式
楼主你好,在mybatis.xml中并没有找到key,result,能不能贴一下你的文件,我模仿这试一下。
版本为:intellij idea 2016.2.4 mybatis plugin:2.86
@浪痕
mybatis用javaagent方式破解
v2.9 破解成功。谢谢楼主
win10 idea2016.2 mybatis2.9 破解成功!十分感谢!!
mac 下在/Users/dds/Library/Preferences/IntelliJIdea2016.3/options/目录下,IntelliJIdea2016.3 可能是其它版本
楼主666,牛批的很!
v2.91 idea2017.1 成功使用,谢谢楼主!
强无敌~