• JS逆向核心流程


    JS逆向核心流程:

    • 从分析网络请求 -->
    • 定位加密参数生成处 -->
    • 扣加密参数的 “JS加密算法代码” -->
    • 补浏览器环境 -->
    • 到最终的node调用;

    这个流程是JS逆向的主经脉,是JS逆向的核心,其中每个步骤都有各自的体系化分析方案,如 “定位加密参数生成处”,其方案有:

    • 搜索加密参数
    • 通过请求的Initiator去跟调用栈
    • xhr断点请求发送位置
    • DOM断点响应数据渲染位置
    • Event Listener断点触发事件位置
    • hook对象赋值-对象属性访问

    等等。。。将这一系列分析方案结合起来形成体系化,最终的目的就是:“定位加密参数生成处”,然后进入后续流程-- 扣加密参数的“js加密算法代码”

    对不同的反爬网站进行逆向,我们都要亲自去走前三个步骤,难有通杀方案;
    前三个步骤都需要我们花时间去打磨,去练,才能运用自如,以应对更高难度的逆向;

    “补浏览器环境” 这个步骤却比较特殊,有可行的通杀方案,
    这个步骤的最终目的是 让扣出来的 “JS加密算法代码” 能在 node环境中正确运行。
    实现这个目的的方案有两个:

    1. “JS加密算法代码” 中使用到的浏览器环境逻辑替换掉;如:
    var flag;
    if(navigator.userAgent){
    flag=true
    } 
    替换为 var flag=true;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 使用js来伪造浏览器的各种环境,如 BOM: navigator.userAgent DOM:document.cookie等;

    当然这两种方案可以糅合使用,但是其缺陷依然存在:

    • 第一种方案难点在于 需要定位代码使用了哪些浏览器环境,然后才能进行逻辑替换; 而且当网站js逻辑更新时,需要再替换一遍。。无法对不同网站进行通杀

    • 第二种方案难点在于 浏览器环境太多,需要伪造的对象太多了,但是补的足够多时可 ”通杀“

    为了减少在这个步骤花费的精力,极大提高工作效率,我们选择优化第二种方案 达到通杀目的:
    通杀方案 – 通过js模拟一个趋于完美的浏览器环境,让扣出来的 “JS加密算法代码” 犹如运行在真实浏览器中;
    这个方案工程代码量较大,需要借助 “补环境框架” 来组织各种浏览器环境代码以达到最终效果。
    “补环境框架直通车“:JS逆向之浏览器补环境详解

  • 相关阅读:
    卖家应该如何应对亚马逊多账号操作呢?
    Javascript 常见的循环方式总结
    CSAPP-Lab05 Cache Lab 深入解析
    STC51单片机学习笔记7——stc12c56 串口显示AD(单路ad+led指示灯)
    spring cloud 2020.0.* 踩坑记录
    华为OD机试 - 真正的密码 - 数据结构list(Java 2023 B卷 100分)
    探索无限自然之美——Terragen Professional 4渲染软件
    《Python3 网络爬虫开发实战》:request(2)
    1158. 市场分析 I
    夏季河湖防溺水新举措:青犀AI视频智能监控系统保障水域安全
  • 原文地址:https://blog.csdn.net/qq_36291294/article/details/127702973