有没有办法混淆整个 Cordova/Phonegap 项目?

Is there a way to obfuscate whole Cordova/Phonegap project?

我想知道是否有一个工具可以混淆整个 Cordova/Phonegap 项目? 我的意思是相互关联的整个 js 文件和 html ans css 文件。很难一一做到。

您可以使用 Grunt 来自动执行这样的任务,这个示例 Gruntfile.js 内置了 "uglification",这本质上是混淆。

http://gruntjs.com/sample-gruntfile

您无法明智地混淆一组文件,一次一个。您需要对文件集进行集体混淆,在文件集内始终如一地打乱 names/code,保留它们为从文件集外部调用它们的代码提供的 public 接口,并保留文件集外部代码的接口,该集合访问。

其中最难的部分是知道 "public interface" 是什么。不幸的是,不能仅从代码中分辨出这一点;它取决于应用程序的设计以及它对其使用的服务和提供的服务所做的假设。所以必须先把这个public接口写下来显式化,否则混淆工具就不能工作了。一种方法是指定一组不得混淆的标识符。

鉴于这样的 public 接口规范,我们的 ECMAScriptObfuscator 将机械且可靠地混淆一组文件,包括纯 JavaScript 文件和 HTML嵌入 JavaScript 个片段。

项目混淆是唯一的方法 variable/function 重命名是 您的所有文件(包括 HTML)都保持一致,并且您的代码不 休息。此外,混淆器正确处理也很重要 依赖关系,并以保证的方式执行代码转换 密码没有被破坏。

JScrambler 是恕我直言,最适合这项工作的工具:

  • 它支持一次混淆一个项目中的所有文件(任何类型 项目,包括科尔多瓦)
  • 它特别支持Mobile/HTML5,减少混淆 不影响性能
  • 它有一堆 API 客户端供您使用。我个人使用 npm 版本,但也有 Grunt 版本。
  • 它通常比我知道的所有其他混淆器都要好。

一句关心"uglifiers"。他们中的大多数是普通的缩小器和 优化器。他们在这方面做得很好,但在这方面做得很差 混淆。反转该代码通常很快。

我试过很多在线混淆器。然后我在网上查看了各种 De-Obfuscators 工具,发现它们可以对大部分混淆代码进行逆向工程。

然后我找到了一个名为 JASOB 的 Windows 应用程序的免费试用版(然后买了它)。它可以非常详细地控制重命名所有函数、变量并允许您添加前缀/后缀名称。例如我有 4 个 JavaScript 文件,它们每个都做了一些独特的工作并且没有跨越边界。在一个中,我使用类似 js_ 的东西作为前缀,并将所有函数和变量重命名为 js_Mx21() js_Z1Ax().

您还可以打开多个 JavaScript 文件,它会处理跨文件的重命名,因此如果您使用共享变量,您就不会被烧毁。此应用程序还处理 HTML 和其他语言。在我购买它之前,我通过电子邮件向他们发送了一些问题,因为坦率地说,该网站看起来很旧,但他们回复了,我不得不说我对这个应用程序的强大功能感到非常满意。

http://www.jasob.com/