摘要:點擊下一步,進入了這個函數(shù)內(nèi)如果你調(diào)試過多次之后,發(fā)現(xiàn)這個是將一些加密后的字符串解密為正常的函數(shù)名字。你細心的話會發(fā)現(xiàn),下面還有個打亂這個數(shù)組的函數(shù),正確來說應(yīng)該是還原數(shù)組,需要兩個一起扣下來。
只收藏不點贊的都是耍流氓
注意:目前pdd已經(jīng)需要登陸,這篇文章是在未更改之前寫的,如果需要實踐需要先登陸pdd再進行操作即可
上周的pdd很多人說看了還不會找,都找我要寫一篇來教教如何扣代碼的,那就應(yīng)大家要求,今天來寫一篇詳細的扣代碼過程,完全從零到一,如果對你有幫助,還望大力分享,這樣我會越寫越多。
代碼都放在我的Github上,還沒有star的感覺star了,哈哈,可能今周會更新別的網(wǎng)站,由于網(wǎng)站太強給推遲了,還得需要時間,為了爬蟲可謂掉光了頭發(fā)。
Github:https://github.com/SergioJune...
其他不多說了,直接開始今天的主題,扣代碼。
上篇文章我已經(jīng)找到了加密位置了,就是下圖這個位置
如果還不知道怎樣找的話,可以看看https://sergiojune.com/2019/0...,微信的被舉報刪除了,暫時只能在我blog上看了,這里就不多說了。
1. 創(chuàng)建 HTML 文件我們在扣代碼之前,為了方便調(diào)試,可以先創(chuàng)建一個 html 文件,這樣可以方便我們直接在 chrome 上直接進行調(diào)試,或者創(chuàng)建一個 js 文件也可以,不過進行調(diào)試時需要在 webstorm 上調(diào)試才可以。這里我就創(chuàng)建了一個 html 文件。
然后把我們扣下來的代碼放到 script 標簽里面即可,然后使用瀏覽器進行打開即可調(diào)試。
2. 開始正式扣代碼這里我們知道了?ep("0xd2", "jLF%")?這個語句是生成 anti_content 的,所以可以直接打斷點到這個語句進行查看它所需要的語句。
點擊下一步,進入了這個函數(shù)內(nèi)
如果你調(diào)試過多次之后,發(fā)現(xiàn)這個是將一些加密后的字符串解密為正常的函數(shù)名字。如果你第一次扣的話,估計是把這個函數(shù)直接給扣出來,但是后面會有很多麻煩,比如變量之間的關(guān)系,所以我們應(yīng)該是把整個大函數(shù)給扣出來,即是包括這個函數(shù)的函數(shù),看下圖
但是當你扣的時候,發(fā)現(xiàn)剛才我們加密的那個方法也在這個函數(shù)里面,這時就得改改了,不扣大函數(shù),因為扣了之后調(diào)用開始就難免會出錯,還是直接把這個小函數(shù)扣出來先,如下圖:
這時就可以用瀏覽器打開這個文件了,可以看到報錯
這時不要慌,報錯是正常的,因為我們只扣了一下部分,所以還需要繼續(xù)找,接下來就是查看報錯的地方并斷點。
可以用這個和原網(wǎng)址上的運行作比較,發(fā)現(xiàn)這個變量是個數(shù)組,所以也直接扣下來。
你細心的話會發(fā)現(xiàn),下面還有個打亂這個數(shù)組的函數(shù),正確來說應(yīng)該是還原數(shù)組,需要兩個一起扣下來。
這時再次刷新文件即可正常得到結(jié)果了
我們再看下一個問題。
再次點擊到達錯誤位置,再根據(jù)原網(wǎng)站對比
可以發(fā)現(xiàn)這是個函數(shù),可以點擊箭頭所指函數(shù)直達函數(shù)位置,發(fā)現(xiàn)還是和加密的語句在同一個大函數(shù)內(nèi),所以我們還是直接扣出 Z 函數(shù)即可
再次刷新運行,出錯的位置也變了
我們繼續(xù)進入錯誤位置和原網(wǎng)址的對比
發(fā)現(xiàn)這個變量是個方法名,可以往上找找定義位置
估計這里面的變量都是有用的,所以直接全部扣了
再次刷新即可看到錯誤地方不一樣了,繼續(xù)找即可。
在出錯地方斷點的同時也需要在原文件中斷點,然后將原文件的運行到該斷點處就可以了。
接著就是查找這個對象的定義的地方了,然后把代碼扣下來即可。
這里不止 F 對象, 還有 B,U,z等對象,定義位置都是在附近的,也都一起扣下來即可。
再次刷新看到少了個 data 屬性,這里自己手動加上即可
接著運行就變成了這個錯誤
還是同樣與原文件做對比即可。找到原文件的定義地方,然后全部扣出來他們的定義。
我這里是將整個大函數(shù)都扣出來,然后自調(diào)用來返回上面所需要的對象,這樣封裝可以避免很多變量的沖突。
再次刷新,錯誤就到了另外一個地方了。
也是一個函數(shù),對比原文,很容易找到函數(shù),直接扣出
繼續(xù)保存文件刷新,錯誤也變了
對比原文件,知道這個是搜索的 url,這里我們直接賦值即可,可以在我們調(diào)用函數(shù)的時候傳這個參數(shù)。
再次刷新,還是這些對象的data屬性的問題
也是和上面的一樣,看原文是什么值,直接賦值即可。
然后到了這個錯誤
還是比較原文,找出函數(shù)定義,并扣出來,就不多說了。
接著就是到這里的錯誤了。
這個錯誤比較麻煩,不過耐心點來還是可以的,還是來比較原文件中的JS看看那里不一樣。
比較這個 Y 對象,發(fā)現(xiàn)我們的少了一個data,接著就是找 Y 這個 data 的生成位置了。根據(jù)上面的內(nèi)容,很容易就可以知道定義的位置。
可以知道這個 l() 就是生成 data,可以打斷點原文件并刷新就可以看到生成步驟了。
這里需要直接把 l 所在的位置的外部大函數(shù)都扣出來,并且自調(diào)用返回這個 l 函數(shù)即可。
接下來的還是重復(fù)之前的步驟,說多了也是廢話,相信大家應(yīng)該能舉一反三,如果實在不會的話就多看幾遍文章吧,自己動動手,總會有收獲的。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/43576.html
摘要:本教程主要基于大神的開源商城,為大家解讀的源碼,由于原版商城更多是針對國際業(yè)務(wù),因此本教程會適當修改,使其更適合于微信環(huán)境。 本教程主要基于 terry 大神的開源商城 Fecshop,為大家解讀 Fecshop 的源碼,由于原版商城更多是針對國際業(yè)務(wù),因此本教程會適當修改,使其更適合于微信環(huán)境。由于商城源碼復(fù)雜,本教程將長期更新。本人也是邊學習邊寫這份教程,過程中難免會出現(xiàn)錯誤,還請...
摘要:模擬登陸知乎這個知乎的登陸也是坑滿滿,我也給踩了幾個,這個就直接說坑吧,其他的就不多說了。 以下內(nèi)容僅交流學習,請勿用于非法用途 如果你現(xiàn)在想模擬登陸知乎,會發(fā)現(xiàn) fromdata 是一串加密的字符串 showImg(https://segmentfault.com/img/remote/1460000018245629); 看了之后是不是很痛苦?你是不是就想使用 selenium 來...
摘要:模擬登陸知乎這個知乎的登陸也是坑滿滿,我也給踩了幾個,這個就直接說坑吧,其他的就不多說了。 以下內(nèi)容僅交流學習,請勿用于非法用途 如果你現(xiàn)在想模擬登陸知乎,會發(fā)現(xiàn) fromdata 是一串加密的字符串 showImg(https://segmentfault.com/img/remote/1460000018245629); 看了之后是不是很痛苦?你是不是就想使用 selenium 來...
摘要:編寫不可維護的代碼是一個特殊的技能,但奇怪的是,似乎對某些開發(fā)者來說是很自然的。維護人員沒有時間去理解你的代碼。你的代碼不能看起來不可維護因為別人會懷疑的它必須是不可維護。我希望你相信你自己也能做到,你也可以編寫不可維護的代碼。 showImg(https://segmentfault.com/img/remote/1460000015221325); 譯者注:這是一篇很棒文章,使用有...
閱讀 3165·2021-11-24 10:47
閱讀 3929·2021-11-02 14:43
閱讀 2323·2021-09-26 10:15
閱讀 2694·2021-09-08 09:35
閱讀 642·2019-08-30 12:45
閱讀 2841·2019-08-29 17:04
閱讀 3342·2019-08-26 14:05
閱讀 1365·2019-08-26 12:10