# 分析包
# 分析post請求中引數
# 使用python模擬lts、sign、salt引數運算
# 執行結果
> > 1、按F12對網頁進行分析,填寫內容后自動翻譯的功能一般是通過ajax實作的,所以可以有目的的對xhr包進行篩選,如果不知道這個點也可以一個個包進行查看分析,找包里面有需要翻譯的內容和翻譯結果




> > 2、分析發送請求中引數的引數,發送兩次請求也就是翻譯兩次,對兩次的包進行分析,可以發現每次發送的請求中salt、sign、lts的資料都不同,所以該網站可能是通過js對這些資料進行了處理


> > 3、尋找到這些引數運算的程序,點擊Initiator(表示連接由誰發起),找到另一個包,在該包中分析salt、lts、sign運算程序


> 這里需要一些js知識,但一般學過其他語言也可以很清楚發現 lts是時間戳
> salt是在==時間戳后面==隨機加上一個0-9的數字
> sign是對“fanyideskweb”+ e + i +"Y2FYu%TNSbMCxc3"進行==hash==運算,然后回看發送請求中sign的引數,發現他是16進制,所以最終結果我們也要以16進制展現
> e是我們輸入的需要翻譯的內容,i和salt相同 看不懂代碼的話可以復制代碼到console中看運算結果,例:

==e==可以通過設定斷點來判斷,斷點設定好后,再翻譯一次,然后把滑鼠箭頭放在e上,可以很明顯的發現e的取值與我們輸入的內容相同

到現在,我們把發送post請求需要的所有引數找到了,然后就是用python模擬這些引數的運算,
> > 4、模擬lts、salt、sign引數運算
模擬lts,lts是時間戳
使用time模塊就行了
```python
lts = int(round(time.time()*1000))
```
模擬salt,salt是時間戳后面加上一個0-9的亂數
```python
salt = str(lts) + str(random.randint(0,9))
```
模擬sign,需要使用到hashlib庫(自帶的庫不用安裝)
```python
#創建hash物件
md5 = hashlib.md5()
#向hash物件中加入需要hash運算的字串
n = 'fanyideskweb' + self.kw + salt + 'Y2FYu%TNSbMCxc3t2u^XT'
md5.update(n.encode())
#轉換成16進制
sign = md5.hexdigest()
```
5、執行結果

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/403521.html
標籤:Python
