MyBatisCodeHelper-Pro破解[V3.4.4]

提前申明:这篇文章只用于作者个人记录,任何人不得转载、分享。不转发不扩散,如因此造成的任何损失或其他影响,本人概不承担。MyBatisCodeHelper-Pro 是一款很不错的 IDEA 插件,有能力的还是购买正版授权。如官方侵权或产生其他影响请联系我立即删除。

下载 MyBatisCodeHelper-Pro

在 idea 插件市场下载所需版本。目前分两个版本,一个是idea2023.2+版本使用,一个是idea2019.1 — 2023.1.7版本使用。更新时间:2025年07月04日

下载目前最新版:MyBatisCodeHelper-Pro。解压,找到 jar 包:instrumented-MyBatisCodeHelper-Pro241-3.4.4+2321

下载 cfr

一个 Java 反编译器,官网:https://www.benf.org/other/cfr

下载好后,将 cfr-0.152.jar 和 instrumented-MyBatisCodeHelper-Pro241-3.4.4+2321.jar 放在同一目录下,执行命令:

java -jar cfr-0.152.jar instrumented-MyBatisCodeHelper-Pro241-3.4.4+2321.jar --renamedupmembers true --hideutf false >> a.txt

等待数秒钟命令执行完毕,分析 a.txt 文件:

最终定位到:搜索 @SerializedName(value="validTo")

