开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 348|回复: 5
收起左侧

[完成] webpack js逆向问题求助

 关闭 [复制链接]
结帖率:80% (81/101)
发表于 2024-9-25 20:53:52 | 显示全部楼层 |阅读模式   黑龙江省大庆市
50精币
附件里面的js代码 如果在浏览器调试就是正常计算, 如果在nodejs中就是提示缺少模块 这个是缺少浏览器环境导致的吗? 具体实现是要补环境呢 还是怎么操作呢。

浏览器里面调试 代码正常

nodejs调试 报错缺少模块 如果把网站模块全扣 会报 Uncaught TypeError TypeError: Cannot read properties of undefined (reading 'crypto') 错误, 自己导入一个crypto还是一样报这个错误。


补充内容 (2024-9-25 20:56):
js代码附件没传上去 代码在第一个回复帖子
c1cd98fe6abe1a36a75143834b776e85.png
0d15d6dc9ab375ef9788a14dba3bc58f.png

最佳答案

查看完整内容

这玩意没什么,原生脚本组件就能出结果了。
结帖率:100% (3/3)

签到天数: 20 天

发表于 2024-9-25 20:53:53 | 显示全部楼层   福建省漳州市
这玩意没什么,原生脚本组件就能出结果了。
getApiKey.txt (5.93 KB, 下载次数: 4)

评分

参与人数 1荣誉 +1 收起 理由
笨潴 + 1 热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!

查看全部评分

回复

使用道具 举报

结帖率:80% (81/101)
 楼主| 发表于 2024-9-25 20:56:12 | 显示全部楼层   黑龙江省大庆市
[JavaScript] 纯文本查看 复制代码
//https://www.oklink.com/zh-hans/btc/tx-list/page/6


