javascript - 有没有可以安全地解释混淆的 javascript 字符串的 python 库?

标签 javascript python

我希望能够在 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/

相关文章:

javascript - 根据不正确的输入预测 JavaScript 字符串

javascript - 为动态创建的组件添加事件绑定(bind)

python - 根据 David Beazley 的一些代码了解多重继承和 super

Python 请求未返回与浏览器请求/cURL 相同的 header

python - 如何仅使用循环将 n×m 矩阵转置为新的 m×n 矩阵?

javascript - 如何在 typescript 中构建具有双向对等依赖性的库?

javascript - JavaScript 正则表达式 'ç' 分割 'ç'

javascript - 任何可用于自动同步 .js 文件的工具

python - 将一系列函数应用于某些参数

python - 如何在聚合函数中选择多列?