国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python爬蟲猿人學(xué)逆向系列——第六題

這篇具有很好參考價(jià)值的文章主要介紹了Python爬蟲猿人學(xué)逆向系列——第六題。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

題目:采集全部5頁的彩票數(shù)據(jù),計(jì)算全部中獎的總金額(包含一、二、三等獎)

Python爬蟲猿人學(xué)逆向系列——第六題,猿人學(xué)競賽題,爬蟲,python,ajax

地址:https://match.yuanrenxue.cn/match/6

本題比較簡單,只是容易踩坑。話不多說請看分析。

Python爬蟲猿人學(xué)逆向系列——第六題,猿人學(xué)競賽題,爬蟲,python,ajax

兩個(gè)參數(shù),一個(gè)m一個(gè)f,與cookie無關(guān),但是這里會遇到第一個(gè)坑,在響應(yīng)數(shù)據(jù)中。

Python爬蟲猿人學(xué)逆向系列——第六題,猿人學(xué)競賽題,爬蟲,python,ajax

可以發(fā)現(xiàn)只有三等獎的金額,并沒有一等獎和二等獎的金額。所以我們需要找到三者的關(guān)系。直接來到source中查看。

Python爬蟲猿人學(xué)逆向系列——第六題,猿人學(xué)競賽題,爬蟲,python,ajax

直接搜索value,一共17個(gè)結(jié)果,一個(gè)一個(gè)觀察。在第12個(gè)時(shí),其相關(guān)的內(nèi)容。

Python爬蟲猿人學(xué)逆向系列——第六題,猿人學(xué)競賽題,爬蟲,python,ajax

這里意思是總金額為三等獎的24倍,具體是不是這樣呢,我們來驗(yàn)證一下。

Python爬蟲猿人學(xué)逆向系列——第六題,猿人學(xué)競賽題,爬蟲,python,ajax

還真是,那么就是說總中獎金額就是總?cè)泉劷痤~的24倍。第一個(gè)坑解決。接下來開始逆向參數(shù),剛剛已經(jīng)知道了需要的參數(shù)就兩個(gè),m和q,傳書的是parmas參數(shù),所以我們直接來跟棧。

Python爬蟲猿人學(xué)逆向系列——第六題,猿人學(xué)競賽題,爬蟲,python,ajax

跟到請求時(shí)的棧,代碼非常簡單,如下:

Python爬蟲猿人學(xué)逆向系列——第六題,猿人學(xué)競賽題,爬蟲,python,ajax

找到之后直接打上斷點(diǎn),先看m的值。

Python爬蟲猿人學(xué)逆向系列——第六題,猿人學(xué)競賽題,爬蟲,python,ajax

這里就是入口函數(shù),可以看到當(dāng)window.o的值大于等于6的時(shí)候就會重新加載頁面,那估計(jì)這個(gè)window.o可能是會增加的,并且有可能和頁數(shù)有關(guān)。

Python爬蟲猿人學(xué)逆向系列——第六題,猿人學(xué)競賽題,爬蟲,python,ajax

現(xiàn)在它的值為1,訪問下一頁看看。

Python爬蟲猿人學(xué)逆向系列——第六題,猿人學(xué)競賽題,爬蟲,python,ajax

果然,變成2了,那也就是說我們在本地運(yùn)行的時(shí)候他不可能大于等于6,因?yàn)槲覀冏疃嗑脱h(huán)五次爬個(gè)五頁,根本不說手抖戳它這么多下。所以這里的代碼我們就可以稍微簡化一下不要r函數(shù)了,直接一步到位到z函數(shù)。

Python爬蟲猿人學(xué)逆向系列——第六題,猿人學(xué)競賽題,爬蟲,python,ajax

z函數(shù)其實(shí)熟悉js的話一看就知道這就是webpack的調(diào)用的方式。翻到最上方

Python爬蟲猿人學(xué)逆向系列——第六題,猿人學(xué)競賽題,爬蟲,python,ajax