var OKlink;
!function(e) {
    t = {};
    function n(r) {
        console.log(r)
        var a = t[r];
        if (void 0 !== a)
            return a.exports;
        var o = t[r] = {
            id: r,
            loaded: !1,
            exports: {}
        };
        return e[r].call(o.exports, o, o.exports, n),
        o.loaded = !0,
        o.exports
    }
    

    n.d = (e, t) => {
        for (var r in t)
            n.o(t, r) && !n.o(e, r) && Object.defineProperty(e, r, {
                enumerable: !0,
                get: t[r]
            })
    }
    n.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t),
    
    OKlink=n;
}({
    57816: (t, e, n) => {
        "use strict";
        n.d(e, {
            A: () => c
        });
        var r = n(23029)
          , i = n(92901)
          , o = n(63129)
          , a = n(51583)
          , s = 1111111111111;
        const c = new (function() {
            function t() {
                (0,
                r.A)(this, t),
                this.API_KEY = "a2c903cc-b31e-4547-9299-b6d07b7631ab"
            }
            return (0,
            i.A)(t, [{
                key: "encryptApiKey",
                value: function() {
                    var t = this.API_KEY
                      , e = t.split("")
                      , n = e.splice(0, 8);
                    return t = e.concat(n).join("")
                }
            }, {
                key: "encryptTime",
                value: function(t) {
                    var e = (1 * t + s).toString().split("")
                      , n = parseInt(10 * o.o.mathRandom(), 10)
                      , r = parseInt(10 * o.o.mathRandom(), 10)
                      , i = parseInt(10 * o.o.mathRandom(), 10);
                    return e.concat([n, r, i]).join("")
                }
            }, {
                key: "comb",
                value: function(t, e) {
                    var n = "".concat(t, "|").concat(e);
                    return a.A.btoa(n)
                }
            }, {
                key: "getApiKey",
                value: function() {
                    var t = (new Date).getTime()
                      , e = this.encryptApiKey();
                    return t = this.encryptTime(t),
                    this.comb(e, t)
                }
            }, {
                key: "getTimestamp",
                value: function(t) {
                    var e = a.A.atob(t).split("|")[1];
                    return e = e.slice(0, -3),
                    e -= s
                }
            }]),
            t
        }())
    }
    ,    
    23029: (t, e, n) => {
        "use strict";
        function r(t, e) {
            if (!(t instanceof e))
                throw new TypeError("Cannot call a class as a function")
        }
        n.d(e, {
            A: () => r
        })
    }
    ,
    92901: (t, e, n) => {
        "use strict";
        n.d(e, {
            A: () => o
        });
        var r = n(20816);
        function i(t, e) {
            for (var n = 0; n < e.length; n++) {
                var i = e[n];
                i.enumerable = i.enumerable || !1,
                i.configurable = !0,
                "value"in i && (i.writable = !0),
                Object.defineProperty(t, (0,
                r.A)(i.key), i)
            }
        }
        function o(t, e, n) {
            return e && i(t.prototype, e),
            n && i(t, n),
            Object.defineProperty(t, "prototype", {
                writable: !1
            }),
            t
        }
    }
    ,
    20816: (t, e, n) => {
        "use strict";
        n.d(e, {
            A: () => i
        });
        var r = n(82284);
        function i(t) {
            var e = function(t, e) {
                if ("object" != (0,
                r.A)(t) || !t)
                    return t;
                var n = t[Symbol.toPrimitive];
                if (void 0 !== n) {
                    var i = n.call(t, e || "default");
                    if ("object" != (0,
                    r.A)(i))
                        return i;
                    throw new TypeError("@@toPrimitive must return a primitive value.")
                }
                return ("string" === e ? String : Number)(t)
            }(t, "string");
            return "symbol" == (0,
            r.A)(e) ? e : e + ""
        }
    }
    ,
    82284: (t, e, n) => {
        "use strict";
        function r(t) {
            return r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                return typeof t
            }
            : function(t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            }
            ,
            r(t)
        }
        n.d(e, {
            A: () => r
        })
    }
    ,
    63129: (t, e, n) => {
        "use strict";
        n.d(e, {
            o: () => o
        });
        var r, i = (0,
        n(99692).f)();
        r = i || !window.crypto ? n(28078) : window.crypto;
        var o = {
            mathRandom: function() {
                return Math.random()
            },
            cryptoRandom: function(t) {
                var e = t || {}
                  , n = e.bytesLength
                  , i = void 0 === n ? 1 : n
                  , o = e.UnitArray
                  , a = new (void 0 === o ? Uint32Array : o)(i);
                return r.getRandomValues(a)
            }
        }
    }
    ,
    99692: (t, e, n) => {
        "use strict";
        n.d(e, {
            f: () => r
        });
        var r = function() {
            return Boolean("undefined" === typeof window || void 0)
        }
    }
    ,
    51583: (t, e, n) => {
        "use strict";
        n.d(e, {
            A: () => o
        });
        var r = n(89379)
          , i = n(99692);
        const o = function() {
            var t;
            if ("undefined" !== typeof globalThis)
                t = globalThis;
            else if ("undefined" !== typeof window)
                t = window;
            else {
                if ("undefined" === typeof n.g)
                    throw new Error("unable to locate global object");
                t = n.g
            }
            var e = {};
            return (0,
            i.f)() && function(t) {
                for (var e = ["addEventListener", "removeEventListener", "IntersectionObserver", "getComputedStyle", "scrollTo"], n = ["location", "event", "navigator"], r = ["devicePixelRatio"], i = ["devicePixelRatio", "scrollY", "scrollX", "innerWidth", "innerHeight"], o = 0; o < e.length; o++)
                    t[e[o]] || (t[e[o]] = function() {
                        return null
                    }
                    );
                for (var a = 0; a < n.length; a++)
                    t[n[a]] || (t[n[a]] = {});
                for (var s = 0; s < r.length; s++)
                    t[r] || (t[r] = "");
                for (var c = 0; c < i.length; c++)
                    t[i[c]] || (t[i[c]] = 0)
            }(e),
            (0,
            i.f)() && function(t) {
                var e = ["addEventListener", "removeEventListener", "appendChild", "getComputedStyle"]
                  , n = e.concat(["createElement", "getElementById", "getElementsByTagName", "getElementsByClassName", "removeChild", "querySelector"]);
                if (!t.document) {
                    for (var r = {}, i = {}, o = 0; o < e.length; o++)
                        r[e[o]] || (r[e[o]] = function() {
                            return null
                        }
                        );
                    for (var a = 0; a < n.length; a++)
                        i[n[a]] || (i[n[a]] = function() {
                            return null
                        }
                        );
                    i.body = r,
                    t.document = i
                }
            }(e),
            (0,
            i.f)() ? (0,
            r.A)((0,
            r.A)((0,
            r.A)({}, t), e), {}, {
                btoa: n.g.btoa,
                atob: n.g.atob
            }) : t
        }()
    }
    ,
    89379: (t, e, n) => {
        "use strict";
        n.d(e, {
            A: () => o
        });
        var r = n(64467);
        function i(t, e) {
            var n = Object.keys(t);
            if (Object.getOwnPropertySymbols) {
                var r = Object.getOwnPropertySymbols(t);
                e && (r = r.filter((function(e) {
                    return Object.getOwnPropertyDescriptor(t, e).enumerable
                }
                ))),
                n.push.apply(n, r)
            }
            return n
        }
        function o(t) {
            for (var e = 1; e < arguments.length; e++) {
                var n = null != arguments[e] ? arguments[e] : {};
                e % 2 ? i(Object(n), !0).forEach((function(e) {
                    (0,
                    r.A)(t, e, n[e])
                }
                )) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : i(Object(n)).forEach((function(e) {
                    Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
                }
                ))
            }
            return t
        }
    }
    ,
    64467: (t, e, n) => {
        "use strict";
        n.d(e, {
            A: () => i
        });
        var r = n(20816);
        function i(t, e, n) {
            return (e = (0,
            r.A)(e))in t ? Object.defineProperty(t, e, {
                value: n,
                enumerable: !0,
                configurable: !0,
                writable: !0
            }) : t[e] = n,
            t
        }
    }
    ,
    20816: (t, e, n) => {
        "use strict";
        n.d(e, {
            A: () => i
        });
        var r = n(82284);
        function i(t) {
            var e = function(t, e) {
                if ("object" != (0,
                r.A)(t) || !t)
                    return t;
                var n = t[Symbol.toPrimitive];
                if (void 0 !== n) {
                    var i = n.call(t, e || "default");
                    if ("object" != (0,
                    r.A)(i))
                        return i;
                    throw new TypeError("@@toPrimitive must return a primitive value.")
                }
                return ("string" === e ? String : Number)(t)
            }(t, "string");
            return "symbol" == (0,
            r.A)(e) ? e : e + ""
        }
    }
    ,
    99692: (t, e, n) => {
        "use strict";
        n.d(e, {
            f: () => r
        });
        var r = function() {
            return Boolean("undefined" === typeof window || void 0)
        }
    }
})


var v = OKlink(57816);
console.log(v.A.getApiKey())
回复

使用道具 举报

结帖率:100% (3/3)

签到天数: 20 天

发表于 2024-9-25 20:57:26 | 显示全部楼层   福建省漳州市
28078 这个模块继续抠出来就行了,crypto对象在浏览器里是有的,把28078这个模块补上就可以了
回复

使用道具 举报

结帖率:80% (81/101)
 楼主| 发表于 2024-9-25 21:01:08 | 显示全部楼层   黑龙江省大庆市
南影 发表于 2024-9-25 20:57
28078 这个模块继续抠出来就行了,crypto对象在浏览器里是有的,把28078这个模块补上就可以了 ...

感谢回复 !! 我上面的代码在浏览器就是可以正常运行的 在nodejs里面运行不了。 28078抠出来一样提示少模块 模块全扣 提示少crypto
回复

使用道具 举报

结帖率:100% (11/11)

签到天数: 22 天

发表于 2024-9-25 21:34:39 | 显示全部楼层   福建省福州市
第一行加一句 const crypto = require('crypto');
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表