Charles是一个网络抓包工具,是使用Java开发的,所以支持Windows、MacOS和Linux平台。

Charles破解

Charles是收费的,官方版本只有30天的试用期。那如何对其进行破解呢?

因为Charles是Java编写的,所以破解难度还是比较低的,我们只需要找到对应的jar文件,这个jar对应的是一个charles.jar,然后反编译charles.jar找到需要破解的位置,使用javassist修改对应字节码,得到一个新的charles.jar,使用新的charles.jar替换之前老的charles.jar就可以了。

所以说到底,破解Charles其实就是破解charles.jar,使用破解的charles.jar去替换原始的charles.jar就可以了。

关于如何破解charles.jar这里就不展开了,因为网上已经有人帮我们破解好了,我只需要拿到破解的charles.jar去替换我们Charles对应路径下的charles.jar就行。

1、进入官方网站,下载并安装新版的Charles  

https://www.charlesproxy.com/download/

2、进入破解网站

https://www.zzzmode.com/mytools/charles/

(1)输入RegisterName(此名称随意,用于显示 Registered to xxx)

(2)选择第一步中安装的Charles的版本

(3)点击生成,就会得到一个破解的charles.jar,点击下载就可以下载一个破解好的charles.jar 

3、替换本地charles.jar文件

进入第一步安装的Charles的安装目录,找到对应的charles.jar,将其替换成第二步下载的charles.jar

安装目录: 

macOS: /Applications/Charles.app/Contents/Java/charles.jar 

Windows: C:Program FilesCharleslibcharles.jar 

Ubuntu: /usr/lib/Charles-proxy/charles.jar

Charles使用

下面针对Android手机抓包来进行演示使用过程。

确保手机和电脑在同一个局域网当中。

1、启动Charles

2、对于Windows系统,命令行中输入ipconfig,对应MacOS和Linux系统,命令行输入ifconfig,获取对应的局域网ip。

3、在手机中,选择【设置】-【WLAN】,长按手机当前连接的wifi网络,这时会有弹窗,选择修改网络,进入网络详情,勾选【高级选项】,【代理】选择手动,【代理服务器主机名】填写第一步中得到的电脑的局域网ip,【代理服务器端口】填写8888。这个时候Charles会有一个弹窗,选择ALLOW,这个时候Charles就会对手机的请求进行抓包。

166aad844365b58e.png

4、对于Https的请求,你会发现手机总会提示证书的问题,这个时候需要在Charles中选择【Help】-【SSL Proxying】-【Save Charles Root Certificate...】将一个证书charles-ssl-proxying-certificate.pem下载到本地,然后将charles-ssl-proxying-certificate.pem放到手机SD卡的某一个位置,进入手机,【设置】-【安全】-【从SD卡安装】,然后选择前面放置在SD卡的charles-ssl-proxying-certificate.pem证书,将这个证书安装到手机。这样对应Https的请求就不会提示证书的问题了。

166aace6d8dc14ba.png

5、到第四步,我们基本就可以实现Charles抓取http和https的请求了,但是有的时候,我们发现还是有些包抓取不到或者显示为unknown,那就可能是APP使用了SSL强验证,也就是说APP对SSL证书进行了绑定,这个时候的解决版本就是使用Xposed+JustTrustMe关闭SSL证书验证,JustTrusMe是将APP中所用于校验的API进行HOOK从而达到绕过强验证的目的。对于Xposed+JustTrustMe的具体安装方法这里就不展开了。

作者:DroidMind
链接:https://juejin.im/post/5bd19b89e51d457ac322bf76
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

标签: none