likes
comments
collection
share

猿人学十六题

作者站长头像
站长
· 阅读数 65

第一步先抓包,发现m加密参数

猿人学十六题

第二步跟栈,找加密位置

猿人学十六题

发现是改写了btoa

猿人学十六题

将这个加密方法扣下来

猿人学十六题

接下来就是在本地运行补环境,缺什么补什么就好,这里就不一一细说了


注意点:当环境补完后,发现加密参数并不能获取到结果

在js中搜索try

猿人学十六题

发现这里有个判断,在浏览器打开 控制台输入后发现n.g是个window对象

猿人学十六题

本地打印为undefined

猿人学十六题

检测了n.g是不是winodw环境,这个js指纹比较简单,直接把n.g换成window就行

或者直接给n.g添加环境

    function nn(r) {
        if (t[r])
            return t[r].exports;
        var i = t[r] = {
            exports: {}
        };
        return e[r].call(i.exports, i, i.exports, n),
            i.exports
    }

    n.g = function () {
        if ("object" == typeof globalThis)
            return globalThis;
        try {
            return this || new Function("return this")()
        } catch (e) {
            if ("object" == typeof window)
                return window
        }
    }();
转载自:https://segmentfault.com/a/1190000042530618
评论
请登录