你好,这个不用解密的,你已经解密过来了。
这是别人通过js混淆器加密后,你解密后的结果。
就是混淆器就是把一些变量替换了,可读性差,不直观。
\x69\x74\x65\x6D 这些字符都是变量的,不是真正的字符。他的这些变量就像 a b c一样,只是长度字符大。比如我们定义 a=5;以后调用a就可以,同样道理,我定义\x69\x74\x65\x6D=5,以后调用\x69\x74\x65\x6D就可以了。
要想直观的,你可以逐一替换这些变量,那要一个一个找,或者批量替换掉。
混淆的作用就是用无意义的关键字符替代原来有意义的关键字符,让浏览者“看不懂”代码,不了解代码的运行逻辑,也就无法复用。
混淆不同于加密解密,因为原来有意义的字符已经被替换了,不存在算法上的反推,任何的技术不可能再得出原来的那些有意义的字符。
所以理论上,混淆后的代码无法解密。但因为它的整个运算逻辑关系链是完整的,与混淆前的代码关系链是完全一致的,所以非要“破解”,只能说摸清它的逻辑关系链,人为去做的话,烧脑又复杂。技术上需要一定的运算能力来做这个工作,比如云计算甚至超级计算机,但即便“破解”,它也是只能分析出一个函数大致是干什么用的,原来的关键字符名称还是不可能得出。
前面的\x只是16进制编解码就好
function decode(str){
return str.replace(/\\x(\w{2})/g,function(_,$1){ return String.fromCharCode(parseInt($1,16)) });
}
后面的使用压缩混淆工具,压缩了空格,简化了变量名.是可以格式化回去的,但是变量你想还原到原来的有含义的命名,是不可能的了