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:\Users\ilanyu\.IntelliJIdea2016.2\config\options\mybatis.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}\config\options\mybatis.xml,写入到对应的字段中,打开idea,mybatis插件已经激活

标签: none

已有 38 条评论

  1. hotsacen hotsacen

    按照这种方法并没有激活,请问是什么原因,麻烦回复,谢谢

    1. 素质 素质

      @hotsacen激活了,谢谢楼主。

  2. hotsacen hotsacen

    重新启动idea后mybatis.xml文件中的KEY和RESULT自动被清空了

    1. @hotsacen
      你用的哪个版本,我这测试了idea 15.0.6+mybatis plus 2.64以及idea 2016.2+mybatis plus 2.83,都没问题

  3. fengfujie fengfujie

    mac系统下,修改mybatis.xml后,重启idea,key和result也被清空了。
    mybatis-plus 2.8.3 版本 idea 2016.2

    1. fan fan

      @fengfujie

      mac系统
      这个文件在哪?

    2. 大头 大头

      @fengfujiemac系统 有mybatis.xml 这个文件?

  4. hotsacen hotsacen

    同样,Windows系统,mybatis-plus 2.8.3 版本 idea 2016.2

    1. @hotsacen

      修改mybatis.xml,是要在关闭idea的状态修改,修改后打开,试试呢。或者下载链接: http://pan.baidu.com/s/1i4XHuwX 密码: 7ug6,这份在关闭Idea的状态下复制到对应目录去

    2. @hotsacen
      知道了,把127.0.0.1 www.codesmagic.com加hosts

      1. hotsacen hotsacen

        @ilanyu试了几次好像是没有问题了,多谢博主的耐心解答

  5. starlin starlin

    成功了,不过每次启动IDEA后都弹出一个退出的对话框,你们也是这样的么?

  6. boyxie boyxie

    博主有没有遇到Mybatis Plus 插件启动分析时,会提示退出idea,只有第一次打开有对应xml的JAVA类时才提示,Mac和win下都会有,2016.2的版本,插件用的最新的,有没有解决办法?

  7. fan fan

    mac系统下这个文件在哪呢,没找到

  8. 馒头 馒头

    mybaits plus 2.8.5 + idea2016.2 亲测可用,多谢楼主!!!

    1. 馒头 馒头

      @馒头昨天重启了一下idea,key和result都被清空了,但是再次写进去还是能破解,难道是需要每次重启idea都要重新输入吗

      1. 大头 大头

        @馒头
        windows 清除 key 的 要在hosts 加入 127.0.0.1 www.codesmagic.com 就可以解决了

        1. 馒头 馒头

          @大头 昨天也改过hosts了

  9. linuxlsx linuxlsx

    博主太牛了,激活成功

  10. 四四 四四

    mac下找到插件安装位置了,但是里面并没有mybatis.xml
    另外看了rover12421/MyBatisPluginCrack ,想请教下使用方法,不知道加载哪个jar

    1. @四四
      貌似要自己编译源码

      1. p0mp0k0 p0mp0k0

        @ilanyu
        编译没问题,可是要打包成jar文件,那么jar文件里的MANIFEST.MF里的mainclass是哪个啊?

      2. p0mp0k0 p0mp0k0

        @ilanyu
        编译没问题,可是要打包成jar文件,那么jar文件里的MANIFEST.MF里的mainclass是哪个啊?

        1. @p0mp0k0
          用gradle编译,自动就会有的

  11. 大头 大头

    博主,mac系统没有mybatis.xml 文件, 请问该如何激活
    idea 2016.2 mybatis plug 2.85

    windows 清除 key 的 要在hosts 加入 127.0.0.1 www.codesmagic.com

    1. @大头
      mac下也有这文件的,位置不同,具体我也不知道,可以试试rover12421的

  12. p0mp0k0 p0mp0k0

    2.16.2.1+2.85 没通过

    1. @p0mp0k0
      win测试没问题

  13. zhwang zhwang

    博主,我想知道mac版本的mybatis.xml这个文件在哪?

  14. zhYou zhYou

    idea-2016.2.4, mybatis plugin-2.86, 可用。

    1. zhYou zhYou

      谢谢博主!

    2. @zhYou
      mybatis插件推荐使用rover12421的agent方式

  15. 浪痕 浪痕

    楼主你好,在mybatis.xml中并没有找到key,result,能不能贴一下你的文件,我模仿这试一下。

    版本为:intellij idea 2016.2.4 mybatis plugin:2.86

    1. @浪痕
      mybatis用javaagent方式破解

  16. v2.9 破解成功。谢谢楼主

  17. monkey.d.luffy monkey.d.luffy

    win10 idea2016.2 mybatis2.9 破解成功!十分感谢!!

  18. dds dds

    mac 下在/Users/dds/Library/Preferences/IntelliJIdea2016.3/options/目录下,IntelliJIdea2016.3 可能是其它版本

添加新评论