果然,就是一個(gè)webpack,那還不簡單,模塊加載器如此的標(biāo)準(zhǔn),我都不好意思去刪刪改改了,直接全部copy。接下來就調(diào)用z函數(shù)看看會出現(xiàn)什么樣的問題了。

Python爬蟲猿人學(xué)逆向系列——第六題,猿人學(xué)競賽題,爬蟲,python,ajax

window沒有定義,那我們就給他定義一個(gè)window。在最開頭加上一個(gè)var window = global;然后再執(zhí)行,就會發(fā)現(xiàn)一樣的錯(cuò)誤,這個(gè)時(shí)候大家就會發(fā)現(xiàn)了,報(bào)的是window.o = 1這個(gè)位置的window沒有定義。那問題來了,大家ctrl+f搜索看看,這代碼里面有沒有window.o呢?答案是沒有。

所以,window.o在肯定是在代碼中,至于為什么搜不到,那當(dāng)然就是被混淆了,所以我們就來看看混淆的代碼,就在最開頭的位置,一個(gè)很明顯的AA混淆,將它還原一下,這種混淆由專門的工具還原,手動還原的話就直接去掉最后的括號然后執(zhí)行就可以了。

Python爬蟲猿人學(xué)逆向系列——第六題,猿人學(xué)競賽題,爬蟲,python,ajax

去掉最后的括號后可以看到這混淆的代碼就是一個(gè)匿名函數(shù),這個(gè)函數(shù)的邏輯就是給window.o進(jìn)行賦值,值為1,所以我們將這段混淆代碼替換成window.o = 1就可以了。

Python爬蟲猿人學(xué)逆向系列——第六題,猿人學(xué)競賽題,爬蟲,python,ajax

接下來就是下一個(gè)錯(cuò)誤了,關(guān)鍵詞ASN1,這個(gè)相當(dāng)于也是考了一下對js的熟悉程度,就看大家平時(shí)經(jīng)驗(yàn)的積累了,ASN1就是一個(gè)js的解碼器,它能夠解碼任何有效的base64的編碼或者十六進(jìn)制編碼的DER或BER結(jié)構(gòu),這個(gè)玩意兒在瀏覽器中一般都是存在的,但問題是nodejs不存在啊。所以,既然這個(gè)問題出現(xiàn)了,那肯定就是代碼中出現(xiàn)了nodejs無法解碼的存在了,那我們就來慢慢找一下這些代碼都在什么地方。一直翻一直翻。

Python爬蟲猿人學(xué)逆向系列——第六題,猿人學(xué)競賽題,爬蟲,python,ajax

找到了,1161行,大家和我的誤差應(yīng)該就幾行的誤差,自己找很廢時(shí)間,反正我眼睛看瞎了已經(jīng)。這很明顯又是一段混淆代碼,jsfuck的混淆,老規(guī)矩,還原一下。直接全部復(fù)制到console中執(zhí)行一下看看結(jié)果是什么。

Python爬蟲猿人學(xué)逆向系列——第六題,猿人學(xué)競賽題,爬蟲,python,ajax

就是一個(gè)false…那就直接替換了吧。再執(zhí)行代碼,會發(fā)現(xiàn)還是這個(gè)錯(cuò)誤。

Python爬蟲猿人學(xué)逆向系列——第六題,猿人學(xué)競賽題,爬蟲,python,ajax

那證明這里面可能還有,已經(jīng)找到過一次有經(jīng)驗(yàn)了,知道了是jsfuck混淆,那我們就搜一下特殊符號![

Python爬蟲猿人學(xué)逆向系列——第六題,猿人學(xué)競賽題,爬蟲,python,ajax

果然,又來了。直接還原替換

Python爬蟲猿人學(xué)逆向系列——第六題,猿人學(xué)競賽題,爬蟲,python,ajax

啥也不是,那就直接刪掉。然后再執(zhí)行,還是會報(bào)了這個(gè)錯(cuò)誤,但是這個(gè)時(shí)候代碼中已經(jīng)沒有混淆代碼了,那問題來了,什么原因?qū)е碌哪?,定位到?bào)錯(cuò)的2559行,看下能不能刪除這個(gè)邏輯?

