2

我希望能够在 javascript 代码可能是恶意的地方对 python 中的 javascript 字符串进行去混淆处理。有没有可用的库来做到这一点?

我开始建立自己的,但我很快意识到这是一个比我第一次意识到的更大的事业。为了正确地做到这一点,我不仅必须安全地将所有 javascript 字符串函数映射到 python 函数(包括正则表达式),我还必须处理数组、循环、与循环相关的变量等。

编辑:这是我的意思的一个例子

str1 = 'sdfhsjkdfhIdhgjkdfNgjkdfhgjkdfPdhfgkdfjUhdfjkghdfkgjTdfhgjkdfgf';
str2 = str1.replace(/[a-z]/g, '');

str2 应该等于“输入”

这是另一个例子:

arr = ['-', 'M', '1', 'a', 'a', 'l', 's', 'i', 'r', 'c', 'f', 'i', '#', 'o', '[', 'u', '$', 's'];
str = ""
for (i=1; i<arr.length; i+=2) {
  str = str + arr[i];
}

str 应该是“恶意的”

4

1 回答 1

3

一个不错的选择是JSBeautifier,它可以处理大多数免费的混淆器(实际上,我知道的任何混淆器)。Javascript有一个eval使用 Rhino 的选项,但默认情况下它被列入黑名单(不安全)。

披露:我与人合着了 JSBeautifier,特别是我编写了 Python 反混淆架构。顺便说一句,如果你发现一些 JSBeautifier 无法处理的 JS,请考虑在项目 bugtracker 上打开一个问题 :)

于 2013-05-18T15:50:15.500 回答