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 Files\Charles\lib\charles.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就會對手機的請求進行抓包。
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的請求就不會提示證照的問題了。
5、到第四步,我們基本就可以實現Charles抓取http和https的請求了,但是有的時候,我們發現還是有些包抓取不到或者顯示為unknown,那就可能是APP使用了SSL強驗證,也就是說APP對SSL證照進行了繫結,這個時候的解決版本就是使用Xposed+JustTrustMe關閉SSL證照驗證,JustTrusMe是將APP中所用於校驗的API進行HOOK從而達到繞過強驗證的目的。對於Xposed+JustTrustMe的具體安裝方法這裡就不展開了。