# crackSmartGit **Repository Path**: pedoc/crackSmartGit ## Basic Information - **Project Name**: crackSmartGit - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 211 - **Forks**: 102 - **Created**: 2019-03-31 - **Last Updated**: 2025-07-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 仅供学习研究,请支持正版 # 关键验证 搜索字符串常量 ``Signature``或``Format=``或查找``MessageDigest``类型引用,定位到具体类, 一般只会搜索到一个。 #### 18.2.9 ![img_1.png](img_1.png) #### 21.2.4 ![img.png](img.png) ## 从版本22.1开始,关键验证函数原型产生变化,函数形参列表从2个变为3个(新增int paramInt参数,以及可见性从public变更为private),见图 ![img_2.png](img_2.png) 所以原始patch将无法正确匹配 2024年2月25日 调试发现原始patch无法正确匹配到目标函数有2个原因 1. smartgit升级jdk版本,导致 7.1 版本的asm库的ClassReader无法正常工作(仅支持<=57,即jdk14) 2. 目标函数原型发生变化,新增了一个int参数 对于1,将asm版本升级到最新的9.6 对于2,在判断参数数量时增加一个条件,即参数数量为2或3都可以 同时,采用更简单的方案patch核心函数,即将目标函数体清空并替换为return,以避免在jdk17+以上版本无法通过运行时的堆栈平衡检查