我想知道是否有一种工具可以混淆整个 Cordova/Phonegap 项目? 我指的是所有相关的 js 文件以及 html 和 css 文件。一个一个地混淆它们非常困难。
我想知道是否有一种工具可以混淆整个 Cordova/Phonegap 项目? 我指的是所有相关的 js 文件以及 html 和 css 文件。一个一个地混淆它们非常困难。
项目混淆是唯一的方法,可以使变量/函数重命名在所有文件中保持一致性,包括HTML文件,并确保您的代码不会出错。此外,重要的是混淆器正确处理依赖项并以保证不破坏代码的方式执行代码转换。
JScrambler 是我认为最好的工具:
关于“丑化器”的注意事项。它们中的大多数只是普通的压缩和优化工具。它们在这方面表现良好,但在混淆方面表现很差。通常很容易将该代码还原回去。
你可以使用Grunt来自动化这样的任务,这个例子的Gruntfile.js已经内置了“uglification”,它本质上是混淆。
你不能单独混淆一组文件。需要对文件集合进行混淆,对其中的名称/代码进行一致的混淆,同时保留它们向外部调用代码提供的公共接口,并保留集合访问的外部代码接口。
这其中最困难的部分是知道“公共接口”是什么。不幸的是,仅凭代码本身无法确定这一点;它由应用程序的设计和其对所使用服务以及所提供服务的假设来确定。因此,必须首先通过编写公共接口说明书来明确此公共接口,否则混淆工具将无法正常工作。一种方法是指定一组标识符,这些标识符不得被混淆。
在给定这样的公共接口规范的情况下,我们的ECMAScriptObfuscator可以机械化、可靠地混淆一组文件,包括纯JavaScript文件和嵌入JavaScript片段的HTML文件。
我尝试了许多在线混淆器。然后我查看了各种在线反混淆工具,发现它们可以反向工程大部分混淆代码。
然后我找到了一个名为JASOB的Windows应用程序的免费试用版(然后购买了它)。它提供非常详细的控制,可以重命名所有函数、变量,并允许您添加前缀/后缀名称。例如,我有4个JavaScript文件,它们每个都执行一些独特的工作,不会相互交叉。在其中一个文件中,我使用类似js_的前缀,它将所有函数和变量重命名为类似js_Mx21() js_Z1Ax()的名称。
您还可以打开多个JavaScript文件,它将处理跨文件的重命名,因此如果您正在使用共享变量,则不会出现问题。该应用程序还处理HTML和其他语言。在购买之前,我给他们发送了一些问题,因为老实说,网站看起来很陈旧,但他们回复了我,我必须说我非常满意这个应用程序的功能。