教你一步步扣代碼解出你須要找到的加密參數

只收藏不點讚的都是耍流氓html

注意:目前pdd已經須要登錄,這篇文章是在未更改以前寫的,若是須要實踐須要先登錄pdd再進行操做便可

上週的pdd不少人說看了還不會找,都找我要寫一篇來教教如何扣代碼的,那就應你們要求,今天來寫一篇詳細的扣代碼過程,徹底從零到一,若是對你有幫助,還望大力分享,這樣我會越寫越多。git

代碼都放在個人Github上,尚未star的感受star了,哈哈,可能今週會更新別的網站,因爲網站太強給推遲了,還得須要時間,爲了爬蟲可謂掉光了頭髮。github

Github:https://github.com/SergioJune...web

其餘很少說了,直接開始今天的主題,扣代碼。chrome

上篇文章我已經找到了加密位置了,就是下圖這個位置數組

image

若是還不知道怎樣找的話,能夠看看https://sergiojune.com/2019/0...,微信的被舉報刪除了,暫時只能在我blog上看了,這裏就很少說了。瀏覽器

1. 建立 HTML 文件

咱們在扣代碼以前,爲了方便調試,能夠先建立一個 html 文件,這樣能夠方便咱們直接在 chrome 上直接進行調試,或者建立一個 js 文件也能夠,不過進行調試時須要在 webstorm 上調試才能夠。這裏我就建立了一個 html 文件。微信

image

而後把咱們扣下來的代碼放到 script 標籤裏面便可,而後使用瀏覽器進行打開便可調試。webstorm

2. 開始正式扣代碼

這裏咱們知道了 ep("0xd2", "jLF%") 這個語句是生成 anti_content 的,因此能夠直接打斷點到這個語句進行查看它所須要的語句。ide

image

image

點擊下一步,進入了這個函數內

image

若是你調試過屢次以後,發現這個是將一些加密後的字符串解密爲正常的函數名字。若是你第一次扣的話,估計是把這個函數直接給扣出來,可是後面會有不少麻煩,好比變量之間的關係,因此咱們應該是把整個大函數給扣出來,便是包括這個函數的函數,看下圖

image

可是當你扣的時候,發現剛纔咱們加密的那個方法也在這個函數裏面,這時就得改改了,不扣大函數,由於扣了以後調用開始就不免會出錯,仍是直接把這個小函數扣出來先,以下圖:

image

這時就能夠用瀏覽器打開這個文件了,能夠看到報錯

image

這時不要慌,報錯是正常的,由於咱們只扣了一下部分,因此還須要繼續找,接下來就是查看報錯的地方並斷點。

image

能夠用這個和原網址上的運行做比較,發現這個變量是個數組,因此也直接扣下來。

image

image

你細心的話會發現,下面還有個打亂這個數組的函數,正確來講應該是還原數組,須要兩個一塊兒扣下來。

這時再次刷新文件便可正常獲得結果了

image

咱們再看下一個問題。

image

再次點擊到達錯誤位置,再根據原網站對比

image

能夠發現這是個函數,能夠點擊箭頭所指函數直達函數位置,發現仍是和加密的語句在同一個大函數內,因此咱們仍是直接扣出 Z 函數便可

image

再次刷新運行,出錯的位置也變了

image

咱們繼續進入錯誤位置和原網址的對比

image

發現這個變量是個方法名,能夠往上找找定義位置

image

估計這裏面的變量都是有用的,因此直接所有扣了

image

再次刷新便可看到錯誤地方不同了,繼續找便可。

image

在出錯地方斷點的同時也須要在原文件中斷點,而後將原文件的運行到該斷點處就能夠了。

image

接着就是查找這個對象的定義的地方了,而後把代碼扣下來便可。

這裏不止 F 對象, 還有 B,U,z等對象,定義位置都是在附近的,也都一塊兒扣下來便可。

再次刷新看到少了個 data 屬性,這裏本身手動加上便可

image

接着運行就變成了這個錯誤

image

仍是一樣與原文件作對比便可。找到原文件的定義地方,而後所有扣出來他們的定義。

我這裏是將整個大函數都扣出來,而後自調用來返回上面所須要的對象,這樣封裝能夠避免不少變量的衝突。

image

再次刷新,錯誤就到了另一個地方了。

image

也是一個函數,對比原文,很容易找到函數,直接扣出

image

繼續保存文件刷新,錯誤也變了

image

對比原文件,知道這個是搜索的 url,這裏咱們直接賦值便可,能夠在咱們調用函數的時候傳這個參數。

image

image

再次刷新,仍是這些對象的data屬性的問題

image

也是和上面的同樣,看原文是什麼值,直接賦值便可。

而後到了這個錯誤

image

仍是比較原文,找出函數定義,並扣出來,就很少說了。

接着就是到這裏的錯誤了。

image

這個錯誤比較麻煩,不過耐心點來仍是能夠的,仍是來比較原文件中的JS看看那裏不同。

image

image

比較這個 Y 對象,發現咱們的少了一個data,接着就是找 Y 這個 data 的生成位置了。根據上面的內容,很容易就能夠知道定義的位置。

image

能夠知道這個 l() 就是生成 data,能夠打斷點原文件並刷新就能夠看到生成步驟了。

這裏須要直接把 l 所在的位置的外部大函數都扣出來,而且自調用返回這個 l 函數便可。

接下來的仍是重複以前的步驟,說多了也是廢話,相信你們應該能觸類旁通,若是實在不會的話就多看幾遍文章吧,本身動動手,總會有收穫的。

image

相關文章
相關標籤/搜索