我希望能够在 python 中对 javascript 字符串进行反混淆,其中 javascript 代码可能是恶意的。有没有可用的库可以做到这一点?
我开始构建自己的项目,但我很快意识到这是一项比我最初意识到的更大的任务。为了正确地做到这一点,我不仅必须安全地将所有 javascript 字符串函数映射到 python 函数(包括正则表达式),还必须处理数组、循环、与循环相关的变量等。
编辑:这是我的意思的一个例子
str1 = 'sdfhsjkdfhIdhgjkdfNgjkdfhgjkdfPdhfgkdfjUhdfjkghdfkgjTdfhgjkdfgf';
str2 = str1.replace(/[a-z]/g, '');
str2 应等于“INPUT”
这是另一个例子:
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 应为“恶意”
最佳答案
一个不错的选择是 JSBeautifier ,它可以处理大多数免费的混淆器(实际上,我知道的任何混淆器)。有一个选项可以使用 Rhino 来评估
Javascript,但默认情况下它已被列入黑名单(不安全)。
披露:我是 JSBeautifier 的合著者,特别是我编写了 Python 反混淆架构。顺便说一句,如果您发现 JSBeautifier 无法处理某些 JS,请考虑在项目 bugtracker 上提出问题:)
关于javascript - 有没有可以安全地解释混淆的 javascript 字符串的 python 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16626086/