JS逆向 2021-8-15 七麦 analysis参数

声明:文章仅供学习,禁止非法用途,侵权请告知删除

前言

地址:aHR0cHM6Ly93d3cucWltYWkuY24vcmFuaw==


一、网页分析

数据请求的方式是xhr请求,需要解决analysis参数是怎么生成的


二、analysis参数获取

1.定位加密位置

打一个xhr断点,然后刷新网页,根据请求堆栈,一步步追上去,最后会看到这边,跟请求数据的接口的一样
在这里插入图片描述

一步一步调试之后,最后会定位到这边,下面可以看到analysis的参数生成了,其实就是a
在这里插入图片描述

2.破解加密参数

可以看到a参数的生成方式

a = (0, n.cv)((0, n.oZ)(r, l))

n.cv 和 n.oZ是两个函数
在这里插入图片描述

在这里插入图片描述
l是一个定值
在这里插入图片描述
r是动态改变的
在这里插入图片描述


三、源代码

抱着缺啥补啥的方式,把代码扣下来,100行都不到,在请求不同榜单的数据的时候,需要修改 e.url 的值

function get_analysis(pg) {
    window = global;
    window.document = {
        cookie: ''  // 这边带上自己的cookie,但是!置为空,也能够访问???
    }
    function i(e) {
        var t, a = (t = "",
            ["66", "72", "6f", "6d", "43", "68", "61", "72", "43", "6f", "64", "65"].forEach((function (e) {
                    t += unescape("%u00" + e)
                }
            )),
            t);
        return String[a](e)
    }
    function s() {
        return unescape("861831832863830866861836861862839831831839862863839830865834861863837837830830837839836861835833".replace(/8/g, "%u00"))
    }
    var l = "00000008d78d46a"
    var n = {
        oZ: function g(e, t) {
            t || (t = s());
            for (var a = (e = e.split("")).length, n = t.length, o = "charCodeAt", r = 0; r < a; r++)
                e[r] = i(e[r][o](0) ^ t[(r + 10) % n][o](0));
            return e.join("")
        },
        cv: function h(e) {
            return function (e) {
                try {
                    return btoa(e)
                } catch (t) {
                    return Buffer.from(e).toString("base64")
                }
            }(encodeURIComponent(e).replace(/%([0-9A-F]{2})/g, (function (e, t) {
                    return i("0x" + t)
                }
            )))
        },
        ej: function u(e) {
            var t, a = new RegExp("(^| )" + e + "=([^;]*)(;|$)");
            return (t = document.cookie.match(a)) ? unescape(t[2]) : null
        }
    }
    var d = "@#"
    var e = {
        // url: "/rank/indexPlus/brand_id/1",
        url: "/rank/indexPlus/brand_id/" + pg,    // 1.免费榜 0.付费 2.畅销榜
        baseURL: "https://api.qimai.cn",
    }
    var c = {
        default: function On(e) {
            this._init(e)
        }
    }
    var u = "synct"
    var t = (0, n.ej)(u);
    var m = "syncd"
    var f = f = c.default.prototype.difftime = -(0, n.ej)(m) || +new Date - 1e3 * t
    var o = +new Date - (f || 0) - 1515125653845
    var r = []
    r = r.sort().join(""), r = (0, n.cv)(r), r += d + e.url.replace(e.baseURL, ""), r += d + o, r += d + 1,
    a_ = (0, n.cv)((0, n.oZ)(r, l))
    return a_
}

结尾

在这里插入图片描述

  • 11
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值