一、今日目标
5 } Z" J0 u- G; w- Q9 q4 _某新闻板块,往下拉,会自动加载新闻内容,然后数据全部在一个feed包里面,这个数据包提交的参数里面有个_signature值是加密的,这就是我们今天要分析的内容_signature 1 H& W, _( Z. a% |
$ n7 Y. `3 Y. ~
( M! h( Y; ]7 w二、开始分析5 _; r+ s- Y+ P2 b% r- D+ o9 J
1、全局搜索_signature
$ ^8 _4 l' d V% @ T _5 R! O# x* U5 M; E5 U
K8 ~) z/ W4 `9 S2、在关键处下断,刷新页面,断了下来,主要代码如下
1 q2 z u$ v9 _! k/ F2 m9 a! U$ Q* k- _- p$ \1 m
+ O4 k9 ~3 O+ d# S2 W. w/ ^
var n = I(F.getUri(e), e)3、进入I函数进行分析2 G4 _0 ^7 A2 B" f- p6 Y1 f, i
$ D$ ?5 D8 ]& T" c/ E/ D
; K. s. i7 x- s/ L5 ]+ V; j4、单步调试,最后发现返回值为a.call(n,o)就是我们要找的数据,a=n.sign,n=window.byted_acrawler,所以最后调用的函数是window.byted_acrawler.sign(o) + x$ @4 ^- e; R8 V9 C9 c. @
. q0 P( x0 f5 }6 t9 l
; r# O5 t& n/ P+ z其中
& H6 x5 M# Y1 _1 T( j% Oo={url:'https://www.toutiao.com/api/pc/list/feed?offset=0&channel_id=94349549395&max_behot_time=0&category=pc_profile_channel&disable_raw_data=true&aid=24&app_name=toutiao_web'}5、开始分析sign函数,e.y始终大于1的,所以最后要分析的是下面的代码
! b6 ?; L3 } }K(b, e.c, e.l, f, e.z, this, null, 0)3 k- U# L/ W% o7 \$ y4 J" D
4 u! \. E; W, ~8 h3 d) w6、进入到K函数所在js文件,发现代码不是很长,所以全部复制出来,并保存一个新建的js文件- ~4 ?" c+ b1 v' o8 [
7、新建一个html文件,调用上面的js文件,然后在调用sign函数,传入参数,得到如下值,可以说明该加密文件是可以用的,下节继续讲解如何补环境实现。5 V( I" W' O' P: d$ N# ] H
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <script src="test.js"></script></head><body></body></html>
4 P# H2 Y5 _6 z% N |