愉快的調試JS代碼-Charles替換JS文件

在做 js 逆向的時候,為了方便調試和分析 js 文件,一般我們將js請求替換為我們本地自己優(yōu)化好的 js 文件。
本文使用的是比較通用方式通過抓包工具 Charles 進行,請求的替換。我們的測試網(wǎng)站是 ?aHR0cHM6Ly93d3cuZG91eWluLmNvbQ==。
0x1 配置Charles
關于Charles的基本配置,網(wǎng)上很多文章寫了,我就不詳細去說了,配置路徑如下 Proxy->SSL Proxying Settings->SSL Proxying 勾選 Enable SSL Proxying ?點擊 ADD 其中 ?host 填寫*,port 填寫443。
既然我們想要使用 charles 來對 js 文件進行替換。那么就需要 charles 能夠抓到網(wǎng)頁的請求,
通過下面的配置我們可以抓取系統(tǒng)中發(fā)出的請求:Proxy->macOS Proxy

0x2 定位目標js并替換成本地文件
在使用 Charles 抓取請求的過程中,發(fā)現(xiàn)瀏覽器 NetWork 的面板可以抓取到我們想要的請求,但是 Charles 中確搜不到,經過確認發(fā)現(xiàn),當前的請求走了瀏覽器的緩存,所以為了避免這種現(xiàn)象,推薦使用谷歌瀏覽器的訪客模式進行訪問。
通過訪客模式我們成功獲取到了目標 js 的請求信息。篩選找到目標請求,右鍵該請求選擇 Map Local 之后出現(xiàn)下面的框。

這里就是讓我們將請求替換為本地JS的地方,其中 Map From 部分是軟件會為我們自動補充完成,我們只需要關注Map To部分,點擊 Choose 選擇我們本地優(yōu)化好的 JS 文件,然后點擊OK,即替換完成。
0x3 解決跨域錯誤的問題
為了確認我們文件是否正的替換了,可以在文件的首行添加個alert(123)。
再次打開訪客請求之后,觀察是否有 123 彈出,事實發(fā)現(xiàn)并沒有彈窗。
查看請求,發(fā)現(xiàn)我們的目標請求紅了,很明顯這是一個錯誤信息,錯誤類型為CORS,很明顯這個網(wǎng)站不支持跨域請求。


charles 提供的 rewrite 功能,菜單欄 的Tools 里面有個rewrite的功能,可以幫助我們修改請求信息

打擊Rewrite出現(xiàn)如下窗口,填入的內容如下
??Enable Rewrite
點擊 Add 輸入規(guī)則名稱比如我這里叫 ALLOW_CORS。
之后填寫 Location的部分,內容如下

緊接著下面的內容填寫

最后整體信息如下

至此,整個替換過程就完成了,可以愉快調試了。
