Javascript非人类可读的变量/函数声明

Javascript非人类可读的变量/函数声明,javascript,Javascript,我是javascript新手,需要社区的帮助 下面是一段javascript,它具有某种十六进制值变量声明或函数声明 我需要理解0xbf56x2b和其他类似的东西的含义,如果它们有任何意义的话。 在第一次出现时,它看起来确实像十六进制,但即使将它们转换为ASCII,我也没有得到任何意义 这是一个非常庞大的javascript文件,下面是该文件的一个示例部分。这个巨大的javascript文件中充满了这些(例如0xbf56x2b)类型的变量或函数声明,如果有人能告诉我这是什么意思,或者我应该如何解

我是javascript新手,需要社区的帮助

下面是一段javascript,它具有某种十六进制值变量声明或函数声明 我需要理解0xbf56x2b和其他类似的东西的含义,如果它们有任何意义的话。 在第一次出现时,它看起来确实像十六进制,但即使将它们转换为ASCII,我也没有得到任何意义

这是一个非常庞大的javascript文件,下面是该文件的一个示例部分。这个巨大的javascript文件中充满了这些(例如0xbf56x2b)类型的变量或函数声明,如果有人能告诉我这是什么意思,或者我应该如何解码,这将非常有帮助

'''

函数时间检查(){
var**0xbf56x2b**=$(Main_Arr[8])[Main_Arr[7]]();
var**0xbf56x2c**=新日期(_0xbf56x2b);
var**0xbf56x2d**=新日期();
变量**0xbf56x2e**=(0xbf56x2d[Main_Arr[9]]()+1)+Main_Arr[10]+0xbf56x2d[Main_Arr[11]]()+
主阵列[10]+**0xbf56x2d**[Main阵列[12]()+主阵列[13];
如果(***0xbf56x2d**[主阵列[14]]()>12){
**_0xbf56x2e**=**0xbf56x2e**+(**0xbf56x2d**[主阵列[14]]()-12);
}否则{
**_0xbf56x2e**=**0xbf56x2e**+**0xbf56x2d**[Main_Arr[14]]();
};    
如果(**0xbf56x2d**[Main_Arr[15]]()<10){
**_0xbf56x2e**=**0xbf56x2e**+Main_Arr[16]+**0xbf56x2d**[Main_Arr[15]]();
}否则{
**_0xbf56x2e**=**0xbf56x2e**+Main_Arr[17]+**0xbf56x2d**[Main_Arr[15]]();
};    
如果(**0xbf56x2d**[Main_Arr[18]](小于10){
**_0xbf56x2e**=**0xbf56x2e**+主阵列[16]+**0xbf56x2d**[主阵列[18]]();
}否则{
**_0xbf56x2e**=**0xbf56x2e**+Main_Arr[17]+**0xbf56x2d**[Main_Arr[18]]();
};    
时差=(**0xbf56x2d**[Main_Arr[19]]()-**0xbf56x2c**[Main_Arr[19]])/60000;
如果(时差<5){
警报(主阵列[20]+**0xbf56x2e**+主阵列[21]);
};    
};   

''

好的,参考我的“日期和时间计算”经验,这就是您未混淆的代码应该是什么样子

\u 0xbf56x2d
=
currentDate

\u 0xbf56x2c
=
selectedDate

\u 0xbf56x2b
=
时间戳

\u 0xbf56x2e
=
currentDateAsString

function timeCheck() {
    var timestamp = "01.01.1970 00:00:00"; // I don't know the source of this timestamp. Must be some global array.    
    var selectedDate = new Date(timestamp);    
    var currentDate = new Date();    
    
    
    var currentDateAsString = (currentDate.getMonth() + 1) + "." + currentDate.getDate() + "." + currentDate.getYear() + " ";    
    
    
    if (currentDate.getHours() > 12) {
        currentDateAsString = currentDateAsString + (currentDate.getHours() - 12);    
    } else {    
        currentDateAsString = currentDateAsString + currentDate.getHours();    
    };    
    if (currentDate.getMinutes() < 10) {    
        currentDateAsString = currentDateAsString + ":0" + currentDate.getMinutes();    
    } else {    
        currentDateAsString = currentDateAsString + ":" + currentDate.getMinutes();    
    };    
    if (currentDate.getSeconds() < 10) {    
        currentDateAsString = currentDateAsString + ":0" + currentDate.getSeconds();    
    } else {    
        currentDateAsString = currentDateAsString + ":" + currentDate.getSeconds();    
    };    
    
    timedifference = (currentDate.getMilliseconds() - selectedDate.getMilliseconds()) / 60000;    
    if (timedifference < 5) {    
        alert(currentDateAsString);    
    };    
};  
函数时间检查(){
var timestamp=“01.01.1970 00:00:00”;//我不知道此时间戳的来源。必须是某个全局数组。
var selectedDate=新日期(时间戳);
var currentDate=新日期();
var currentDateAsString=(currentDate.getMonth()+1)+“+currentDate.getDate()+”+currentDate.getYear()+”;
如果(currentDate.getHours()>12){
currentDateAsString=currentDateAsString+(currentDate.getHours()-12);
}否则{
currentDateAsString=currentDateAsString+currentDate.getHours();
};    
如果(currentDate.getMinutes()<10){
currentDateAsString=currentDateAsString+“:0”+currentDate.getMinutes();
}否则{
currentDateAsString=currentDateAsString+“:”+currentDate.getMinutes();
};    
如果(currentDate.getSeconds()<10){
currentDateAsString=currentDateAsString+“:0”+currentDate.getSeconds();
}否则{
currentDateAsString=currentDateAsString+“:”+currentDate.getSeconds();
};    
时差=(currentDate.getmillizes()-selectedDate.getmillizes())/60000;
如果(时差<5){
警报(currentDateAsString);
};    
};  
所以现在应该清楚它的作用了

首先,它从数组或全局变量中提取一个时间戳,并用它生成一个日期。 然后,它连接当前时间戳的可读表示。
最后,它将来自未知源的时间戳与现在的时间戳进行比较。如果差异小于5毫秒,它会提醒人类可读的时间戳。

var**\u 0xbf56x2b**
抛出语法错误?您是否在示例中添加了
**
?它只是一个模糊的代码,用无意义的变量名替换有意义的变量名,目的是为了模糊逻辑。这应该没有问题。只需使用IDE或任何文本编辑器,用替换名称替换代码中的每个变量。例如,
**0xbf56x2b**
=
variable1
等等。然后您将获得一个更可读的运行代码。在接下来的步骤中,在console.log()的帮助下,您将试图了解哪个变量做了什么并重命名它们。@charlietfl该算法无疑是“生成随机代码”。非常感谢您的努力,但是我有一个4k行的javascript代码,里面充满了很多这样的变量,上面的代码片段是这个巨大的javascript代码中的一个示例函数。我需要一个修复程序来理解那些大约有4k行的模糊代码。老实说,如果没有专门的工具,你是不会成功的。正如你在我的例子中看到的,识别模式需要很多背景知识。我也同意!我将继续寻找这项任务所需的工具。再次感谢你的慷慨帮助,不客气。
function timeCheck() {
    var timestamp = "01.01.1970 00:00:00"; // I don't know the source of this timestamp. Must be some global array.    
    var selectedDate = new Date(timestamp);    
    var currentDate = new Date();    
    
    
    var currentDateAsString = (currentDate.getMonth() + 1) + "." + currentDate.getDate() + "." + currentDate.getYear() + " ";    
    
    
    if (currentDate.getHours() > 12) {
        currentDateAsString = currentDateAsString + (currentDate.getHours() - 12);    
    } else {    
        currentDateAsString = currentDateAsString + currentDate.getHours();    
    };    
    if (currentDate.getMinutes() < 10) {    
        currentDateAsString = currentDateAsString + ":0" + currentDate.getMinutes();    
    } else {    
        currentDateAsString = currentDateAsString + ":" + currentDate.getMinutes();    
    };    
    if (currentDate.getSeconds() < 10) {    
        currentDateAsString = currentDateAsString + ":0" + currentDate.getSeconds();    
    } else {    
        currentDateAsString = currentDateAsString + ":" + currentDate.getSeconds();    
    };    
    
    timedifference = (currentDate.getMilliseconds() - selectedDate.getMilliseconds()) / 60000;    
    if (timedifference < 5) {    
        alert(currentDateAsString);    
    };    
};