js逆向案例-某知x-zse-96补环境与扣逻辑

目录

        • 一、流程简单了解
        • 二、补环境的方式
        • 三、扣逻辑的方式

一、流程简单了解

  • 案例网址:点击查看
  • 请求头参数x-zse-96
    js逆向案例-某知x-zse-96补环境与扣逻辑_第1张图片

二、补环境的方式

  • 这个案例网上太多太多太多太多了,那我就跟着前辈的20篇文章思路,补环境试一试,此次补环境(node下npm install jsdom)需要的代码如下
    const jsdom = require("jsdom");
    const { JSDOM } = jsdom;
    const dom = new JSDOM(`

    Hello world

    `
    ); window = dom.window; document = window.document; XMLHttpRequest = window.XMLHttpRequest;
  • 定位入口:采用搜索关键词x-zse-96定位,如图11703行的signature打上断点,x-zse-96=“2.0_” +signature,如图只需要研究u()函数,而u()函数就是__g._encrypt(encodeURIComponent(e))这个结果
    js逆向案例-某知x-zse-96补环境与扣逻辑_第2张图片
  • 所以研究__g._encrypt函数,__g._encrypt函数又是r()函数,所以扣r()函数所在的范围部分,__g._encrypt函数传入md5值即可解出我们要的signature
    js逆向案例-某知x-zse-96补环境与扣逻辑_第3张图片
  • r()函数如下,这里直接将当前js文件所有的js代码先复制下来,然后把所有函数先折叠起来
    js逆向案例-某知x-zse-96补环境与扣逻辑_第4张图片
  • 然后搜索var A = "2.0"去定位函数体,扣出函数体
    js逆向案例-某知x-zse-96补环境与扣逻辑_第5张图片
  • 接着头部加上相关环境jsdom,尾部加上输出,测试运行即可生成signatrue
    js逆向案例-某知x-zse-96补环境与扣逻辑_第6张图片
  • 至此补环境结束,测试结果正常,这个案例单看补环境分分钟解决问题(前辈文章太多约20篇,所以就比较容易),不过也可以看看扣算法的方式
    js逆向案例-某知x-zse-96补环境与扣逻辑_第7张图片

三、扣逻辑的方式

  • 定位入口:采用搜索关键词x-zse-96定位,如图11703行的signature打上断点,x-zse-96=“2.0_” +signature
    js逆向案例-某知x-zse-96补环境与扣逻辑_第8张图片

  • 清除缓存,刷新定位,js中signature: u()(f()(s))分析见图中,我们要研究signature就是研究这个u()函数即可
    js逆向案例-某知x-zse-96补环境与扣逻辑_第9张图片

  • u()函数如图,经过深层的调试,我们会到如图G.prototype.v 的位置,在37026行打上日志断点"索引:", this.C, " 值:", JSON.stringify(this.r),然后清除缓存刷新输出大概有1.7k的日志,从日志里面推算算法逻辑
    js逆向案例-某知x-zse-96补环境与扣逻辑_第10张图片
    js逆向案例-某知x-zse-96补环境与扣逻辑_第11张图片

  • signature是由11部分组成,且4个为一组
    js逆向案例-某知x-zse-96补环境与扣逻辑_第12张图片

  • 看这篇文章,以及这篇文章,会了解如何逆推算法,最终算法就30多行
    js逆向案例-某知x-zse-96补环境与扣逻辑_第13张图片
    js逆向案例-某知x-zse-96补环境与扣逻辑_第14张图片

你可能感兴趣的:(SpiderCrawl,javascript)