javascript中的编码语言是什么?
我有下面的脚本,我不知道我们是否要开始搜索,因为我不熟悉代码 这些代码包含在我的博客blogger.com上 具体来说,它来自我下载的模板 我想修改代码,因为它注入了一些文本,我很好奇他们是怎么做到的 它的作用是,当我删除id=“someID”的元素时,他们会将我的页面重定向到他们的网站 注意:我删除了中间部分的一些脚本,因为它太长了,这个站点无法处理 更新:我删除了var I1I的中间值 这是完整的脚本javascript中的编码语言是什么?,javascript,blogger,Javascript,Blogger,我有下面的脚本,我不知道我们是否要开始搜索,因为我不熟悉代码 这些代码包含在我的博客blogger.com上 具体来说,它来自我下载的模板 我想修改代码,因为它注入了一些文本,我很好奇他们是怎么做到的 它的作用是,当我删除id=“someID”的元素时,他们会将我的页面重定向到他们的网站 注意:我删除了中间部分的一些脚本,因为它太长了,这个站点无法处理 更新:我删除了var I1I的中间值 这是完整的脚本 />16&0xff; o2=位>>8&0xff; o3=位&0xff; 如果(h3==64
/>16&0xff;
o2=位>>8&0xff;
o3=位&0xff;
如果(h3==64){
enc+=String.fromCharCode(o1)
}否则如果(h4==64){
enc+=String.fromCharCode(o1,o2)
}否则{
enc+=String.fromCharCode(o1,o2,o3)
}
}而(i=0;i--){
ret+=string.charAt(i);
}
返回ret;
}
评估(0lO(10O(I1I));
//]]>
它本身不是一种“编码语言”:它只是在页面上执行的一种尝试。而且它(至少)实际上是双重编码的。)
第一个阶段很容易展开:只需将eval(0lO(10O(I1I))
替换为类似于console.log(0lO(10O(I1I)))
的内容,控制台中就有了源代码。我已经准备好了,但它显然不会显示整个代码(因为您删除了部分编码文本)
然而,您得到的并不是要处理的代码——它是packer
处理原始源代码的结果,这是我提到的第二个阶段。下面是更详细地讨论这个问题的示例。底线是,有一种可以让你解包代码的语言。它本身不是一种“编码语言”:它只是在页面上执行的一种尝试。而且它(至少)实际上是双重编码的。)
第一个阶段很容易展开:只需将eval(0lO(10O(I1I))
替换为类似于console.log(0lO(10O(I1I)))
的内容,控制台中就有了源代码。我已经准备好了,但它显然不会显示整个代码(因为您删除了部分编码文本)
然而,您得到的并不是要处理的代码——它是
packer
处理原始源代码的结果,这是我提到的第二个阶段。下面是更详细地讨论这个问题的示例。底线是有一个可以让你解包的代码。你的代码是base64编码的数据,它已经被颠倒过来了
在这方面:
eval(_0lO(_10O(I1I)));
- 第一个
反转\u10o(I1I)
,使其顺序正确I1I
- 然后
将其从base64解码为数据(在本例中是包含模糊JavaScript的常规字符串值)\u 0lO()
- 最后,
eval()
console.log(_0lO(_10O(I1I)));
至于修改它,我想说的是,只需将解码后的代码修改,然后将其放回您的站点,而不必使用任何人都可能破解的愚蠢编码。您的代码是base64编码的数据,它已被前后颠倒 在这方面:
eval(_0lO(_10O(I1I)));
- 第一个
反转\u10o(I1I)
,使其顺序正确I1I
- 然后
将其从base64解码为数据(在本例中是包含模糊JavaScript的常规字符串值)\u 0lO()
- 最后,
eval()
console.log(_0lO(_10O(I1I)));
至于修改它,我想说的是,只要把解码后的代码修改一下,然后把它放回你的网站上,而不需要任何人都能破解的愚蠢的编码。所以,我深入挖掘了一下,我发现:
function _10O(string) {
var ret = '',
i = 0;
for (i = string.length - 1; i >= 0; i--) {
ret += string.charAt(i);
}
return ret;
}
此函数只镜像给定字符串。因此,ABC
将是CBA
之后。它用于将给定的var I1I
(实际镜像为base64)镜像到base64。然后通过\u 0lO
功能对其进行base64解码
此操作的输出应类似于:
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){............ // I have stripped that here to not include any malicious code inside Stack Overflow!
eval(function(p,a,c,k,e,d){e=function(c){return(c)关于恶意脚本,我通过谷歌搜索脚本的部分解码内容找到了脚本的实际内容
因此,让我们假设:这是一个恶意的、模糊的、base64编码的脚本,用于向恶意站点打开
注意:在我的计算机上运行此程序会在防病毒弹出窗口中受到影响,因此请小心。我已将代码剥离,以不包含整个恶意eval
内容。因此,我深入挖掘了一下,我发现:
function _10O(string) {
var ret = '',
i = 0;
for (i = string.length - 1; i >= 0; i--) {
ret += string.charAt(i);
}
return ret;
}
此函数只镜像给定字符串。因此,ABC
将是CBA
之后。它用于将给定的var I1I
(实际上是镜像的base64)镜像到base64。然后由\u 0lO
函数对其进行base64解码
此操作的输出应类似于:
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){............ // I have stripped that here to not include any malicious code inside Stack Overflow!
eval(function(p,a,c,k,e,d){e=function(c){return(c)关于恶意脚本,我通过谷歌搜索脚本的部分解码内容找到了脚本的实际内容
因此,让我们假设:这是一个恶意的、模糊的、base64编码的脚本,用于向恶意站点打开
注意:在我的机器上运行此程序会在防病毒弹出窗口中受到影响,请小心