Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从模糊的javascript代码创建javascript代码_Javascript_Obfuscation - Fatal编程技术网

从模糊的javascript代码创建javascript代码

从模糊的javascript代码创建javascript代码,javascript,obfuscation,Javascript,Obfuscation,我想知道是否有可能重现模糊的javascript代码(从模糊的javascript代码创建javascript代码) 我的网站上有一些javascript代码。我想阻止其他人编辑它。为此,我对用户进行了模糊处理。所以我想知道,是否有可能从模糊代码中创建原始javascript代码。如果您只有模糊代码,并且希望修改/理解它,那么您唯一能做的就是正确缩进它,使其更具可读性,然后从流程开始,自己重命名函数和变量,试图弄清楚每个函数的用途和功能。这是一个耗时且缓慢的过程,可能非常棘手。如果您只有模糊的代

我想知道是否有可能重现模糊的javascript代码(从模糊的javascript代码创建javascript代码)


我的网站上有一些javascript代码。我想阻止其他人编辑它。为此,我对用户进行了模糊处理。所以我想知道,是否有可能从模糊代码中创建原始javascript代码。

如果您只有模糊代码,并且希望修改/理解它,那么您唯一能做的就是正确缩进它,使其更具可读性,然后从流程开始,自己重命名函数和变量,试图弄清楚每个函数的用途和功能。这是一个耗时且缓慢的过程,可能非常棘手。

如果您只有模糊的代码,并且想要修改/理解它,那么您唯一能做的就是正确地缩进代码,使其更具可读性,然后从流程开始,自己重命名函数和变量,试图弄清楚每个函数的用途和功能。这是一个耗时且缓慢的过程,可能会非常棘手。

您可以使用类似于将代码恢复到或多或少可读的结构中的代码格式化程序。但是,不可能从压缩的变量名中重新构建有意义的变量名,因此最终是不可能的。幸好它不是——这就是混淆代码的目的,不是吗

您可以使用类似的代码格式化程序将代码恢复到可读性或多或少的结构中。但是,不可能从压缩的变量名中重新构建有意义的变量名,因此最终是不可能的。幸好它不是——这就是混淆代码的目的,不是吗

将模糊代码转换回运行的有效javascript非常简单,通常只需扩展一系列
eval
调用即可

正如其他人所说,棘手的部分是给变量命名,这样您就可以计算出类似
v7=a4.l2(h8,n1,p9)
的意思。我发现有一点很有用,那就是从“边缘”(不能重命名的库调用)开始,然后尽可能有用地重命名。你经常会发现这些知识会在代码中产生涟漪,从而更容易理解下一层并给它一个合理的名称

例如,如果您有如下代码:

z4 = "a";
o0 = "href"

...

pr = window.document;

...

q8 = pr.getElementByTagName(z4)[0];

...

function rr(o8, em)
{
   return o8.getAttribute(em);
};

...

y5 = rr(q8, o0);
最后一行最初是不可穿透的,但是如果您决定可以将
rr
称为
getNamedAttribute
,将
z4
重命名为
LITERAL\u A
o0
LITERAL HREF
pr
document
,那么我们可以看到
q8
document.get>的结果ElementByTagName(LITERAL_A)[0]
,因此我们可以将其称为
firstAnchor
。然后
q8=getNamedAttribute(firstAnchor,LITERAL_HREF)
,突然间,很明显它是第一个超链接的(字符串)目标


由于此转换需要代表读取器进行推理,因此这不可能是一个自动过程(原因与编译器不会警告您不适当的变量名完全相同)

正如其他人所说,棘手的部分是给变量命名,这样你就可以知道
v7=a4.l2(h8,n1,p9)
是什么意思。我发现从“边缘”(不能重命名的库调用)开始是有帮助的然后尽可能有用地重新命名。您经常会发现这些知识会在代码中产生涟漪,从而更容易理解下一层并给它一个合理的名称

例如,如果您有如下代码:

z4 = "a";
o0 = "href"

...

pr = window.document;

...

q8 = pr.getElementByTagName(z4)[0];

...

function rr(o8, em)
{
   return o8.getAttribute(em);
};

...

y5 = rr(q8, o0);
最后一行最初是不可穿透的,但是如果您决定可以将
rr
称为
getNamedAttribute
,将
z4
重命名为
LITERAL\u A
o0
LITERAL HREF
pr
document
,那么我们可以看到
q8
document.get>的结果ElementByTagName(LITERAL_A)[0]
,因此我们可以将其称为
firstAnchor
。然后
q8=getNamedAttribute(firstAnchor,LITERAL_HREF)
,突然间,很明显它是第一个超链接的(字符串)目标


由于此转换需要代表读取器进行推理,因此这不可能是一个自动过程(原因与编译器不会警告您不适当的变量名完全相同)相关:我的网站中有一些javascript代码。我想混淆它,所以我想知道有没有办法将其转换为原始代码。相关:我的网站中有一些javascript代码。我想混淆它,所以我想知道有没有办法将其转换为原始代码。