chrome设置微信ua_新支付宝json_ua分析
本文只作學習研究使用.禁止用于非法用途.
又來分析支付寶...
咳咳... 因為感覺別的也沒有可以寫的了
這個是一個支付的包,這個包可以探測出支付寶目前的狀態,主要就是這個功能.也就是我們今天要分析的.
首先還是抓包:
json_ua是支付寶全系列產品都使用的一個加密參數,使用了自家寫的混淆器,通過壓扁控制流和混淆變量的方式對關鍵代碼做了混淆.目前市面上沒有看到開源的混淆工具實現javascript代碼壓扁控制流的功能.處理后的代碼,可讀性非常差,要還原代碼的話,幾乎很難實現.但是作為實現爬蟲功能,沒有必要進行完整的還原.
混淆后的代碼以switch case 實現了將源代碼打散,建立了多個分支代碼,擾亂逆向者的分析思路.相比于傳統意義上的變量混淆,分析難度更大.
早先的時候,分析了一次json_ua的生成,參考這里
但是,后面參數效驗失敗了,因此借助以前的分析思路,對更新后的代碼做一下簡單的逆向分析
首先,對于簡單的函數,將switch case語句還原成代碼塊,這一部分是手動完成的:
y函數還原后的代碼:
b函數還原后:
難度最大的也是S函數,但是,借助于chrome的強大分析功能,還是可以大概的了解到核心的算法的:
S的傳參根據arguments的長度,進行了以下的計算:
0: 計算json_ua
1:捕捉事件后的處理
2:事件加密處理后,組合
3:變量的解密函數
4:初始化,建立事件監聽
事件的監聽:
監聽了mousemove, mousedown ,focus,blur,scroll,keydown,readystatechange
監聽的事件不是很多,但是基本涉及到用戶操作的都有捕捉.所以如果不模擬這一部分幾乎是很難通過后臺的檢測的.
如何處理監聽到的事件:
源代碼的話是這樣的:
改寫后:
其實也是很基礎的處理方法,算法就不公開了,處理后:
然后就是將每次的處理后的事件進行push到一個全局的list中,并做拼接處理:
最終計算:
拼接轉換后得到json_ua:
到這里json_ua的處理就結束了.
知道了所有的事件處理方法,模擬就很簡單了.
首先:document.readyState = "complete"進行初始化.觸發S(0,1,0,1),然后模擬鍵盤,鼠標,和其他的幾個事件:
模擬事件運行后:
得到了一串:
206YlF/THtOfk9+SHlMfEp4Qh0=|YVF/JgZHLV0wXzgYNhYjFTUbO24FaQ9iF2ZGGUY=|YFF/JhQ6CCYdJhQ6ADYCLBopGjQOPg8hFyQXOQMzAl0C|Z1RnSRAwWixaKFlhTGEGfB1+D2UOaRk1VjhTIUI5FXQZdlsqXD9TNVYmQG0OeQ9lSSNVOgd1Fm0gUDZRIWoMMwc1ATIHY1Q3U2dVMwU0BTUOPAltXz8LPAppDjkCYQI2GiASMhw8ViBWJFVtQG0MawdxFmZKKUk+RTJechN+ETwcQxw=|ZlVlS2szRw84cxhvAHQjEmgBbSx2LX4pUyAUWg9aMnIUVxRMLw9Q|ZV9xUTZMLU4/VT5ZKXQEYhNOLVosRhsrGSoRIxMjGSkYLx4vG0Z0RX5Md1cI|ZF9xCChZMl0qQS1JJAQ8RWUQexc3Dz4NPxExVzpbe0NyXHwdbB09BTYMIgJiEn8KexxsTHQtDUIvVzxSPF9/UXE9WixdPF8tSmpEZERqHGwbfFIkVCNEakofdBgpGTkXNxc5GTkXN1AqSyhZM1g/T2MAbgV3FG9DIk8gAC4OLgAgAC4OLgAgAC4YKxg2DDwNIxMlCz0OPRMpGSgGNBood1l5CGMMLBRNKUokVTIceBt1BGNNKUokVTJtEjwcbA9jBWgHJx8uHigSJwkpSD5TOl0xESkJUwlTCVMJUwlTCVNzDFM=|a11zKgoqBDQAMR8oHSsFNgE2DFMM|al1zKgoqBF1tWWhGcURyLQMxHz8fMQExCztkOw==|aVxyKwsrBTYYKBIjFEsU|aFxyKwsrBTYDLR8xADQEMG8w|b1t1LAwsAjEEKhg2ADMCOWY5|blp0LQ0tAzAFKxk3ATQFP2A/|bVl3Lg4uADoOIBI8Cz8LMW4x|bF9xQG5bdUZ1T2FSZFZ4T3Rab1h2TWNQZUt9T2FRZUt7TGJSZEp6SxQ=本來以為這樣就可以直接去直接請求了,還是太年輕,這中間還有一個坑-----跨域加密請求.這個問題研究了2天才發現的,有機會再詳細介紹.
使用python模擬請求
錯誤的json_ua會返回一個驗證碼,正確的請求返回賬號的狀態:
返回了賬號的狀態!
舒服!
總結
以上是生活随笔為你收集整理的chrome设置微信ua_新支付宝json_ua分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: eclipse下如何打开被关闭的项目_如
- 下一篇: echo怎么把日志清空_电脑越来越卡到底