前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >破解Charles

破解Charles

作者头像
用户5878089
发布2019-07-25 16:21:15
1.4K0
发布2019-07-25 16:21:15
举报

前言

收费是不可能收费的,这辈子都不能收费的!

破解

由于Charles是使用java这种弱语言编写的,即使加了各种混淆,但是也难逃被破解的命运! 官网上下载的只能免费使用30天

首先使用jadx-gui打开,搜索关键字符串This is a 30 day trial version,很容易便可以看到验证逻辑。

也就是我们只需使kKPk.IcJx()的返回true即可完成破解,这是本文的重点,也是写作的目的。 总的来说有两种方式:

第一种使用jbe工具,修改字节码

第二种利用javassist修改字节码

方法一

这种方法一般来说比较的暴力,直接修改字节码,一般来说如果程序本身不做校验,那么此方法是可行的,大不了干脆把校验的部分也给去除。哈哈没错,就是这么刚! jbe这个工具官网上只有源码和未打包的bin目录,可以在本地自己编一个java项目,也可以在csdn上下载别人打包好的jar包

首先我们需要在linux下解压charles.jar包,找到kKPk.class文件,然后使用jbe打开,找到关键函数,这里你需要了解一下java的字节码。

然后做如下的修改

为什么要改成这样?你完全可以自己写一个简单的java函数,然后使用jbe进行查看。

之后将修改之后的kKPk.class文件替换jar包中的kKPk.class,为了验证是否修改成功,再次使用jadx-gui打开修改之后的charles.jar

然后再次运行便可以去除了使用30天的提示,如果你想个性化一点还可以修改kKPk.JZIU()的方法,使其返回你的ID,我这里便不做了。

方法二

这里使用IDEA编写代码并且需要导入

javassist.jar包 核心代码如下:

public static void patchClass(String jarPath) throws Exception {
        ClassPool classPool = ClassPool.getDefault();
        classPool.insertClassPath(jarPath);
        CtClass ctClass = classPool.get("com.xk72.charles.kKPk");
        //修改return true
        CtMethod ctMethod = ctClass.getDeclaredMethod("lcJx", null);
        ctMethod.setBody("{return true;}");
        ctMethod = ctClass.getDeclaredMethod("JZlU", null);
        ctMethod.setBody("{return \"Cracke by BadRer!!\";}");
        //更新class文件
        ctClass.writeFile();
        //修改原有的方法名
// ctMethod.setName("a");
    }

我们可以在项目中看到kKPk.class文件,之后我们可以使用

jar uvf charles.jar com/xk72/charles/kKPk.class

将修改之后的class文件打入jar包中,同样在此使用jadx-gui查看

最后将charles.jar替换即可

所以破解其实很简单。。。

总结

最后建议使用第二种方法会更加的方便,毕竟不是每个人都对java的字节码很熟悉。

所有文件如下

链接:https://pan.baidu.com/s/13S4SxHmNcxRM1wdXMfAszg

密码: 235b

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-10-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 无级安全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档