wukong問答 signature引數解密

2021-10-12 17:33:30 字數 2724 閱讀 6763

通過搜尋很明顯可以看到js檔案,而且數量也不多 可以進行快速定位。

通過重新整理網頁,成功的斷了下來,可以看到關鍵位置。**如下

_signature: acrawler.

sign

(_this.concern_id +

(_this.extra.max_behot_time ||'')

)

這段**就是給_signature:引數進行賦值了,他是通過acrawler物件下的sign方法,進行計算的,至於他的引數,暫時先不看。滑鼠選中其實可以看到引數的值,也就是待加密的值,經測試是固定的。

滑鼠選中引數的**,即可看到值

繼續通過網頁內搜尋的方法,可以搜到多個結果,但是通過判斷,可以看到關鍵的位置

var acrawler =

require

('byted-acrawler'

);

由此得知,acrawler 是匯入過來的,而且還傳了乙個引數,繼續搜素這個引數,看一下這個值到底是啥

通過搜尋發現,這個值是2,有經驗或者對webpack比較熟的朋友,應該立馬就明白了了,這個引數應該就是webpack中載入器的要載入的哪個方法,然後我們在匯入哪一行打上斷點,重新整理網頁,進入打包的函式去看一下

網頁重新整理時肯定是會先載入這些的,所以肯定會斷下來

紅色方框內就是很熟悉的webpack特徵了

(

function

(t))(]

,2:[

functiony(

)]},,);

我們之前在require 匯入的時候,不是有個引數嗎,引數的值是2,那麼載入器載入的就是2的方法,這個2可能是函式的名也可能是陣列裡第三個(從0開始)。由於**太多 所以我就不放上去了,我們直接在頁面內搜尋2:

找到那片**,複製到這裡即可

(},

,)

通過搜尋可以得到,整個方法。注意 複製的時候不要複製錯了,複製紅色框內的2:[funciton…,{}]根據這個特徵,我們開始構造

(

function

e(t, n, r)

var l = n[o]=}

; t[o][0

].call

(l.exports,

function

(e), l, l.exports, e, t, n, r)

}return n[o]

.exports

}var i =

typeof require ==

"function"

&& require;

for(

var o =

0; o < r.length; o++)s

(r[o]);

return s})

(,,)

首先上面是原函式,下面是我們構造的。

var aaa;

(function

e(t, n, r)};

t[o][0

].call

(l.exports,

function

(e), l, l.exports, e, t, n, r)

return l.exports

}aaa=s;})

(},,

[17])

;console.

log(

aaa(2)

.sign

("6300775428692904450"))

;

以上就是_signature引數解密的整個思路了,說難也不難,畢竟一下子就可以定位到加密的位置,一下就可以扣出**。說簡單也不是很簡單,因為構造方法的時候,改**要有一定的js基礎才行,不然還是挺麻煩的。 可能我說的某些地方也是錯誤的,希望大神可以指正,謝謝。

Glide自定義快取失效之signature

今天測試提了乙個bug,說android顯示的和ios不一樣,於是我就看了下 發現欄位和ios用的是一樣的啊,這就讓我感到很鬱悶了。於是我仔細看了下介面返回的位址發現位址有點奇怪,的位址是,這個位址的命名是以bg.png命名的,公司的一向是以xx 時間戳.png命名的呀。我問了下伺服器的同事,他說這...

python知識點智慧型問答 智慧型問答

自從 一行python 實現夸夸聊天機械人 發布後,有不少同學期待著夸夸聊天機械人的公升級。但是巧婦難為無公尺之炊,所以我準備了夸夸語料庫 為了夸夸聊天機械人,爬了乙份夸夸語料庫 有了夸夸問答語料之後,針對聊天機械人或者智慧型問答就有很多方法可以操作,最直接的乙個想法就是計算問題與夸夸語料庫中的標題...

CSDP認證問答

11月25日 正確方法管理軟體工程的親身體驗會 背景介紹 www.csdp.com.cn 1 csdp認證是哪個行業的認證?它與國內其他認證有什麼不同?答 csdp是it領域更確切的說是計算機軟體行業的職業認證。csdp英文全稱為certified software development prof...