文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业和非法用途,否则由此产生的一切后果与作者无关。若有侵权,请在公众号【爬虫逆向小林哥】联系作者

接口分析

直接搜索很快可以定位到加密位置,其中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还原相关推荐

  1. js逆向-知乎最新x-zse-96 逆向源码(2022-09-25更新)

    特别声明:知乎x-zse-96逆向分析只是用于研究和学习,请勿他用,否则后果自负 大家好,最近在学习js逆向,自认为学的还可以,于是就找了一个知乎平台练手了,结果不练不知道,越练越费劲呀!那家伙,把我 ...

  2. 【JS逆向百例】某音乐网分离式 webpack 非 IIFE 改写实战

    关注微信公众号:K哥爬虫,QQ交流群:808574309,持续分享爬虫进阶.JS/安卓逆向等技术干货! 文章目录 声明 逆向目标 逆向过程 抓包分析 参数逆向 webpack 改写 IIFE 传数组 ...

  3. JS获取项目Url请求头Path

    Location host 属性 host 属性是一个可读可写的字符串,可设置或返回当前 URL 的主机名称和端口号. //在公共的JS中写 const path = "http://&qu ...

  4. js获取服务器响应头信息,js获取HTTP的请求头信息

    [IIS]IIS扫盲(二) iis - IIS之Web服务器建立 第一篇 IIS之Web服务器  一.建立第一个Web站点  比如本机的IP地址为192.168.0.1,自己的网页放在D:\Wy目录下 ...

  5. 知乎爬虫请求头参数x-zse-96(代码可直接运行)

    参考了好几篇文章,包含代码并且可运行的有点难找,这里推荐两篇: 锦楠:2021年6月知乎指定问题信息爬取 & x-zse-96 2.0版本加密破解分析 爬虫破解反扒思路 本文代码就是复制自锦楠 ...

  6. Python爬虫之Js逆向案例(12)-知乎答案批量获取保存到CSV文件

    声明:知乎答案批量获取分析仅用于研究和学习,如有侵权,可联系删除 大家好,本期分享的内容是一个关于批量获取知乎答案的案例,本案例的重点是教大家在写爬虫时如何更规范的去编写自己的爬虫.场景是这样的,最近 ...

  7. 知乎登录js逆向及文章爬取js逆向

    知乎登录js逆向及文章爬取js逆向 **在此声明:**本文章仅仅用于学习交流,不得用于商业活动. 登录支持账号密码登录及知乎移动端软件扫码登录. 文章爬取是把原文章的原样近似爬取,包括图片,链接,及评 ...

  8. 安卓逆向小案例——某新闻APP请求头urlSign还原

    某新闻APP请求头urlSign还原 爱好学习及分享,若文章侵权,优先联系本人删帖处理. 一.环境准备 frida .jadx .charles .postern.ida pro . app7.78. ...

  9. 在谷歌浏览器中如何查看js代码在终端的运行结果、如何查看请求头信息

    在谷歌浏览器中如何查看js代码在终端的运行结果.如何查看请求头信息 1 如何查看js代码在终端的运行结果(如何打开终端) 2 查看请求头信息 1 如何查看js代码在终端的运行结果(如何打开终端) 方法 ...

最新文章

  1. jupyter notebook出现cannot import name 'create_prompt_application'问题(Died Kernel)
  2. 改变电子商务行业业务的人工智能趋势
  3. C# 获取进程或线程的相关信息
  4. JAVA md5加密的工具类
  5. flink 1-个人理解
  6. 计算机C语言知识点免费下载,全国计算机二级C语言知识点
  7. JavaScript那些事儿(1):对比JavaScript和jQuery的Dom操作
  8. javascript --- vue中简单的模板渲染
  9. Androidの网络Http之判断是否连接服务器
  10. 搭建python_Crawlab准备之python+scrapy环境搭建
  11. bash颜色、变量、数组、相关脚本示例
  12. python深度学习第三讲——用python写神经网络梯度下降(手写字符识别mnist)
  13. Weka开发[11]—J48源代码介绍
  14. 随机数-random模块
  15. php结合美图秀秀,美图秀秀头像编辑器的使用?thinkphp+七牛方案
  16. HEGERLS供应定做层板仓储货架 防腐防锈库房立体层板货架
  17. Caused by: io.netty.resolver.dns.DnsNameResolverTimeoutException: [/192.168.1.1:53] query via UDP ti
  18. 分享几个实用,装逼的cmd命令。
  19. MATLAB计算英文符号信源熵,基于matlab的英文文本信息量的统计-正确.doc
  20. 闹钟Android实验报告,闹钟实验报告.doc

热门文章

  1. 实验二《面向对象程序设计》_实验报告
  2. 美股网络券商史考特证券被黑 460万客户受影响
  3. 手把手教你学51单片机-定时器与数码管
  4. 神经网络在故障诊断中的应用
  5. 项目经理如何做好项目进度计划
  6. 3D 霍尔效应位置传感器原理解析
  7. 2018 年 5 款最好的 Linux 游戏
  8. Django框架学习——1—(虚拟环境搭建、MVC思想与Django的MVT区别、Django项目的创建、运行Django项目、项目结构介绍)
  9. 【Android】App首页上下滚动快报控件 通知控件 类似京东快报控件(一)
  10. 什么是机械学习?及Scikit-learn机械学习库