ChatGPT API 解码:JS 混淆代码分析与反混淆
该代码使用混淆技术,需要进行反混淆才能得到可读性强的代码。
以下是反混淆后的代码:
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';
}
代码分析:
- 自动聚焦: 代码首先使用
autoFocus函数将页面加载后将焦点置于chat-gpt-input文本框,并使用touchstart事件处理程序确保在触摸设备上也能够聚焦文本框。 - 发送消息:
callCHATGPT函数通过调用fetch函数向 ChatGPT API 发送请求,并使用JSON.stringify将用户输入的prompt编码为 JSON 格式。 - API URL: 代码使用
https://free-api.cveoy.top/v2/completions作为 ChatGPT API 的 URL,这个地址可能是一个免费的 ChatGPT API 服务提供商。 - 响应处理: 代码解析 API 响应,如果状态码为
200表示成功,则使用TextDecoder解码响应数据并显示在responseText元素中,否则提示用户输入错误。
反混淆方法:
这段代码主要使用字符串替换、变量混淆、函数混淆等技术进行混淆。反混淆的方法主要包括:
- 字符串替换: 代码中的字符串被替换为
_0x9f4c函数的调用,通过分析_0x9f4c函数的逻辑,可以还原被混淆的字符串。 - 变量混淆: 代码中的变量名被替换为随机字符串,可以通过分析代码的逻辑,推断出变量的实际含义。
- 函数混淆: 代码中的函数名被替换为随机字符串,可以通过分析代码的逻辑,推断出函数的实际作用。
总结:
这段代码展示了一个简单的与 ChatGPT API 交互的示例,并使用混淆技术来保护代码。通过反混淆操作,我们可以了解代码的真实逻辑,并从中学习与 ChatGPT API 交互的知识。
免责声明:
本代码示例仅供学习参考,请勿用于任何违法或侵权行为。
原文地址: https://www.cveoy.top/t/topic/mF9x 著作权归作者所有。请勿转载和采集!