声明:目的是用于记录逆向思路,而非提供结果。仅供学习参考,请勿滥用爬虫
难点:webpack
webpack介绍
Webpack是一个前端模块打包工具。它可以将多个模块按照依赖关系进行静态分析,并生成一个或多个打包后的文件。更多讲解可以看这篇文章Webpack--入门只看这一篇就够了(图文+代码)-CSDN博客
调试分析
f12打开调试,抓几页分析一下,可以看到主要是last_time和sign不一样,last_time大概是时间戳,所以我们主要分析sign值
sign值跟栈
直接用全局搜索大法,搜索sign:
对这个值设置断点
在控制台打印各个值
点击p方法,进入内部,t是请求参数,通过两个方法加密最后得到sign值
扣代码
先把这两个方法扣出来,然后找r和o
把上面的代码折叠起来
对最上面一行设置断点,然后刷新网页
光标放到n上,可以看到有一个webpack前缀的js
.
webpack
当看到webpack时候,可以按以下步骤来进行处理
1.找加载器
点进去会跳转到a(r)这里,这部分就是一个加载器,将这份文件的代码都扣下来
2.找模块
扣下来后,找我们所需要的模块,放在这里
3.补模块
打印一下,看缺少什么模块补什么,这里缺window环境就补一个window = global;
再次打印,发现缺少n,但之前我们已经提取过,为什么还是报错呢?
因为,n是局部变量,如果我们想再全局调用它,就得把他定义成全局变量
在t下面定义window.aaa=a,将a导出
再把n改成window.aaa,打印一下
报错说明缺少模块
在函数执行call上面,打印r,看缺少什么
接下来继续补 c4+4
ANhw
mmNF
g0l/
最后补t
t前面分析过了,就是请求参数
"app=CailianpressWeb&id=1000&last_time=1732921883&os=web&rn=20&sv=8.4.6"
最后运行一下
4.导模块
为了测试这个sign值是否正确, 可以写一个函数将这个模块导出,方面py调用
最后请求测试一下
总结
主要难点在webpack,如果要补的模块多的话可能比较麻烦,当然也可以扣算法,像sign值其实就是先通过sha加密再通过md5,用py其实也能解,这里主要是学习webpack的思路,以后遇到实现不了的网站或许可以尝试这个方法。
标签:联社,逆向,last,打印,window,sign,webpack,模块 From: https://blog.csdn.net/m0_59691218/article/details/144151034