Charles 4.2.7 破解

作者 zzzmode 日期 2017-05-16
Charles 4.2.7 破解

请支持正版,仅供技术交流。

提供一个在线破解生成charles.jar 的工具

在线破解

https://github.com/8enet/Charles-Crack

2018/9/15 Charles 4.2.7

com.xk72.charles.kKPk
lcJx
JZlU

2018/6/25 Charles 4.2.6

com.xk72.charles.GPSz
Dgmx
Wmmw

2018/4/8 Charles 4.2.5

com.xk72.charles.Dheu
PpPw
WPsu

Charles 4.2.1

替换类名和方法名
com.xk72.charles.oFTR
Yuaz
lktV

Charles 4.2

替换类名和方法名
com.xk72.charles.WNzU
OjEP
DZZn

Charles 4.1.4

替换类名和方法名
com.xk72.charles.gIbD
xUFT
PcqR

Charles 4.1.3

方法同Charles 4.1.2,感谢@panic 提供混淆后的类名方法!

classPool=ClassPool.getDefault();
classPool.insertClassPath("/path/charles.jar"); //复制出来charles.jar的文件路径

CtClass ctClass = classPool.get("com.xk72.charles.psPJ");
CtMethod ctMethod =ctClass.getDeclaredMethod("qIvM",null);
ctMethod.setBody("{return true;}");
ctMethod = ctClass.getDeclaredMethod("tCiz",null);
ctMethod.setBody("{return \"Regisered Name\";}");
ctClass.writeFile();

jar uvf /path/charles.jar com/xk72/charles/psPJ.class


Charles 4.1.2

Charles 4.1.2 和之前版本的破解方式一样,只是混淆方式不一样了,直接上代码
先复制一份charles.jar出来,mac下的路径是/Applications/Charles.app/Contents/Java/charles.jar

需要使用javassist修改字节码

compile 'org.javassist:javassist:3.20.0-GA'

classPool=ClassPool.getDefault();
classPool.insertClassPath("/path/charles.jar"); //复制出来charles.jar的文件路径

CtClass ctClass = classPool.get("com.xk72.charles.qFep");
CtMethod ctMethod =ctClass.getDeclaredMethod("gtOW",null);
ctMethod.setBody("{return true;}");
ctMethod = ctClass.getDeclaredMethod("SkgP",null);
ctMethod.setBody("{return \"Regisered Name\";}");
ctClass.writeFile();

执行之后会生成 com/xk72/charles/qFep.class 文件
使用jar uvf charles.jar com/xk72/charles/qFep.class 命令将修改后的class打入jar包,注意jar和class的路径。


Charles 4.0.2

Charles 4.0.2 和之前版本的破解方式一样,直接上代码
先复制一份charles.jar出来,mac下的路径是/Applications/Charles.app/Contents/Java/charles.jar

需要使用javassist修改字节码

compile 'org.javassist:javassist:3.20.0-GA'

classPool=ClassPool.getDefault();
classPool.insertClassPath("/path/charles.jar"); //复制出来charles.jar的文件路径

CtClass ctClass = classPool.get("com.xk72.charles.License");
CtMethod ctMethod =ctClass.getDeclaredMethod("a",null);
ctMethod.setBody("{return true;}");
ctMethod = ctClass.getDeclaredMethod("b",null);
ctMethod.setBody("{return \"Regisered Name\";}");
ctClass.writeFile();

执行之后会生成 com/xk72/charles/License.class 文件
使用jar uvf charles.jar com/xk72/charles/License.class 命令将修改后的class打入jar包,注意jar和class的路径。


注意:为了保险起见先把原始charles.jar复制到其他目录,将破解后的charles.jar移动到对应位置,我之前为了偷懒只是修改了原始charles.jar的文件名,并没有移动到其他目录,结果一直有未注册的提示,把原charles.jar移动到其他目录后确保该目录下只有一个charles.jar就好了。