webpack实战 -- 看准网

内容仅供参考学习


 

目标

网址:https://www.kanzhun.com/firm/interview/c49_1nR-298~/p2.html
注:webpack最近刚学的,如果写的有什么问题,还请评论指导一下


 

分析

  • 接口上有2个加密参数bkiv
     
     
    webpack实战 -- 看准网_第1张图片
     
  • 进入Initiator,寻找加密位置(找到下图位置):
     
     
    webpack实战 -- 看准网_第2张图片
     
  • 进入断点,可以看到加密参数值出现:a = Object(p.d)()t = Object(p.b)(n, {iv: a}).replace(/\//g, "_").replace(/\+/g, "-").replace(/=/g, "~")。a的值在进入函数中可以看到是16个随机字符串组成。t的值则是经过一系列的加密生成。
     
     
    webpack实战 -- 看准网_第3张图片
     
    webpack实战 -- 看准网_第4张图片
     
  • 开始抠代码:这时, 我们可以看到(window.webpackJsonp = window.webpackJsonp || []).push([[0], {这么个东西, 这就是webpack打包后的代码
     
     
    webpack实战 -- 看准网_第5张图片

 

剥离 JS 加密代码

  • 首先寻找分发器。
     
    加密代码中我们可以看到加密方法是在p中的,所以我们往上上寻找p的生成位置,打上断点。
     
     
    webpack实战 -- 看准网_第6张图片
     
    在Call Stack网上找分发器。最终可以发现如图所示位置:
     
     
    webpack实战 -- 看准网_第7张图片
     
    webpack实战 -- 看准网_第8张图片
     

  • 抠下分发器代码
     
    将整个分发器文件的js代码全部扣下, 并在开头补上var window = global;
    webpack实战 -- 看准网_第9张图片
     
    然后我们定义一个全局变量,映射出加密函数。将代码拉到最下面,将之前看到的S赋值给全局变量。
     
     
    webpack实战 -- 看准网_第10张图片
     

  • 寻找我们需要的方法
    将下图中的方法整个扣下来,放在分发器里面, 然后运行, 根据报错情况,缺啥补啥就好了
     
     
    webpack实战 -- 看准网_第11张图片
     
    webpack实战 -- 看准网_第12张图片


 

结果

webpack实战 -- 看准网_第13张图片

你可能感兴趣的:(爬虫逆向分析,javascript,爬虫,webpack)