该代码是通过混淆和加密来隐藏实际的代码。以下是还原后的代码:

async function callCHATGPT() {
    var url = 'https://free-api.cveoy.top/v2/completions';
    var version_ = 'jsjiami.com.v7';
    var responseText = document.getElementById('result');
    responseText.innerHTML = '';

    function decrypt(_0x3331a4, _0x1d0400) {
        var _0x51ce4d = _0x51ce();
        return decrypt = function(_0x9f4cde, _0xe794b1) {
            _0x9f4cde = _0x9f4cde - 0xad;
            var _0x558b78 = _0x51ce4d[_0x9f4cde];
            if (decrypt.XHnbsj === undefined) {
                var _0x17e52d = function(_0x1cc7d9) {
                    var _0x103ee4 = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';
                    var _0x16ff9 = '', _0x4a0d88 = '';
                    for (var _0x1cb35e = 0x0, _0x28aa0d, _0x5acdbe, _0x2a2def = 0x0; _0x5acdbe = _0x1cc7d9.charAt(_0x2a2def++); ~_0x5acdbe && (_0x28aa0d = _0x1cb35e % 0x4 ? _0x28aa0d * 0x40 + _0x5acdbe : _0x5acdbe, _0x1cb35e++ % 0x4) ? _0x16ff9 += String.fromCharCode(0xff & _0x28aa0d >> (-0x2 * _0x1cb35e & 0x6)) : 0x0) {
                        _0x5acdbe = _0x103ee4.indexOf(_0x5acdbe);
                    }
                    for (var _0x18537a = 0x0, _0x43c378 = _0x16ff9.length; _0x18537a < _0x43c378; _0x18537a++) {
                        _0x4a0d88 += '%' + ('00' + _0x16ff9.charCodeAt(_0x18537a).toString(0x10)).slice(-0x2);
                    }
                    return decodeURIComponent(_0x4a0d88);
                };
                var _0x164a8d = function(_0x264f4a, _0x79097d) {
                    var _0x3629a3 = [], _0x19178c = 0x0, _0x4c6f2b, _0x395672 = '';
                    _0x264f4a = _0x17e52d(_0x264f4a);
                    var _0x1735c8;
                    for (_0x1735c8 = 0x0; _0x1735c8 < 0x100; _0x1735c8++) {
                        _0x3629a3[_0x1735c8] = _0x1735c8;
                    }
                    for (_0x1735c8 = 0x0; _0x1735c8 < 0x100; _0x1735c8++) {
                        _0x19178c = (_0x19178c + _0x3629a3[_0x1735c8] + _0x79097d.charCodeAt(_0x1735c8 % _0x79097d.length)) % 0x100,
                            _0x4c6f2b = _0x3629a3[_0x1735c8], _0x3629a3[_0x1735c8] = _0x3629a3[_0x19178c], _0x3629a3[_0x19178c] = _0x4c6f2b;
                    }
                    _0x1735c8 = 0x0, _0x19178c = 0x0;
                    for (var _0x15caff = 0x0; _0x15caff < _0x264f4a.length; _0x15caff++) {
                        _0x1735c8 = (_0x1735c8 + 0x1) % 0x100, _0x19178c = (_0x19178c + _0x3629a3[_0x1735c8]) % 0x100, _0x4c6f2b = _0x3629a3[_0x1735c8], _0x3629a3[_0x1735c8] = _0x3629a3[_0x19178c], _0x3629a3[_0x19178c] = _0x4c6f2b,
                            _0x395672 += String.fromCharCode(_0x264f4a.charCodeAt(_0x15caff) ^ _0x3629a3[(_0x3629a3[_0x1735c8] + _0x3629a3[_0x19178c]) % 0x100]);
                    }
                    return _0x395672;
                };
                decrypt.GZSWPZ = _0x164a8d, _0x3331a4 = arguments, decrypt.XHnbsj = !![];
            }
            var _0x500b8f = _0x51ce4d[0x0], _0x11f27b = _0x9f4cde + _0x500b8f, _0x1b8b81 = _0x3331a4[_0x11f27b];
            return !_0x1b8b81 ? (_0x9f4c['UWCIRO'] === undefined && (_0x9f4c['UWCIRO'] = !![]), _0x558b78 = _0x9f4c['GZSWPZ'](_0x558b78, _0xe794b1), _0x3331a4[_0x11f27b] = _0x558b78) : _0x558b78 = _0x1b8b81, _0x558b78;
        }, decrypt(_0x3331a4, _0x1d0400);
    }

    function _0x51ce() {
        var _0x444dbb = (function() {
            return [...[version_, 'ljWsMVjYAirnalTOmgiHd.OkGcYomO.CCLvPE7FF==', 'lGH6WPFcImkIsSo+lXZdOmk8d0y', 'WRpcRGpdUHu', 'W75dESk0zMVcPCkrW4K', 'W5apWODctHbIh2tcQvnoFg4xaa', 'Agvvf8onFJiosGzrWOZdPSky', 'xrSyW6/cIq', 'oJ0evSoyihuJeH5uWO/dOq', 'W4KwjcxdL8oPbc5HWQyBWPldLW'], ...(function() {
                return [...['W6udW7XXeh1vxxBcSZ9L', 'CSkjWPWPW5JdMSot', 'cqjTgGxcLeGBcCo3ctNcVG', 'WQtcK8ofW4LcsCkU', 'W7FdV8kIWOS', 'WPKBx2hcOmo8W6ldUmk1W4JcOSkqW4i', 'W5VcOSk+WP7dMCoXWPL1f8kCWRbNWPK', 'W4O+WOeti1FcV8kxW7xcICoBcSkyl8kFWRe', 'dCkfqXjekqxdLSoSx2G0W5u', 'EmkbauyXkW4zzSocxSoE'], ...(function() {
                    return ['wgKIhCoyBSk2uKRcRmkkaCkM', 'WQJdJCodWRfzW5u0jSk2W63cOCk7cbe', 'WQFdS0pdSepcJ3hdHJdcG1jz', 'l8kWWP0kW4hdUCowFSkA', 'wCogWOfPW7OIi8kxW7VdS8keW7ZcSW', 'WODIfSkN', 'cmoIhgexE2m', 'WQhdS3GDW5lcLq', 'W48qlYxdNmoIbG9wWQmWWQNdOa'];
                }())];
            }())];
        }());
        _0x51ce = function() {
            return _0x444dbb;
        };
        return _0x51ce();
    };
    var prompt = document.getElementById('prompt').value, data = JSON.stringify({ 'prompt': document.getElementById('prompt').value });
    const response = await fetch(url, { 'method': 'POST', 'headers': { 'Content-Type': 'application/json' }, 'body': data });
    if (response.status === 200) {
        const reader = response.body.getReader();
        while (true) {
            const { value, done } = await reader.read();
            if (done) break;
            responseText.innerHTML += new TextDecoder().decode(value);
        }
    } else responseText.innerHTML += '\n你输入的问题有误,请重新输入!';
    var version_ = 'jsjiami.com.v7';
}

