爬蟲必看,每日JS逆向之愛奇藝密碼加密,今天你練了嗎?

友情提示:優先在公衆號更新,在博客園更新較慢,有興趣的關注一下知識圖譜與大數據公衆號,本次目標是摳出愛奇藝passwd加密JS代碼,若是你看到了這一篇,說明你對JS逆向感興趣,若是是初學者,那不妨再看看我以前的一些文章,可能對你的學習路有些幫助,跟着一塊兒調試,對JS加密方法理解會更深點。若是調試不出來,能夠參考個人代碼,本期JS代碼放在從今天開始種樹html

提示

文章首先在公衆號更新,CSDN更新較慢,有興趣的關注一下知識圖譜與大數據公衆號吧。python

準備

本期摳愛奇藝passwd加密JS代碼,傳送門,登陸界面以下(我已經嘗試了一次):
愛奇藝登陸界面算法

老老方法(輸入錯誤帳號密碼)找到提交url和提交的參數(即FormData裏的值):
請求URL
FormData提交的參數:
FormData
能夠看到passwd已經被某種加密算法加密了,那咱們接下來的任務就是找到這個加密JS代碼,而後使用python代碼調用運行出來。app

調試

找到passwd

選擇剛纔的url,查看調用棧:
調用棧
仔細觀察後能夠看到有一個文件裏包含doLogin,那就點進去,進去後搜索passwd關鍵字,若是你一直看我以前的文章,應該就對這些加密方法名字很是敏感了,能立刻找到:
找到passwd
找到一個rsaFun,基本判定就是這裏了,那就整上一個斷點:
斷點函數

激活斷點

輸入錯誤的密碼,點擊登陸便可激活斷點:
激活斷點
斷點激活後那就點擊下一步(F11)按鈕開始運行,進入加密函數:
rsa函數
仔細看上圖,一個getKeyPair函數,一個encryptedString函數就是咱們尋找的目標,繼續F11瘋狂調試:
getkey學習

這就是getKeyPair函數,只要把A裏的函數biFromHex、biHighIndex、BarrettMu搜一下定義的地方摳出來算是把這個搞定了。
下一個encryptedString
encryptedString函數
依然只要找到這些方法,摳出來放一個文件裏,等待python調用。大數據

python調用運行

若是調用報錯,記得根據報錯信息缺啥補啥,好比window能夠定義爲window={},若是提示某某函數未定義,多是你代碼沒有摳全,全原文件裏繼續查找,摳出來,下面是我調用的結果:
python代碼:加密

import execjs

with open('..//js//aiqiyi.js', encoding='utf-8') as f:
    aiqiyi = f.read()
js = execjs.compile(aiqiyi)
#logid = js.call('hexEncode', "123456")
logid = js.call('get_pwd', "12345")
print(logid)

運行結果:
運行結果url

結束

本期講解了愛奇藝密碼加密代碼如何摳取,你們本身練上一練,若是查看完整JS代碼請點擊這裏:從今天開始種樹,以爲有幫助的關注一下下面的公衆號,獲取更多內容,固然不關注也無所謂。
公衆號調試

相關文章
相關標籤/搜索