通過搜尋很明顯可以看到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...