我想知道是否有工具来混淆整个Cordova / Phonegap项目? 我的意思是整个js文件,它们彼此相关,并且与html和css文件相关。我很难一个接一个地去做。
答案 0 :(得分:6)
项目混淆是变量/函数重命名的唯一方法 与您的所有文件(包括HTML)保持一致,而您的代码则不然 打破。此外,混淆器正确处理也很重要 依赖关系,并以保证的方式执行代码转换 代码没有被破坏。
JScrambler是恕我直言的最佳工具:
关注“uglifiers”的一句话。他们中的大多数都是简单的缩放器 优化器。他们做得很好,但非常糟糕 混淆。反转代码通常很快。
答案 1 :(得分:0)
你可以使用Grunt自动执行这样的任务,这个例子Gruntfile.js内置了“uglification”,这实际上是混淆。
答案 2 :(得分:0)
您无法对一组文件进行合理的混淆,一次一个。您需要集体模糊文件集,在集合中一致地加扰名称/代码,保留它们提供给从集合外部调用它们的代码的公共接口,并保留集合外部代码的接口,集合访问。 / p>
这很困难的部分是了解"公共界面"是。不幸的是,人们无法仅从代码中分辨出来;它取决于应用程序的设计及其对所使用服务及其提供的服务的假设。因此,首先必须通过写下来公开显示此公共接口,否则混淆工具将无法工作。一种方法是指定一组不得混淆的标识符。
鉴于这样的公共接口规范,我们的ECMAScriptObfuscator将机械可靠地模糊一组文件,包括纯JavaScript文件和带有嵌入式JavaScript片段的HTML。
答案 3 :(得分:0)
我尝试了许多在线混淆器。然后我在线查看了各种De-Obfuscators工具,发现他们可以对大部分混淆代码进行逆向工程。
然后我找到了一个名为JASOB的Windows应用程序的免费试用版(然后买了它)。它提供了非常详细的控制,可以重命名所有函数,变量并允许您使用前缀/后缀名称。例如,我有4个JavaScript文件,它们各自做了一些独特的工作,并没有跨越边界。在一个中,我使用类似js_的东西作为前缀,并将所有函数和变量重命名为js_Mx21()js_Z1Ax()。
您还可以打开多个JavaScript文件,它将处理跨文件的重命名,因此如果您使用的是共享变量,则不会被烧毁。此应用程序还处理HTML和其他语言。在我买它之前,我给他们发了一些问题,因为坦率地说,网站看起来很旧,但他们回答说,我不得不说我对这个应用程序的强大感到非常满意。