首页 > 其他分享 >IDEA MyBatisCodeHelper Pro插件

IDEA MyBatisCodeHelper Pro插件

时间:2023-12-05 09:56:32浏览次数:39  
标签:插件 ccnode Pro codegenerator jar IDEA com MyBatisCodeHelper

# IDEA MyBatisCodeHelper Pro插件

原文地址:http://ytxy.xyz/pages/mchp_new/

# 前言

3.2.4以后更新了策略。(截图新老混用,懒得截了,意思能明白就行) 文章的图片使用的是GitHub做的图床,如果图片加载不出来,挂梯即可。

# 版本说明

  1. 系统:macOS(Windows同理)
  2. IDE:IntelliJ IDEA 2023.2.5
  3. MyBatisCodeHelper Pro 3.2.7

# 环境准备

  1. 从插件市场下载MyBatisCodeHelper Pro img

  2. 下载cfr的jar包

    下载地址:https://www.aliyundrive.com/s/KmR2Y75V5sh (opens new window)

# 找到MyBatisCodeHelper Pro的jar包

  1. Windows:在地址栏输入%appdata%\JetBrains\找到idea安装目录,里面有个plugins文件夹,然后里面有个文件夹MyBatisCodeHelper-Pro
  2. MacOS:/Users/用户名/Library/Application Support/JetBrains/IntelliJIdea2023.1/plugins/MyBatisCodeHelper-Pro

MacOS的有一点特殊,注意用户名目录和你的idea版本号

然后进入到lib文件夹,找到MyBatisCodeHelper-Pro-obfuss.jar

img

将它和刚刚下载的cfr的jar包拷贝到另一个地方,比如桌面,方便修改。

img

# 反编译jar包

  1. 将MyBatisCodeHelper-Pro-obfuss.jar拷贝出来和cfr-0.152.jar放在同一个目录下。

  2. 执行命令: java -jar cfr-0.152.jar MyBatisCodeHelper-Pro-obfuss.jar --renamedupmembers true --hideutf false >> result.txt

  3. 修改主要类:

以前的版本是在result.txt中搜索validTo,找到有paidKey,valid,validTo的类,分析,然后修改该类即可。

