Scripting 脚本引擎&;混淆

Scripting 脚本引擎&;混淆,scripting,obfuscation,Scripting,Obfuscation,我试图混淆一个使用Rhino引擎的项目。它有许多脚本调用类中的方法,我一直很难让它正常工作。 当它混淆时,会更改方法名称,从而使脚本调用不存在的类方法。 问题是,我可以防止这些类被混淆,但是它们有很多,为了安全起见,我宁愿混淆它们。 我有什么办法可以让它工作吗?你在用什么模糊器?看起来你使用的是一个完全混淆的商业软件 模糊处理有两种模式: 1) 完全混淆——这意味着您需要混淆所有源文件。对于需要保持不变的内容(例如,您可以从外部脚本调用它),您需要使用模糊处理软件的“导出”或“外部”或“防止”列

我试图混淆一个使用Rhino引擎的项目。它有许多脚本调用类中的方法,我一直很难让它正常工作。
当它混淆时,会更改方法名称,从而使脚本调用不存在的类方法。
问题是,我可以防止这些类被混淆,但是它们有很多,为了安全起见,我宁愿混淆它们。

我有什么办法可以让它工作吗?

你在用什么模糊器?看起来你使用的是一个完全混淆的商业软件

模糊处理有两种模式:

1) 完全混淆——这意味着您需要混淆所有源文件。对于需要保持不变的内容(例如,您可以从外部脚本调用它),您需要使用模糊处理软件的“导出”或“外部”或“防止”列表。你必须一个接一个地去做。这样做的好处是,如果您输入了所有代码,您就没有任何不想更改的内容(因为根据定义,没有外部代码)

2) 文件混淆——这意味着混淆器只会更改局部变量名和优化语句,而不会更改面向公众的名称。因此,您的“外部脚本”将继续工作。大多数迷你们在这种模式下工作,但混淆值非常有限

您必须在这两种模式中进行选择。它们大致对应于闭包编译器的简单和高级模式


如果您需要混淆代码以防止反向工程,那么您必须使用完全混淆,在这种情况下,您只需做大量的工作以防止更改不需要的名称,或者正如我所说的,插入所有代码。

如果您必须混淆(这是一种迷失的原因,但我离题了),您需要使混淆跨越所有文件,而不仅仅是单个文件请求。换句话说,您需要通过“硬编码”您的函数调用和/或在JS函数范围内创建别名重命名函数的方法来抢占函数调用。别担心,没有人想要您的代码。@duffymo,这很苛刻,也不需要。。。