一、今日目标 ! i3 P% Z4 N* k9 F0 Z) p- ^
某新闻板块,往下拉,会自动加载新闻内容,然后数据全部在一个feed包里面,这个数据包提交的参数里面有个_signature值是加密的,这就是我们今天要分析的内容_signature : k$ k+ C& h E
, ?% n T+ H" S3 {0 |
! \4 ^% A# r/ f7 e( A2 U: {$ L
二、开始分析
; T+ u, M9 }' e1、全局搜索_signature
5 t0 H J6 y% J: ?; t4 e; Z% z1 {8 @7 t; ~' z' q2 P1 F' g$ N
. w$ l2 h3 `2 B1 x7 e, @8 p
2、在关键处下断,刷新页面,断了下来,主要代码如下$ M l* N* b4 M
, ~$ n# W# ^( l) u5 o0 r @, z& ?( L
var n = I(F.getUri(e), e)3、进入I函数进行分析
! W2 E: L; D0 h) i( D8 w
9 P1 f9 b( V$ b% X0 n* T) ?( a( y% s* e) k5 h# q
4、单步调试,最后发现返回值为a.call(n,o)就是我们要找的数据,a=n.sign,n=window.byted_acrawler,所以最后调用的函数是window.byted_acrawler.sign(o) 9 d( @/ w' z! t2 i" N9 a/ ~
% c4 V9 [6 v: Z f" o4 E M; K
" X: L) E( d+ n: {2 }
其中; N3 i- k* J4 W8 S' w
o={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的,所以最后要分析的是下面的代码
# W4 e! p3 P2 k( M8 @K(b, e.c, e.l, f, e.z, this, null, 0)# N( _5 g. \/ M( B
, j4 T+ }' x9 i; B! c5 B6、进入到K函数所在js文件,发现代码不是很长,所以全部复制出来,并保存一个新建的js文件# x' \% r' x2 I: R6 s& q9 c
7、新建一个html文件,调用上面的js文件,然后在调用sign函数,传入参数,得到如下值,可以说明该加密文件是可以用的,下节继续讲解如何补环境实现。
1 d' N- ?0 P3 z e, P }<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <script src="test.js"></script></head><body></body></html>6 T: |2 K6 I, r) B, K
|