Python爬蟲猿人學(xué)逆向系列——第六題,猿人學(xué)競賽題,爬蟲,python,ajax

好吧,根本刪不掉,關(guān)聯(lián)度太高。那問題來了,從這里來看的話ASN1是在本地賦值進(jìn)去的,那么就是說就算本地nodejs本身沒有的話這里應(yīng)該也賦值進(jìn)去了,為啥還會報(bào)這樣的錯(cuò)呢?那就是說window.ASN1壓根沒有去賦值,要么就是直接沒有window了。那就有點(diǎn)意思了,我們來搜索一下window。

Python爬蟲猿人學(xué)逆向系列——第六題,猿人學(xué)競賽題,爬蟲,python,ajax

一共是14個(gè),但是…webpack里面那個(gè)window是來搗亂的吧。前面先用了window.o要我們先賦值了,你自執(zhí)行里面又要置空?這不鬧呢嘛?直接刪掉。

Python爬蟲猿人學(xué)逆向系列——第六題,猿人學(xué)競賽題,爬蟲,python,ajax

完事,直接出結(jié)果。這里其實(shí)就涉及的是瀏覽器的環(huán)境和nodejs環(huán)境的不同,在瀏覽器中window是不能被重新賦值的,所以webpack中的這個(gè)置空并沒有任何意義,但是在nodejs中就不一樣了,window可以被重新賦值,因此就直接導(dǎo)致了上方我們看到的錯(cuò)誤信息了。

搞定之后我們來對比一下瀏覽器中的值和本地執(zhí)行的結(jié)果是否能夠匹配上了。將瀏覽器中傳入的參數(shù)復(fù)制下來運(yùn)行一下(刷新了下頁面重新獲取的兩個(gè)參數(shù)值)。

Python爬蟲猿人學(xué)逆向系列——第六題,猿人學(xué)競賽題,爬蟲,python,ajax

Python爬蟲猿人學(xué)逆向系列——第六題,猿人學(xué)競賽題,爬蟲,python,ajax

兩個(gè)結(jié)果完全一致,那么到這里參數(shù)m就完成了。

接下來就是q參數(shù),q參數(shù)從邏輯來看

Python爬蟲猿人學(xué)逆向系列——第六題,猿人學(xué)競賽題,爬蟲,python,ajax

就是其拼接出來的格式就是1-1692867522000|這樣的,但是這里需要注意,由于我們會話并沒有保持,相當(dāng)于每一次都是一個(gè)新的請求,同時(shí)瀏覽器中window.o能夠每次執(zhí)行js代碼的時(shí)候自增,但本地可不會,所以我們就按照每次都是全新的請求來實(shí)現(xiàn)參數(shù)q,如果是瀏覽器中那樣的格式的話最終會將前面的值拼接起來,如下:

Python爬蟲猿人學(xué)逆向系列——第六題,猿人學(xué)競賽題,爬蟲,python,ajax

但我們本地的話就不能再拼接了,否則是會觸發(fā)這個(gè)頁面的風(fēng)控的,接下來就給大家看一下這兩種情況在本地的時(shí)候的結(jié)果,一個(gè)能夠成功獲取值,一個(gè)則觸發(fā)風(fēng)控。先來寫一個(gè)js代碼的入口函數(shù)。

function run(o) {
    t = Date.parse(new Date())
    res = z(t, o);
    return {
        'm': res,
        't': t,
    }
}

第一種情況,觸發(fā)風(fēng)控。

Python爬蟲猿人學(xué)逆向系列——第六題,猿人學(xué)競賽題,爬蟲,python,ajax

這就是按照瀏覽器模式來實(shí)現(xiàn)q值時(shí)的結(jié)果,所以直接全新請求即可,不用拼接前面的值。

Python爬蟲猿人學(xué)逆向系列——第六題,猿人學(xué)競賽題,爬蟲,python,ajax

