【JS逆向】知乎请求头 _x-zes-96 webpack还原
文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业和非法用途,否则由此产生的一切后果与作者无关。若有侵权,请在公众号【爬虫逆向小林哥】联系作者
接口分析
直接搜索很快可以定位到加密位置,其中f()(s)就是个md5就不做分析了,此次主要解决的是F(r).encrypt
逆向过程
确认webpack文件,以及加载器
我们直接在console终端里面查看函数的跳转位置,很快可以判断出这个文件是webpack
F(r).encrypt
扣下整个wepack文件到本地
将整个webapack赋值到本地,删除参数数组以及函数体内和加载器无关的代码。并将参数传递改为对象传递的形式。注意观察函数体和浏览器的不同,尽可能删除自执行函数体内与加载器无关打代码。
!function(e) {var r = {}, i = {77: 0}, o = {77: 0}, a = [];function c(t) {if (r[t])return r[t].exports;var n = r[t] = {i: t,l: !1,exports: {}};return e[t].call(n.exports, n, n.exports, c),n.l = !0,n.exports}}(
);
定义全局变量导出加载器
// 定义全局变量zhihu导出加载器
var zhihu;!function(e) {var r = {}, i = {77: 0}, o = {77: 0}, a = [];function c(t) {if (r[t])return r[t].exports;var n = r[t] = {i: t,l: !1,exports: {}};return e[t].call(n.exports, n, n.exports, c),n.l = !0,n.exports}zhihu = c;
}(
);
确认加密函数用到的模块数组,并复制在本地调用
回到加密函数位置,查看对象F,可以看到encrypt = u.a,同样在往上找到u,主要用到了n这个对象,根据经验我们可以判断出这个n是加载器。
F(r).encrypt
encrypt: u.a,, c = n(420)
, u = n.n(c)
注意看前端加载器部分,传递给webpack对象的参数i被赋值给加载o.m了,我们可以在函数体内下上断点,来查看o.m[16] ,找到具体模块函数对象的位置。
在n处打上断点查看n的跳转位置。直接跳转到我们扣下来的加载器c了。猜想成功
这里需要注意,用到了数据模块420,以及加载器函数n.n,但是我们本地没有定义加载器.n的函数,需要补上去,去浏览器端复制下来。注意它依赖其它函数
, c = n(420), u = n.n(c)
另外把用到的n(420)数据模块补全到本地,直接在webpack函数体内通过加载器找到420.注意加载器一般都会把整个webpack参数e赋值给一个对象m,直接使用c.m[420]既可找到420模块数组函数。全部复制下来
加载器打印方法--补本地缺的函数模块以及环境
这里将420参数复制下来运行,发现没有报错看来是不依赖其它模块。
通过全局变量加载器调用加密函数
然后通过加密函数逻辑调用,发现出现一处错误。这里需要用window环境,我们补上在运行。
成功
源码:vx公众号【爬虫逆向小林哥】
【JS逆向】知乎请求头 _x-zes-96 webpack还原相关推荐
- js逆向-知乎最新x-zse-96 逆向源码(2022-09-25更新)
特别声明:知乎x-zse-96逆向分析只是用于研究和学习,请勿他用,否则后果自负 大家好,最近在学习js逆向,自认为学的还可以,于是就找了一个知乎平台练手了,结果不练不知道,越练越费劲呀!那家伙,把我 ...
- 【JS逆向百例】某音乐网分离式 webpack 非 IIFE 改写实战
关注微信公众号:K哥爬虫,QQ交流群:808574309,持续分享爬虫进阶.JS/安卓逆向等技术干货! 文章目录 声明 逆向目标 逆向过程 抓包分析 参数逆向 webpack 改写 IIFE 传数组 ...
- JS获取项目Url请求头Path
Location host 属性 host 属性是一个可读可写的字符串,可设置或返回当前 URL 的主机名称和端口号. //在公共的JS中写 const path = "http://&qu ...
- js获取服务器响应头信息,js获取HTTP的请求头信息
[IIS]IIS扫盲(二) iis - IIS之Web服务器建立 第一篇 IIS之Web服务器 一.建立第一个Web站点 比如本机的IP地址为192.168.0.1,自己的网页放在D:\Wy目录下 ...
- 知乎爬虫请求头参数x-zse-96(代码可直接运行)
参考了好几篇文章,包含代码并且可运行的有点难找,这里推荐两篇: 锦楠:2021年6月知乎指定问题信息爬取 & x-zse-96 2.0版本加密破解分析 爬虫破解反扒思路 本文代码就是复制自锦楠 ...
- Python爬虫之Js逆向案例(12)-知乎答案批量获取保存到CSV文件
声明:知乎答案批量获取分析仅用于研究和学习,如有侵权,可联系删除 大家好,本期分享的内容是一个关于批量获取知乎答案的案例,本案例的重点是教大家在写爬虫时如何更规范的去编写自己的爬虫.场景是这样的,最近 ...
- 知乎登录js逆向及文章爬取js逆向
知乎登录js逆向及文章爬取js逆向 **在此声明:**本文章仅仅用于学习交流,不得用于商业活动. 登录支持账号密码登录及知乎移动端软件扫码登录. 文章爬取是把原文章的原样近似爬取,包括图片,链接,及评 ...
- 安卓逆向小案例——某新闻APP请求头urlSign还原
某新闻APP请求头urlSign还原 爱好学习及分享,若文章侵权,优先联系本人删帖处理. 一.环境准备 frida .jadx .charles .postern.ida pro . app7.78. ...
- 在谷歌浏览器中如何查看js代码在终端的运行结果、如何查看请求头信息
在谷歌浏览器中如何查看js代码在终端的运行结果.如何查看请求头信息 1 如何查看js代码在终端的运行结果(如何打开终端) 2 查看请求头信息 1 如何查看js代码在终端的运行结果(如何打开终端) 方法 ...
最新文章
- jupyter notebook出现cannot import name 'create_prompt_application'问题(Died Kernel)
- 改变电子商务行业业务的人工智能趋势
- C# 获取进程或线程的相关信息
- JAVA md5加密的工具类
- flink 1-个人理解
- 计算机C语言知识点免费下载,全国计算机二级C语言知识点
- JavaScript那些事儿(1):对比JavaScript和jQuery的Dom操作
- javascript --- vue中简单的模板渲染
- Androidの网络Http之判断是否连接服务器
- 搭建python_Crawlab准备之python+scrapy环境搭建
- bash颜色、变量、数组、相关脚本示例
- python深度学习第三讲——用python写神经网络梯度下降(手写字符识别mnist)
- Weka开发[11]—J48源代码介绍
- 随机数-random模块
- php结合美图秀秀,美图秀秀头像编辑器的使用?thinkphp+七牛方案
- HEGERLS供应定做层板仓储货架 防腐防锈库房立体层板货架
- Caused by: io.netty.resolver.dns.DnsNameResolverTimeoutException: [/192.168.1.1:53] query via UDP ti
- 分享几个实用,装逼的cmd命令。
- MATLAB计算英文符号信源熵,基于matlab的英文文本信息量的统计-正确.doc
- 闹钟Android实验报告,闹钟实验报告.doc