<!doctype html>
js加密+混淆破解
修改查詢條件(城市的名稱+時間范圍), 點擊查詢按鈕后發起請求對應的數據包。點擊查詢按鈕后,發起ajax請求。改請求就會將制定查詢條件對應的數據加載到當前頁面中。(我們要爬取的數據就是該ajax請求請求到的數據)
分析捕獲到的數據報
請求方法
請求參數d:動態變化一組數據(且加密的)
相應數據:是加密的密文數據
- 首先先處理動態變化的請求參數,動態獲取該參數的話,就可以攜帶該參數進行請求發送,將請求到的密文數據捕獲到
- 將鋪貨到的密文數據找到對應的解密函數進行解密即可
- 【重點】需要找到點擊查詢按鈕后對應的ajax請求代碼,從這組代碼中就可以播出動態變化的請求參數和加密相應數據對應的相關操作
找到ajax請求對應的代碼,分析代碼獲取參數d的生成,和加密的相應數據的解密操作
從getData函數實現中尋找ajax代碼,但是發現另外兩個函數調用
分析getData找到ajax代碼
- 發現了另一個函數調用:getServerData
分析getServerData,找尋ajax代碼:
- 發現找到的函數實現被加密
對getServer加密就是js混淆
js反混淆:對js加密代碼進行解密
- 暴力破除的方式:https://www.bm8.com.cn/jsConfusion/
- 分析結論
- js逆向:使用固定模塊PyExecJS實現自動逆向