最后將所有的value加起來再乘以24就獲取到正確答案了,答案為6883344
Python爬蟲猿人學(xué)逆向系列——第六題,猿人學(xué)競賽題,爬蟲,python,ajax

完整代碼請轉(zhuǎn)https://gitee.com/shuailiuquan/spider-code/tree/master文章來源地址http://www.zghlxwxcb.cn/news/detail-672769.html

到了這里,關(guān)于Python爬蟲猿人學(xué)逆向系列——第六題的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 爬蟲逆向?qū)崙?zhàn)(六)--猿人學(xué)第四題

    爬蟲逆向?qū)崙?zhàn)(六)--猿人學(xué)第四題

    主頁地址:猿人學(xué)第四題 1、抓包 通過抓包可以發(fā)現(xiàn)數(shù)據(jù)接口是api/match/4 2、判斷是否有加密參數(shù) 請求參數(shù)是否加密? 無 請求頭是否加密? 無 響應(yīng)是否加密? 響應(yīng)數(shù)據(jù)無加密,但是返回的卻是html代碼 cookie是否加密? 無 1、看啟動器 查看啟動器發(fā)現(xiàn)有一個(gè) request 調(diào)用堆棧,

    2024年02月12日
    瀏覽(23)
  • JS逆向之猿人學(xué)爬蟲第20題-wasm

    JS逆向之猿人學(xué)爬蟲第20題-wasm

    第20題被置頂?shù)搅说?頁,題目難度 寫的是中等 算法很簡單,就一個(gè)標(biāo)準(zhǔn)的md5算法,主要是鹽值不確定, 而鹽值就在wasm里面,可以說難點(diǎn)就在于wasm分析 加密的就是sign,sign長度是32位,這個(gè)盲猜可能就是個(gè)md5 直接跟棧的request發(fā)包位置 進(jìn)去之后可以清晰的看到sign生成位置

    2024年02月15日
    瀏覽(28)
  • web爬蟲第五彈 - JS逆向入門(猿人學(xué)第一題)

    web爬蟲第五彈 - JS逆向入門(猿人學(xué)第一題)

    0- 前言 爬蟲是一門需要實(shí)戰(zhàn)的學(xué)問。 而對于初學(xué)者來說,要想學(xué)好反爬,js逆向則是敲門磚。今天給大家?guī)硪粋€(gè)js逆向入門實(shí)例,接下來我們一步一步來感受下入門的逆向是什么樣的。該案例選自猿人學(xué)練習(xí)題。猿人學(xué)第一題 1- 拿到需求 進(jìn)入頁面拿到需求我們先不要急著

    2024年02月14日
    瀏覽(27)
  • 2023 年全國大學(xué)生數(shù)學(xué)建模競賽題D 題 圈養(yǎng)湖羊的空間利用率思路詳解+Python源碼(二)

    昨天已經(jīng)將E題第一二問的詳解和思路源碼都寫了出來,大家如果想從E題下手的話推薦參考本人文章,個(gè)人認(rèn)為E題在建模上是優(yōu)于D題的,畢竟有給出數(shù)據(jù)而且有明確的建模思路,E題我直接提供了Python源碼直接可以運(yùn)行即可: 2023全國大學(xué)生數(shù)學(xué)建模競賽-E 題思路詳解+Python代

    2024年02月09日
    瀏覽(28)
  • 【數(shù)學(xué)建模競賽】優(yōu)化類賽題常用算法解析

    【數(shù)學(xué)建模競賽】優(yōu)化類賽題常用算法解析

    問題理解和建模:首先,需要深入理解問題,并將問題抽象為數(shù)學(xué)模型。這包括確定問題的目標(biāo)函數(shù)、約束條件和決策變量。 模型分析和求解方法選擇:對建立的數(shù)學(xué)模型進(jìn)行分析,可以使用數(shù)學(xué)工具和方法,例如最優(yōu)化算法、梯度下降法、遺傳算法、模擬退火等。根據(jù)問題

    2024年02月09日
    瀏覽(21)
  • 2023年宜昌市中等職業(yè)學(xué)校技能大賽 “網(wǎng)絡(luò)搭建與應(yīng)用”競賽題-1

    2023年宜昌市中等職業(yè)學(xué)校技能大賽 “網(wǎng)絡(luò)搭建與應(yīng)用”競賽題-1

    2023年宜昌市中等職業(yè)學(xué)校技能大賽 ??“網(wǎng)絡(luò)搭建與應(yīng)用”競賽題 一、競賽內(nèi)容分布 “網(wǎng)絡(luò)搭建及應(yīng)用”競賽共分二個(gè)部分,其中: 第一部分:企業(yè)網(wǎng)絡(luò)搭建部署項(xiàng)目,占總分的比例為50%; 第二部分:企業(yè)網(wǎng)絡(luò)服務(wù)配置及應(yīng)用項(xiàng)目,占總分的比例為50%; 某集團(tuán)公司新建公

    2024年02月04日
    瀏覽(45)
  • 2023年第二十屆五一數(shù)學(xué)建模競賽賽題淺析

    2023年第二十屆五一數(shù)學(xué)建模競賽賽題淺析

    我們帶來五一賽題的一個(gè)c題解析這個(gè)的目的,就是為了幫助大家更好的選題,簡單的看一下這個(gè)幾個(gè)題目就可以。然后我們題目給出的這個(gè)文件夾就是包括三個(gè)賽題,還有我們各個(gè)賽題的論文規(guī)范模板,這三個(gè)我們論文寫作的時(shí)候才會用到。主要是看一下我們?nèi)齻€(gè)賽題,我們

    2024年02月01日
    瀏覽(28)
  • 2023 年第三屆長三角高校數(shù)學(xué)建模競賽賽題淺析

    2023 年第三屆長三角高校數(shù)學(xué)建模競賽賽題淺析

    為了更好地讓大家本次長三角比賽選題,我將對本次比賽的題目進(jìn)行簡要淺析。數(shù)模模型通常分為優(yōu)化、預(yù)測、評價(jià)三類,而本次數(shù)學(xué)題目就正好對應(yīng)著A、B、C分別為優(yōu)化、預(yù)測、評價(jià)。整體難度不大,主要難點(diǎn)在于A題的優(yōu)化以及B、C的數(shù)據(jù)收集。稍后,我將為大家收集一些

    2024年02月05日
    瀏覽(25)
  • 用AI攻克“智能文字識別創(chuàng)新賽題”,這場大學(xué)生競賽掀起了什么風(fēng)潮?

    用AI攻克“智能文字識別創(chuàng)新賽題”,這場大學(xué)生競賽掀起了什么風(fēng)潮?

    中國大學(xué)生服務(wù)外包創(chuàng)新創(chuàng)業(yè)大賽作為服務(wù)外包產(chǎn)業(yè)領(lǐng)域唯一的國家級賽事,位列“全國普通高校學(xué)科競賽排行榜評估體系”,自2010年以來已連續(xù)舉辦14屆,分為區(qū)域賽和全國決賽兩個(gè)階段。本屆大賽吸引了803所全國院校的8006支團(tuán)隊(duì)報(bào)名參賽,報(bào)名團(tuán)隊(duì)數(shù)再創(chuàng)新高。其中40

    2024年02月12日
    瀏覽(24)
  • 2023 年高教社杯全國大學(xué)生數(shù)學(xué)建模競賽題D 題 圈養(yǎng)湖羊的空間利用率

    2023 年高教社杯全國大學(xué)生數(shù)學(xué)建模競賽題D 題 圈養(yǎng)湖羊的空間利用率

    昨天已經(jīng)將E題第一二問的詳解和思路源碼都寫了出來,大家如果想從E題下手的話推薦參考本人文章,個(gè)人認(rèn)為E題在建模上是優(yōu)于D題的,畢竟有給出數(shù)據(jù)而且有明確的建模思路,E題我直接提供了Python源碼直接可以運(yùn)行即可: 2023全國大學(xué)生數(shù)學(xué)建模競賽-E 題思路詳解+Python代

    2024年02月09日
    瀏覽(46)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包