1

本文所有操作均在Mac OS X EI Capitan下进行

先上结果

链接: http://pan.baidu.com/s/1o64C1ku 密码: q9av

前提: 首先版本得是Charles 3.11.1,理论说3.11也是可以的,3.10以下的不用试了

  1. 将jar包下载下来后,将名字改成charles.jar

  2. 打开应用程序文件夹,找到Charles - 显示包内容 - Contents - Java

  3. 找到charles.jar,替换之即可

过程

本来用的3.9.3好好的,但是系统升级10.11后,出现了一些这样的情况

1

每次滚动代码时就变成这样,


忍受了一个多月后,终于决定要升级
去官网下了目前的最新版,3.11.1
然后天真的想去下个序列号或者什么注册机破解就ok了,
于是我百度了一下
然后是这样的



大概了解到的情况是需要替换charles.jar这个jar包就可以破解,
然后我一个个下下来,一个个试
好吧,结果中没有一个是3.11.1可用的


只能google一下,
找到一篇3.10.1的破解教程,Charles Web Debugging Proxy Hacking
作者破解的过程大概就是把charles.jar反编译后找到Licence.java,然后把验证函数上返回true,然后编译成License.class重新打包进charles.jar里,
文中作者提供了已经hack过的Licence.java,于是我按照步骤试了一下,
果然,,,,失败了,

文中作者有说他的操作都是在3.10.1版本才可以

于是我重新下了3.10.1,再次尝试,

成功了!!!
但是,3.10.1版本依旧存在滚屏文字错乱的问题
所以我折腾了这一圈并没有什么乱用

既然破解的原理都辣么简单通俗易懂,我自己来hack一下License不就行了,
于是,
先要反编译一下charles,多年没摸过java,反编译工具都没有,
下一个,下载地址:https://github.com/skylot/jadx


解压,进入jadx-0.6.0目录中,
(ps. 为了方便我把3.11.1的charles.jar考到jadx目录中,特么3.11.1中charles.jar所在目录变成了Contents/Java/charles.jar,之前的版本一直都是Contents/Resources/Java/charles.jar)

执行命令 bin/jadx-gui charles.jar




我需要找到com.xk72.charles.gui.License.java
然而
并没有!

所以刚刚之所以用那个破解好的License.java去替换并没有用的原因就是charles升级后修改这块的验证策略,连Licence.java都没有那什么来替换,


会不会只是改了个类名,License.java 肯定是有的,不过它不叫这个名字而已,

一般来说如果真的只换个类名应该就还在com.xk72.charles.gui 这个工作空间下
于是我看到了它,

和License.java内容几乎一样,居然叫个P,



好吧,接下来的工作就是参照3.10.1被hack的License.java来修改代码中验证部分
用文件对比工具来改简单一些



然后把P.java拷贝到charles的包中,和Contents/Java/charles.jar同一级目录
然后
编译:javac -source 1.6 -target 1.6 -d . P.java
打包:jar -uvf charles.jar com/xk72/charles/gui/P*


最后执行打开Charles命令:open /Applications/Charles.app(直接双击打开也是可以的)
没错,
成功了


caicai
391 声望10 粉丝

精通Windows,Linux,Mac开关机...