public class f {
    // 付费密钥
    @SerializedName(value="paidKey")
    private String var_java_lang_String_a;
    // 校验是否通过
    @SerializedName(value="valid")
    private Boolean var_java_lang_Boolean_a;
    // 机器码
    @SerializedName(value="userMac")
    private String b;
    // 激活截止日期
    @SerializedName(value="validTo")
    private Long var_java_lang_Long_a;
}

    我加了注释,然后我们使用 Java 字节码技术修改这个类的各个属性 get 方法,使之直接返回正确的值即可。

    通过上述方法随便输入激活码激活时,正常都是成功的,但有的可能会发现激活是吧,报错:base64解密异常,分析报错信息

    最终定位到:打开 a.txt,搜索 private static Gson

    找到如下所在的包及类:

    public class e {
        private static Gson a = new Gson();
    
        public static f a(String string) {
            String string2;
            byte[] byArray = null;
            try {
                byArray = d.b(d.java_security_interfaces_RSAPublicKey_a(new String(Base64.getDecoder().decode("TUlHZk1BMEdDU3FHU0liM0RRRUJBUVVBQTRHTkFEQ0JpUUtCZ1FDZzUyUjExV0h1MysvNUV2WnhkS0l2a3ovekpnS2VNUUhNLytMVkxSZS9zWUpFQlUxbUUrODc3MmJJckk4UThscldqSHc5cmVjQ1RWVVhXUnhWYXBndk1HYTZ3KzU4STZwYXdSaFhwZDBrRkhUY2xxeUZGWFpoS3ZiQUtoblphRGNuZkJtSkhObTQwR0JFTGpCTmx5MXpha2FIblFmUzF0QlhaSGQwOUV0c2VRSURBUUFC"), Charsets.UTF_8)), Base64.getDecoder().decode(string));
            }
            catch (b b2) {
                byArray = d.b(new c(), Base64.getDecoder().decode(string));
            }
            f f2 = null;
            try {
                string2 = new String(byArray, "UTF-8");
            }
            catch (UnsupportedEncodingException unsupportedEncodingException) {
                throw new RuntimeException(unsupportedEncodingException);
            }
            try {
                f2 = (f)a.fromJson(string2, f.class);
            }
            catch (Exception exception) {
                throw new RuntimeException("gson catch exception, the json string is" + string2, exception);
            }
            return f2;
        }
    }

    看他里面逻辑无非就是 base64 解析,然后 gson 转换。直接修改这个类即可。

    使用 Javassist 修改类文件

    添加 maven 依赖:

    <dependency>
        <groupId>org.javassist</groupId>
        <artifactId>javassist</artifactId>
        <version>3.25.0-GA</version>
    </dependency>

    如上分析,主要修改的就是 com.ccnode.codegenerator.af.f.e 的 e 方法。

           CtClass ctClass = classPool.get("com.ccnode.codegenerator.af.f.e");
            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.af.d.f e = (com.ccnode.codegenerator.af.d.f)gson.fromJson($1,com.ccnode.codegenerator.af.d.f.class);")
                    .append(" return e;")
                    .append("}");
            parseLicenseMethod.setBody(bodyBuff.toString());

    之前直接这么修改就完成了,但是后面作者加了验证,所以每一行我们都要去修改

    替换 jar 包的对应 class 文件

    MyBatisCodeHelper-Pro破解[V3.4.4]

    使用压缩工具 Bandzip 或 7zip 替换都有问题。推荐使用360压缩,这里值得注意的是要和 jar 里的的路径对应起来。

    查看结果

    然后将更新后的这个 jar 包,替换原始 jar 包,重启 idea,按如下格式输入离线激活码激活,大功告成。

    MyBatisCodeHelper-Pro破解[V3.4.4]
    {
        "paidKey": "muxui",
        "valid": true,
        "userMac": "离线激活时显示的唯一码",
        "validTo": 4859711999000
    }
    MyBatisCodeHelper-Pro破解[V3.4.4]

    参考文章:

    https://www.52pojie.cn/thread-1759478-1-1.html

    下载权限
    查看
    • π
      免费下载
      评论并刷新后下载
      登录后下载
    • {{attr.name}}:
    您当前的等级为
    登录后免费下载登录 小黑屋反思中,不准下载! 评论后刷新页面下载评论 支付以后下载 请先登录 您今天的下载次数(次)用完了,请明天再来 支付积分以后下载立即支付 支付以后下载立即支付 您当前的用户组不允许下载升级会员
    您已获得下载权限 您可以每天下载资源次,今日剩余
    声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

    给TA打赏
    共{{data.count}}人
    人已打赏
    文章

    只需 1 美元薅 ChatGPT Team 教程,5 个 ChatGPT Team

    2025-6-30 11:15:02

    Python文章软件

     FinalShell专业版激活

    2025-7-11 11:27:45

    26 条回复 A文章作者 M管理员
    1. ༺o༻

      不错不错😁

    2. 李大胖

      不错不错

    3. sunp

      牛👍

    4. 123

      为什么出现这个情况

      • muxui

        你idea版本是多少?

    5. YOYO

      看下

    6. wjun

      666啊

    7. ༺o༻
      ༺o༻给作者打赏了π5
    8. hwzhang2012

      厉害👍

    9. chaya

      厉害啊,找了一堆教程,都不行

    10. 夕木

      我测试总是报错,就算是不改任何代码,仅仅是解压jar包后重新打包替换,安装上之后打开也还是报错,说找不到com.ccnode.codegenerator.A.b这个类,我怀疑是不是代码内部校验了什么代码的hash通过hash之类的动态生成的class,重新打包导致的某些数据变动最终导致异常,我的idea是最新版的2025.1.3

      • muxui

        注意商店一共有两种类型的插件,你看看是不是下错了版本了,其次就是替换的时候,用的360压缩吗?我用其他压缩工具复制进去有些问题.另外你修改后的class文件,用idea打开看一下,有没有修改成功!

      • 夕木

        插件没问题,我使用原始插件安装是正常的,修改后或者仅仅重新打包后都不行,修改后的class看了没问题,也使用360压缩试了不行,我是mac系统是不是还和系统有关?

      • muxui

        肯定跟mac系统没有关系的,java本来都是夸平台的,上面的教程.是之前的版本的方式.最新版的v3.4.4,有几个方法做了变更,你编译后,要自己去研究研究💪,不懂可以私信问我

      • 夕木

        破解成功了,可能是解压之后重新压缩导致jar的一些源信息丢失导致异常,具体底层逻辑我也没搞懂,但是可以使用jar提供的更新功能进行更新jar包中的破解class,jar uf ./目标.jar ./,最后的参数必须是[./]当前目录,不然更新进jar包中的文件结构就是错的,这样子替换不会修改jar的源信息破解就成功了。且我看教程以为最开始的@SerializedName(value=”validTo”)还是要改一下get和set的,改了之后激活无响应,把这部分代码关闭后就正常了

      • 咕咕咕咕咕

        不要解压jar替换再打包,直接bandi打开jar包把文件拖拽到对应路径下进行替换,然后用idea查看下每个文件的方法是否改成过了就行。

    11. 咕咕咕咕咕

      有点牛了根据大佬的提示头一次成功反编译破解成功有点爽了,感谢大佬分享成功破解3.4.4+2321
      2023.2+
      Jun 15, 2025

    12. user378

      我试试

    13. 阿星

      厉害

    14. LiangCH

      不错,支持

    15. 浪烨

      学习了

    个人中心
    购物车
    优惠劵
    今日签到
    有新私信 私信列表
    搜索