该代码使用混淆技术,需要进行反混淆才能得到可读性强的代码。

以下是反混淆后的代码:

function autoFocus() {
    document.getElementById('chat-gpt-input').focus();
}
window.addEventListener('load', autoFocus);
window.addEventListener('DOMContentLoaded', autoFocus);
window.addEventListener('touchstart', function(event) {
    if (event.target.id === 'chat-gpt-input') {
        event.stopPropagation();
        document.getElementById('chat-gpt-input').focus();
        return false;
    }
}, {
    passive: false
});

async function callCHATGPT() {
    var url = 'https://free-api.cveoy.top/v2/completions';
    var btn = document.getElementById('myButton');
    //这里改点击发送按钮后的倒计时
    var timeleft = 0;
    btn.disabled = true;
    btn.innerHTML = timeleft + ' 秒后可再次发送';
    var timer = setInterval(function() {
        timeleft--;
        btn.innerHTML = timeleft + ' 秒后可再次发送';
        if (timeleft <= 0) {
            btn.disabled = false;
            btn.innerHTML = '发送消息';
            clearInterval(timer);
        }
    }, 1000);
    var textarea = document.getElementById('chat-gpt-input');
    if (textarea.value.trim() === '') {
        alert('请输入您的问题!');
        return false;
    } else {

    }

    var version_ = 'jsjiami.com.v7';
    var responseText = document.getElementById('responseText');
    responseText.innerHTML = '';

    var prompt = document.querySelector('textarea').value;
    var data = JSON.stringify({
        'prompt': document.getElementById('chat-gpt-input').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';

}

代码分析:

  1. 自动聚焦: 代码首先使用 autoFocus 函数将页面加载后将焦点置于 chat-gpt-input 文本框,并使用 touchstart 事件处理程序确保在触摸设备上也能够聚焦文本框。
  2. 发送消息: callCHATGPT 函数通过调用 fetch 函数向 ChatGPT API 发送请求,并使用 JSON.stringify 将用户输入的 prompt 编码为 JSON 格式。
  3. API URL: 代码使用 https://free-api.cveoy.top/v2/completions 作为 ChatGPT API 的 URL,这个地址可能是一个免费的 ChatGPT API 服务提供商。
  4. 响应处理: 代码解析 API 响应,如果状态码为 200 表示成功,则使用 TextDecoder 解码响应数据并显示在 responseText 元素中,否则提示用户输入错误。

反混淆方法:

这段代码主要使用字符串替换、变量混淆、函数混淆等技术进行混淆。反混淆的方法主要包括:

  • 字符串替换: 代码中的字符串被替换为 _0x9f4c 函数的调用,通过分析 _0x9f4c 函数的逻辑,可以还原被混淆的字符串。
  • 变量混淆: 代码中的变量名被替换为随机字符串,可以通过分析代码的逻辑,推断出变量的实际含义。
  • 函数混淆: 代码中的函数名被替换为随机字符串,可以通过分析代码的逻辑,推断出函数的实际作用。

总结:

这段代码展示了一个简单的与 ChatGPT API 交互的示例,并使用混淆技术来保护代码。通过反混淆操作,我们可以了解代码的真实逻辑,并从中学习与 ChatGPT API 交互的知识。

免责声明:

本代码示例仅供学习参考,请勿用于任何违法或侵权行为。

ChatGPT API 解码:JS 混淆代码分析与反混淆

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

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