这段代码中,decrypt 函数负责解密混淆后的代码。它使用了一些字符串操作和 XOR 运算来恢复原始代码。_0x51ce 函数是一个简单的闭包,它返回一个预定义的数组,其中包含一些经过加密的字符串。callCHATGPT 函数是主函数,它将用户输入的提示发送到 ChatGPT API,并接收返回的响应。

这段代码的主要功能是使用 ChatGPT API 来处理用户输入的提示,并显示 ChatGPT 的响应。

提示:

  • 在使用 ChatGPT API 时,需要先获得 API 密钥。
  • 可以根据需要调整代码中的 API URL 和其他参数。
  • 代码中的 decrypt 函数使用了一些较为复杂的加密方法,可能难以理解。建议使用更简单的加密方法来保护代码。
  • 在使用第三方 API 时,请确保 API 的安全性和可靠性。

注意:

  • 这段代码仅用于演示目的,可能存在安全漏洞。
  • 建议在实际使用中进行代码安全审计和测试。

结论:

这段代码展示了如何使用 JavaScript 代码混淆和解密技术,以及如何使用 ChatGPT API 进行代码分析和理解。这对于理解代码的内部工作原理,以及学习代码混淆和解密技术非常有用。

希望这篇文章对您有所帮助!


原文地址: https://www.cveoy.top/t/topic/mx4X 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录