28 Star 157 Fork 81

pedoc / crackSmartGit

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

仅供学习研究,请支持正版

关键验证

搜索字符串常量 SignatureFormat=或查找MessageDigest类型引用,定位到具体类, 一般只会搜索到一个。

18.2.9

img_1.png

21.2.4

img.png

从版本22.1开始,关键验证函数原型产生变化,函数形参列表从2个变为3个(新增int paramInt参数,以及可见性从public变更为private),见图

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+以上版本无法通过运行时的堆栈平衡检查

空文件

简介

暂无描述 展开 收起
Java 等 2 种语言
取消

发行版 (9)

全部

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/pedoc/crackSmartGit.git
git@gitee.com:pedoc/crackSmartGit.git
pedoc
crackSmartGit
crackSmartGit
master

搜索帮助