IDEA MyBatisCodeHelper Pro插件高版本解密
声明,该方法仅仅作为个人研究学习使用,请勿传播
版本说明
- 系统:macOS(Windows同理)
- IDE:IntelliJ IDEA 2024.4
- MyBatisCodeHelper Pro 3.4
环境准备
-
从插件市场下载MyBatisCodeHelper Pro
-
找到MyBatisCodeHelper Pro的jar包
- Windows:在地址栏输入
%appdata%\JetBrains\
找到idea安装目录,里面有个plugins
文件夹,然后里面有个文件夹MyBatisCodeHelper-Pro
- MacOS:
/Users/用户名/Library/Application Support/JetBrains/IntelliJIdea2023.1/plugins/MyBatisCodeHelper-Pro
MacOS的有一点特殊,注意用户名目录和你的idea版本号
然后进入到lib文件夹,找到instrumented-MyBatisCodeHelper-Pro241-3.4.0+2321.jar
。(以后升级版本,估计应该同名,变更的只是版本号)
把instrumented-MyBatisCodeHelper-Pro241-3.4.0+2321.jar复制出来,解压得到class文件夹,打开
此时,你去点击离线激活
会弹出如下报错信息
java.lang.RuntimeException: java.lang.IllegalArgumentException: Illegal base64 character 7b at java.base/java.util.Base64$Decoder.decode0(Base64.java:852) at java.base/java.util.Base64$Decoder.decode(Base64.java:570) at java.base/java.util.Base64$Decoder.decode(Base64.java:593) at com.ccnode.codegenerator.af.f.e.a(SourceFile:17) at com.ccnode.codegenerator.af.b.a.a(SourceFile:412) at com.ccnode.codegenerator.af.c.a(SourceFile:65) at com.ccnode.codegenerator.b.a.doOKAction(SourceFile:208)...
确认报错信息在class中如图地方,分析是在208行报错,往上分析到com.ccnode.codegenerator.af.f.e.a(SourceFile:17) 则个class的a方法出现问题,定位class文件
发现是gson解析字符模版报错
解决办法,跳过插件的一系列算法,直接返回f对象
-
导入Javassist依赖,导入gson依赖
<dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.13.0</version></dependency><!-- javassist --><dependency><groupId>org.javassist</groupId><artifactId>javassist</artifactId><version>3.28.0-GA</version></dependency>
-
修改com.ccnode.codegenerator.af.f.e.a方法
import org.apache.ibatis.javassist.*;import java.io.IOException;public class PJNew {public static void main(String[] args) throws NotFoundException, CannotCompileException, IOException {ClassPool classPool = ClassPool.getDefault();classPool.appendClassPath("YOUR_PATH/instrumented-MyBatisCodeHelper-Pro241-3.4.0+2321.jar");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());// 对修改的文件,写出到一个新文件ctClass.writeFile("YOUR_PATH");}
}
会得到改写后的class文件
直接跳过其他逻辑,解码
{
"paidKey": "XXX",
"valid": true,
"userMac": "XX-XX-XX-XX-XX-XX",
"validTo": 4859711999000
}这个字符串信息(为什么是这个对象,可以从刚才的doAction方法中自己找找)
#下一步 替换Class文件
jar uvf instrumented-MyBatisCodeHelper-Pro241-3.4.0+2321.jar com/ccnode/codegenerator/af/f/e.class
# 最后一步
- 将修改后的jar包放回MyBatisCodeHelper-Pro/lib目录下,建议先删除原来的那个jar包,再把新的jar包放入
- 重启IDEA
- IDEA中打开设置——其他设置——MyBatisCodeHelperPro——翻到最后,点离线激活,输入
- {
"paidKey": "XXX",
"valid": true,
"userMac": "XX-XX-XX-XX-XX-XX",
"validTo": 4859711999000
},paidKey:你的名字,userMac是你的唯一码,validTo是时间戳,这个时间到2123年,够用了点击激活,你就会发现,哇,成功了,恭喜你,完成了根据报错信息反编译源码,查找问题,解决问题的这一伟大工程。
题外话,在写这篇文章的时候,本来已经激活,
我退出激活之后再走一遍流程,发现版本又从3.4.0升级到了3.4.1,我又重新走了一遍流程,当我输入激活码的时候,提示
这个时候不要慌,所有的提示都在前面的doAction中可以找到错误逻辑
这里的逻辑就是,从你的输入框中获取信息,如果你的验证信息解绑过,那么会判断以前是否使用过这个验证信息,如果是,就会弹出激活码不正经的提示。那么解决办法就是,把过期时间加一点就可以了
至此,大功告成
如果还有任何不懂的地方,欢迎私信交流
相关文章:
IDEA MyBatisCodeHelper Pro插件高版本解密
声明,该方法仅仅作为个人研究学习使用,请勿传播 版本说明 系统:macOS(Windows同理)IDE:IntelliJ IDEA 2024.4MyBatisCodeHelper Pro 3.4 环境准备 从插件市场下载MyBatisCodeHelper Pro 找到MyBatisCo…...
网站制作公司哪家好?如何选择靠谱的网站设计公司
在当今数字化时代,企业想要在互联网上立足,一个专业、美观且功能强大的网站是必不可少的。然而,面对众多的网站建设公司,如何选择一家真正适合自己需求的合作伙伴,成为了许多企业主和创业者面临的难题。毕竟࿰…...
Linux之基础命令
Linux作为开源操作系统的代表,以其高效、灵活和强大的命令行工具闻名。无论是系统管理、开发调试还是日常使用,掌握基础命令都是与Linux系统交互的必备技能。本文整理了20个最常用的Linux基础命令,帮助新手快速入门。 目录 目录与文件导航文…...
使用手机归属地查询API,使效率事半功倍
手机归属地查询API通过查询手机号码的归属地信息,为企业提供了一个高效、便捷的解决方案,帮助企业在竞争激烈的市场中脱颖而出。 代码示例 请求参数说明: 名称必填类型说明key是string个人中心查看phone是int手机号 返回参数说明: 名称类型说明phon…...
基于FPGA的AES加解密系统verilog实现,包含testbench和开发板硬件测试
目录 1.课题概述 2.系统测试效果 3.核心程序与模型 4.系统原理简介 4.1 字节替换(SubBytes) 4.2 行移位(ShiftRows) 4.3 列混合(MixColumns) 4.4 轮密钥加(AddRoundKey) 4.…...
【AI部署】腾讯云GPU -—SadTalker的AI数字人访问web服务—未来之窗超算中心
访问部署在Cloud Studio上的web服务 当你把该项目部署在本地时,访问该服务的请求地址为http://localhost:8080/hello;当你把该项目部署在Cloud Studio工作台启动时,要想访问到该服务,需要先在工作台右侧打开访问链接面板ÿ…...
Linux:命令行参数、环境变量
命令行参数 执行程序时,可以从命令行传值给 C 程序。这些值被称为命令行参数,它们对程序很重要,特别是当我们想从外部控制程序,而不是在代码内对这些值进行硬编码时,就显得尤为重要了。 在 C 语言中,命令…...
Linux CentOS 更改MySQL数据库目录位置
在 CentOS 系统上更改 MySQL(或 MariaDB)数据库目录位置(datadir)需要谨慎操作,以避免数据丢失或服务启动失败。以下是详细步骤: 1. 停止 MySQL/MariaDB 服务 bash 复制 sudo systemctl stop mysqld …...
Unity-微信截图功能简单复刻-03绘制空心矩形
思路-绘制空心矩形 拓展UGUI的Graphic类,实现拖拽接口。 开始拖拽时记录鼠标位置, 使用拖拽中的鼠标位置和记录的位置,计算矩形顶点,绘制矩形。 两个三角形合并为一个矩形,作为空心矩形的一条边,四个边合并为空心矩形…...
Flutter与FastAPI的OSS系统实现
作者:孙嘉成 目录 一、对象存储 二、FastAPI与对象存储 2.1 缤纷云S4服务API对接与鉴权实现 2.2 RESTful接口设计与异步路由优化 三、Flutter界面与数据交互开发 3.1 应用的创建 3.2页面的搭建 3.3 文件的上传 关键词:对象存储、FastAPI、Flutte…...
环境搭建与入门:Flutter SDK安装与配置
环境搭建与入门:Flutter SDK安装与配置 一、Flutter开发环境概述 1.1 Flutter开发环境组成 Flutter开发环境主要包含以下几个关键组件: Flutter SDK:Flutter的核心开发工具包Dart SDK:Flutter使用的编程语言环境IDE/编辑器&am…...
MATLAB 控制系统设计与仿真 - 35
MATLAB鲁棒控制器分析 所谓鲁棒性是指控制系统在一定(结构,大小)的参数扰动下,维持某些性能的特征。 根据对性能的不同定义,可分为稳定鲁棒性(Robust stability)和性能鲁棒性(Robust performance)。 以闭环系统的鲁棒性作为目标设计得到的…...
多模态记忆融合:基于LSTM的连续场景生成——突破AI视频生成长度限制
一、技术背景与核心挑战 2025年视频生成领域面临的关键难题是长时程连贯性——传统方法在生成超过5分钟视频时会出现场景跳变、物理规则不一致等问题。本研究提出时空记忆融合架构(ST-MFA),通过LSTM记忆门控与多模态对齐技术,在R…...
架构师面试(三十二):注册中心数据结构
问题 提到【注册中心】,我们对它的基本功能,肯定可以顺手拈来,比如:【服务注册】【服务发现】【健康检查】【变更通知】等。 透过这些基本功能,一个普适的注册中心的数据结构应该如何设计呢? 可以结合着…...
Oracle 19c新特性:OCP认证考试与职业跃迁的关键?
在数字化转型的浪潮中,Oracle 19c作为数据库领域的旗舰版本,不仅承载着技术革新的使命,更成为IT从业者职业进阶的“黄金跳板”。无论是企业级应用的高可用性需求,还是云原生架构的快速迭代,Oracle 19c的智能化与多模型…...
360蜘蛛IP完整版,360搜索引擎蜘蛛IP列表.pdf
360搜索的蜘蛛在访问网站时,都会带上带有360spider签名信息的UA,其形态为: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36; 360Spider 为满足站长朋友们的需求&a…...
C++_设计模式\_观察者模式(Observer Pattern)
👋 Hi, I’m liubo👀 I’m interested in harmony🌱 I’m currently learning harmony💞️ I’m looking to collaborate on …📫 How to reach me …📇 sssssdsdsdsdsdsdasd🎃 dsdsdsdsdsddfsg…...
23种设计模式全面解析
设计模式是解决软件设计中常见问题的经典方案。根据《设计模式:可复用面向对象软件的基础》(GoF),23种设计模式分为以下三类: 一、创建型模式(5种) 目标:解耦对象的创建过程&#x…...
学术AI工具推荐
一、基础信息对比 维度知网研学AI(研学智得AI)秘塔AIWOS AI开发公司同方知网(CNKI)上海秘塔网络科技Clarivate Analytics是否接入DeepSeek✅ 深度集成(全功能接入DeepSeek-R1推理服务)✅ 通过API接入DeepS…...
Agent的九种设计模式 介绍
Agent的九种设计模式 介绍 一、ReAct模式 原理:将推理(Reasoning)和行动(Acting)相结合,使Agent能够在推理的指导下采取行动,并根据行动的结果进一步推理,形成一个循环。Agent通过生成一系列的思维链(Thought Chains)来明确推理步骤,并根据推理结果执行相应的动作,…...
Python如何助力区块链网络安全?从攻击防范到智能合约审计
Python如何助力区块链网络安全?从攻击防范到智能合约审计 引言:区块链安全,真的安全吗? 区块链作为去中心化技术的代表,被誉为“不可篡改”的分布式账本。但事实真的如此吗?现实世界中,智能合约漏洞、私钥泄露、交易欺诈等安全问题层出不穷,让区块链网络安全成为一个关…...
磁流变式汽车减振器创新设计与关键技术研究
摘要 本文针对智能悬架系统的发展需求,深入探讨磁流变减振器(MR Damper)的核心设计原理与工程实现路径。通过建立磁场-流场耦合模型,优化磁路结构与控制策略,提出具有快速响应特性的新型磁流变减振器设计方案…...
Kafka 时间轮
Kafka存在大量的延迟操作,比如延迟删除、延迟拉取等。Kafka基于时间轮概念自定义了一个用于延迟操作的定时器。 JDK自带的Timer和DelayQueue缺陷 Timer和DelayQueue都可以插入多个定时任务,它们都使用一个优先级队列来管理任务,复杂度为O(l…...
加锁注意事项
结论: 1:加锁前不能有可能异常的代码结构,原因:没加锁,直接因为上边的异常走finall解锁,导致不必要的问题 2:加锁后,try之前。有异常代码,导致无法走到try进行解锁.后果&…...
Vue3+Vite+TypeScript+Element Plus开发-22.客制Table组件
系列文档目录 Vue3ViteTypeScript安装 Element Plus安装与配置 主页设计与router配置 静态菜单设计 Pinia引入 Header响应式菜单缩展 Mockjs引用与Axios封装 登录设计 登录成功跳转主页 多用户动态加载菜单 Pinia持久化 动态路由 -动态增加路由 动态路由-动态删除…...
hive的基础配置优化与数仓流程
1.HDFS副本数 dfs.replication(HDFS) 文件副本数,通常设为3,不推荐修改。 如果测试环境只有二台虚拟机(2个datanode节点),此值要修改为2。 2.Yarn基础配置 2.1NodeManager配置 2.1.1CPU配置 …...
制作一个简单的操作系统3
打印一个 hello 在 INT 10H 中断中的作用 INT 10H 是 BIOS 提供的中断, 当 AH 寄存器的值被设置为 0x0e 时,INT 10H 中断就会以 TTY 模式工作。 mov ah, 0x0e ;tty模式 mov al, H int 0x10 mov al, e int 0x10 mov al, l int 0x10 int 0x10 ; l is stil…...
linux ptrace 图文详解(六) gdb单步调试
目录 一、gdb单步调试介绍 二、单步调试原理 三、MDSCR_EL1对单步调试的支持、及起作用时机 四、代码实现 五、总结 (代码:linux 6.3.1,架构:arm64) One look is worth a thousand words. —— Tess Flanders …...
51、项⽬中的权限管理怎么实现的
答:权限管理有三个很重要的模块; (1)⽤⼾模块:可以给⽤⼾分配不同的⻆⾊ (2)⻆⾊模块:可以授于⽤⼾不同的⻆⾊,不同的⻆⾊有不同权限 (3)权限模块:⽤于管理系统中的权限接⼝,为⻆⾊提供对…...
第五章 SQLite数据库:4、SQLite 进阶用法:常见的约束、PRAGMA 配置、数据操作
SQLite PRAGMA PRAGMA 命令用于查询和设置 SQLite 数据库的环境配置,可以帮助管理数据库的行为和性能。 语法 查询 PRAGMA 值: PRAGMA pragma_name;设置 PRAGMA 值: PRAGMA pragma_name value;常见 PRAGMA 示例 1. auto_vacuum Pragma…...
Windows系统安装Boost库
安装Boost库 下载Boost库源码 Boost Downloads 从Boost官方网站下载源码。请访问Boost官网,选择适合您系统的版本进行下载。下载完成后,解压源文件到您选择的目录。 使用Bootstrap脚本准备编译 在Boost源码的根目录下,找到bootstrap.bat文件…...
2025年03月中国电子学会青少年软件编程(Python)等级考试试卷(三级)答案 + 解析
青少年软件编程(Python)等级考试试卷(三级) 分数:100 题数:38 一、单选题(共25题,共50分) 1. 学校进行体育跳远期末考试,每人有三次机会,取最远的一次作为最后成绩,1班的成绩如下,CLASS1=[[‘李明’,150,152,147],[‘王红’,146,143,146],[‘刘岩’,148,152,150],[…...
Git 解决“Filename too long”问题
在 Windows 系统中使用 Git 时,遇到 Filename too long 错误通常是由于系统默认的路径长度限制(260 字符)导致的。以下是综合多种场景的解决方案: 一、快速解决方法 启用 Git 长路径支持 通过 Git 配置命令允许处理超长文件名&am…...
DeepSeek 助力 Vue3 开发:打造丝滑的日历(Calendar),日历_自定义单元格大小示例(CalendarView01_07)
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…...
麦科信汽车诊断示波器在机车维修领域中的应用实例
麦科信汽车诊断示波器在机车维修领域中的应用实例 “Micsig SATO1004的错误帧统计功能与历史波形存储,让我们在诊断间歇性CAN故障时有了决定性武器。这不仅是工具升级,更是维修理念的革新。” — Ian Coffey, Mototek技术总监(欧洲ECU诊…...
Zookeeper 概述
Zookeeper 概述 Zookeeper 概述与使用指南什么是Zookeeper?Zookeeper的主要作用使用Zookeeper的框架典型使用场景1. 配置管理2. 分布式锁3. 服务注册与发现 Zookeeper的缺陷与其他协调服务的比较实际案例:Kafka使用Zookeeper最佳实践 Zookeeper 概述与使…...
leetcode 188. Best Time to Buy and Sell Stock IV
目录 题目描述 第一步,明确并理解dp数组及下标的含义 第二步,分析明确并理解递推公式 1.求dp[i][j].holding 2.求dp[i][j].sold 第三步,理解dp数组如何初始化 第四步,理解遍历顺序 代码 题目描述 这道题把第123题推广为一…...
Kubernetes》》k8s》》Namespace
Namespace 概述 Namespace(命名空间) 是 Kubernetes 中用于逻辑隔离集群资源的机制,可将同一集群划分为多个虚拟环境,适用于多团队、多项目或多环境(如开发、测试、生产)的场景。 核心作用: 资…...
如何在米尔-STM32MP257开发板上部署环境监测系统
本文将介绍基于米尔电子MYD-LD25X开发板(米尔基于STM35MP257开发板)的环境监测系统方案测试。 摘自优秀创作者-lugl4313820 一、前言 环境监测是当前很多场景需要的项目,刚好我正在论坛参与的一个项目:Thingy:91X 蜂窝物联网原型…...
解决jupyter notebook修改路径下没有c.NotebookApp.notebook_dir【建议收藏】
文章目录 一、检查并解决问题二、重新设置默认路径创作不易,感谢未来首富们的支持与关注! 最近在用jupyter notebook编写代码时,更新了一下Scikit-learn的版本,然后重新打开jupyter notebook的时候,我傻眼了࿰…...
lottie深入玩法
A、json文件和图片资源分开 delete 是json资源名字 /res/lottie/delete_anim_images是图片资源文件夹路径 JSON 中引用的图片名,必须与实际图片文件名一致 B、json文件和图片资源分开,并且图片加载不固定 比如我有7张图片,分别命名1~7&…...
o3和o4-mini的升级有哪些亮点?
ChatGPT是基于OpenAI GPT系列的高性能对话生成AI,经过多代迭代不断提升自然语言理解和生成能力。 在过去的一年中,OpenAI先后发布了GPT-4、GPT‑4.1及多种mini版本,为不同使用场景提供灵活选择。 随着用户需求向更高效、更精准的推理和视觉…...
Spring Boot 3 + SpringDoc:打造接口文档
1、背景公司 新项目使用SpringBoot3.0以上构建,其中需要对外输出接口文档。接口文档一方面给到前端调试,另一方面给到测试使用。 2、SpringDoc 是什么? SpringDoc 是一个基于 Spring Boot 项目的库,能够自动根据项目中的配置、…...
ApiHug 前端解决方案 - M1 内侧
背景 ApiHug UI 解决方案 - ApiHug前后端语义化设计,节约80%以上时间https://apihug.github.io/zhCN-docs/ui 现代前端框架日趋SPA(Single Page Application)化,给前后协同都带来了挑战,ApiHug试图减少多人在前后协同带来的理解难度&#x…...
vue2.6.12 安装babel 以使用 可选链 ?. 和空值合并 ??
package.json文件 {"name": "ruoyi","version": "3.6.4","description": "若依管理系统","author": "若依","license": "MIT","scripts": {"dev":…...
AI数字人如何深度赋能政务场景?魔珐科技政务应用全景解读
在数字中国建设的进程中,政务传播与公共服务正面临效率提升、质量优化与体验改善的多重需求。以魔珐科技所打造的AI数字人为代表,正在逐步融入政务体系,成为推动工作提效和服务创新的重要工具。从国家安全宣讲到政策解读,从反诈防…...
SpringAI+DeepSeek大模型应用开发——5 ChatPDF
ChatPDF 知识库 RAG检索增强 由于训练大模型非常耗时,再加上训练语料本身比较滞后,所以大模型存在知识限制问题: 知识数据比较落后,往往是几个月之前的;不包含太过专业领域或者企业私有的数据; 为了解决…...
音视频之H.265/HEVC变换编码
H.265/HEVC系列文章: 1、音视频之H.265/HEVC编码框架及编码视频格式 2、音视频之H.265码流分析及解析 3、音视频之H.265/HEVC预测编码 4、音视频之H.265/HEVC变换编码 目录 一、离散余弦变换: DCT原理及特点: 一维DCT解析例子࿱…...
网工_FTP协议
2025.04.18:网工老姜&小猿网学习笔记 第27节 FTP协议 7.1 FTP概述7.2 FTP工作原理7.2.1 FTP主动模式7.2.2 FTP被动模式 7.3 FTP客户端常用命令7.4 本章小结 7.1 FTP概述 文件传输协议file transfer protocol 常见用途是从FTP服务器批量下载文件,另一…...
Vue2+Vue3 130~180集学习笔记
Vue2Vue3 130~180集(Vue3)学习笔记 一、create-vue搭建vue3项目 create-vue是vue官方新的脚手架工具,底层切换到了vite 步骤: 查看环境条件 node -v版本需要在16.0及以上创建一个vue应用 npm init vuelatest 这一指令会安装并执…...