我使用phonegap在html、jQuery和css中制作了一个混合的移动应用程序。我想混淆或加密我的代码,这样就没有人可以对它进行反向工程。我对yui compresser
、node-uglifier
和minifier
感到困惑。他们只是缩小了我的js文件,可以很容易地在网上美化。有人能告诉我完成这项任务的方法吗?还请告诉我
https://javascriptobfuscator.com/这有利于混淆吗?提前谢谢。
正如评论中所讨论的那样,用解释语言进行模糊处理几乎是不可能的。这是因为浏览器需要能够将你的代码读取为有效的JavaScript才能运行它——如果浏览器能做到,那么一个足够坚定的人也能做到!任何声称能够模糊JavaScript的服务都只是提供"通过模糊实现安全",即使解码更耗时或更不容易理解。
例如,我看了一下你在问题中链接的网站。这是我的输入代码:
console.log("test");
这是输出:
var _0xdef6=["x74x65x73x74","x6Cx6Fx67"];console[_0xdef6[1]](_0xdef6[0])
乍一看,这看起来很安全,可能足以吓跑一些不那么敬业的逆向工程师。然而,实际上解码起来很简单:
// t e s t l o g
var values = ["x74x65x73x74", "x6Cx6Fx67"];
console[values[1]](values[0]);
突然间,一切都变得非常明显了——该工具从输入代码中获取了值和标识符,将它们转换为ASCII十六进制代码,并将它们作为字符串存储在数组中。
现在,无可否认,一个真正的程序会比这个长得多,而且可能更难解码,但我的观点仍然是一样的——如果我能在午休时间弄清楚他们的模糊器是如何为一个小程序工作的,它很难保护你的代码免受任何严重的反向工程尝试!