```java
/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.google.gson.annotations.SerializedName
 *  kotlin.TypeCastException
 */
package com.ccnode.codegenerator.Y.e;

import com.ccnode.codegenerator.myconfigurable.DomainObject;
import com.google.gson.annotations.SerializedName;
import kotlin.TypeCastException;

public class e {
    @SerializedName(value="paidKey")
    private String d;
    @SerializedName(value="valid")
    private Boolean c;
    @SerializedName(value="userMac")
    private String e;
    @SerializedName(value="validTo")
    private Long a;
    private static DomainObject[] b;
    private static final String[] bb;
    private static final String[] cb;

新版版本的方法是:

  1. 在result.txt中搜索private static Gson,找到类似于如下类的包:
/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.google.gson.Gson
 *  kotlin.text.Charsets
 */
package com.ccnode.codegenerator.Y.f;

import com.ccnode.codegenerator.Y.f.c;
import com.ccnode.codegenerator.Y.f.d;
import com.ccnode.codegenerator.Y.f.e;
import com.google.gson.Gson;
import java.io.UnsupportedEncodingException;
import java.util.Base64;
import kotlin.text.Charsets;

public class a {
    private static Gson a;
    private static final String[] bb;
    private static final String[] cb;

    public static com.ccnode.codegenerator.Y.e.e a(String string) {
        String string2;
        byte[] byArray = null;
        try {
            byArray = c.b(c.b(new String(Base64.getDecoder().decode(com.ccnode.codegenerator.Y.f.a.b(7930, -26290)), Charsets.UTF_8)), Base64.getDecoder().decode(string));
        }
        catch (d d2) {
            byArray = c.b(new e(), Base64.getDecoder().decode(string));
        }
        com.ccnode.codegenerator.Y.e.e e2 = null;
        try {
            string2 = new String(byArray, com.ccnode.codegenerator.Y.f.a.b(7931, -7519));
        }
        catch (UnsupportedEncodingException unsupportedEncodingException) {
            throw new RuntimeException(unsupportedEncodingException);
        }
        try {
            e2 = (com.ccnode.codegenerator.Y.e.e)a.fromJson(string2, com.ccnode.codegenerator.Y.e.e.class);
        }
        catch (Exception exception) {
            throw new RuntimeException(com.ccnode.codegenerator.Y.f.a.b(7929, 19276) + string2, exception);
        }
        return e2;
    }

就是这个类解析转换为指定信息,然后给了com.ccnode.codegenerator.Y.e.e类,然后com.ccnode.codegenerator.Y.e.e类就可以判断是否有效了。 而这个类的作用是进行了base64解析,然后使用gson转换。 所以修改这个类即可。

  1. 使用IDEA创建一个Maven项目 img

  2. 导入Javassist依赖

    <!-- javassist -->
    <dependency>
        <groupId>org.javassist</groupId>
        <artifactId>javassist</artifactId>
        <version>3.28.0-GA</version>
    </dependency>
    
  3. 导入gson依赖

    <!-- gson -->
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.10.1</version>
    </dependency>
    
  4. 修改com.ccnode.codegenerator.Y.f.a类中的a方法

修改类MyBatisCodeHelperProPJNew.java,代码中的路径需要修改为你自己的路径,类名也需要修改为你自己的类名。

import javassist.*;

import java.io.IOException;

/**
 * @author [email protected]
 */
public class MyBatisCodeHelperProPJNew {
    public static void main(String[] args) throws NotFoundException, CannotCompileException, IOException {
        // 加载类
        ClassPool classPool = ClassPool.getDefault();
        // 直接使用 jar 路径
        classPool.appendClassPath("/Users/localhost/Downloads/pj/MyBatisCodeHelper-Pro-obfuss.jar");

        // 获取指定类
        CtClass ctClass = classPool.get("com.ccnode.codegenerator.Y.f.a");

        CtMethod parseLicenseMethod = ctClass.getDeclaredMethod("a", new CtClass[] { classPool.get("java.lang.String") });
        StringBuffer bodyBuff = new StringBuffer();
        bodyBuff.append("{")
                .append("  com.google.gson.Gson gson = new com.google.gson.Gson();")
                .append("  com.ccnode.codegenerator.Y.e.e e = (com.ccnode.codegenerator.Y.e.e)gson.fromJson($1,com.ccnode.codegenerator.Y.e.e.class);")
                .append("  return e;")
                .append("}");
        parseLicenseMethod.setBody(bodyBuff.toString());

        // 对修改的文件,写出到一个新文件
        ctClass.writeFile("/Users/localhost/Downloads/pj");
    }

}

运行完成后,会将修改的 class 文件生成到指定目录下。

img

# 替换Class文件

原来的版本使用压缩工具打开后直接替换即可。 新版本的需要使用Java命令替换,命令如下:

jar uvf MyBatisCodeHelper-Pro-obfuss.jar com/ccnode/codegenerator/Y/f/a.class

1

  • MyBatisCodeHelper-Pro-obfuss.jar 文件和 com文件夹 是同级目录
  • com/ccnode/codegenerator/Y/f/a.class 需要更改为你自己的路径(用正斜杠还是反斜杠根据系统不同而定)

输出结果如下图: img

# 最后一步

  1. 将修改后的jar包放回MyBatisCodeHelper-Pro/lib目录下 img
  2. 重启IDEA
  3. IDEA中打开设置——其他设置——MyBatisCodeHelperPro——翻到最后,点激活 img
  4. 选择离线激活——输入下方代码——点击激活,即可免费使用。 img
  • paidKey:激活码,随便填
  • valid:是否有效,填true
  • userMac:激活窗口的唯一码(不要无脑复制我的)
  • validTo:有效期,时间戳,填一个很大的值即可
{
    "paidKey": "feimao",
    "valid": true,
    "userMac": "5E-E9-1E-DA-F7-65",
    "validTo": 4859711999000
}

img img

标签:插件,ccnode,Pro,codegenerator,jar,IDEA,com,MyBatisCodeHelper
From: https://www.cnblogs.com/995i996/p/17876557.html

相关文章

  • Docker部署lsky-pro
    一、简介LskyPro是一个用于在线上传、管理图片的图床程序,中文名:兰空图床,你可以将它作为自己的云上相册,亦可以当作你的写作贴图库。二、搭建lsky-pro绿联DX4600为例,首先我们打开Docker管理器,进入镜像管理,然后在镜像仓库中搜索halcyonazure/lsky-pro-docker​,选择latest......
  • The 13th Shandong ICPC Provincial Collegiate Programming Contest
    A.Orders按照订单的结束时间排序,然后遍历一遍即可#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongusingpii=pair<int,int>;usingi32=int32_t;voidsolve(){intn,k;cin>>n>>k;vector<pii>p(n);f......
  • Django和sqlite3版本不匹配解决 Django-django.core.exceptions.ImproperlyConfigured
    1.修改django源文件配置2升级sqlite下载sqlite3wgethttps://www.sqlite.org/2019/sqlite-autoconf-3270200.tar.gz 解压并安装sqlite3tar-zxvfsqlite-autoconf-3270200.tar.gzcdsqlite-autoconf-3270200./configure--prefix=/usr/localmake&&makeinstall......
  • 堪比Postman!IDEA插件推荐
    Postman是大家最常用的API调试工具,那么有没有一种方法可以不用手动写入接口到Postman,即可进行接口调试操作?今天给大家推荐一款IDEA插件:ApipostHelper,写完代码就可以调试接口并一键生成接口文档!而且还可以根据已有的方法帮助您快速生成url和params。更重要的是他完全免费!Apipost......
  • IDEA插件:Apipost-Helper
    Apipost-Helper是由Apipost推出的IDEA插件,写完接口可以进行快速调试,且支持搜索接口、根据method跳转接口,还支持生成标准的API文档,注意:这些操作都可以在代码编辑器内独立完成,非常好用!这里给大家介绍一下Apipost-Helper的安装和使用安装在IDEA编辑器插件中心输入Apipost搜索安装:Api......
  • 国产API调试插件:Apipost-Helper
    前言Idea是一款功能强大的集成开发环境(IDE),它可以帮助开发人员更加高效地编写、调试和部署软件应用程序,Idea还具有许多插件和扩展,可以根据开发人员的需要进行定制和扩展,从而提高开发效率,今天我们就来介绍一款国产的API调试插件:Apipost-Helper什么是Apipost-Helper?Apipost-Helper......
  • 代码写完直接调试!IDEA插件还能这么用
    IDEA是一款功能强大的集成开发环境(IDE),它可以帮助开发人员更加高效地编写、调试和部署软件应用程序。我们在编写完接口代码后需要进行接口调试等操作,一般需要打开额外的调试工具。今天给大家介绍一款IDEA插件:Apipost-Helper-2.0。代码写完直接编辑器内调试、还支持生成接口文档、接......
  • 代码写完直接调试!IDEA插件还能这么用?
    IDEA是一款功能强大的集成开发环境(IDE),它可以帮助开发人员更加高效地编写、调试和部署软件应用程序。我们在编写完接口代码后需要进行接口调试等操作,一般需要打开额外的调试工具。今天给大家介绍一款IDEA插件:Apipost-Helper-2.0。代码写完直接编辑器内调试、还支持生成接口文档、......
  • 堪比Postman!IDEA插件推荐
    Postman是大家最常用的API调试工具,那么有没有一种方法可以不用手动写入接口到Postman,即可进行接口调试操作?今天给大家推荐一款IDEA插件:ApipostHelper,写完代码就可以调试接口并一键生成接口文档!而且还可以根据已有的方法帮助您快速生成url和params。更重要的是他完全免费!Apipos......
  • IDEA插件:Apipost-Helper
    Apipost-Helper是由Apipost推出的IDEA插件,写完接口可以进行快速调试,且支持搜索接口、根据method跳转接口,还支持生成标准的API文档,注意:这些操作都可以在代码编辑器内独立完成,非常好用!这里给大家介绍一下Apipost-Helper的安装和使用安装在IDEA编辑器插件中心输入Apipost搜索安装:......