我使用phonegap在html,jQuery和CSS中制作了一个混合移动应用程序。我想混淆或加密我的代码,所以没有人可以对其进行反向工程。我对yui compresser
node-uglifier
和minifier
感到困惑。它们都只是缩小了我的js文件,可以轻松地对其进行美化。
有人可以告诉我一种完成此任务的方法吗?
还请告诉我
https://javascriptobfuscator.com/
这对混淆有好处吗?
提前致谢。
最佳答案
正如评论中所讨论的那样,以解释性语言进行混淆几乎是不可能的。这是因为浏览器需要能够将您的代码读取为有效的JavaScript才能运行它-如果浏览器可以做到,那么足够有决心的人也可以!任何声称能够混淆JavaScript的服务都只是在提供“通过混淆来保证安全性”,即,使其解码变得更加耗时或难以理解。
例如,我看了the site you linked in your question。这是我的输入代码:
console.log("test");
这是输出:
var _0xdef6=["\x74\x65\x73\x74","\x6C\x6F\x67"];console[_0xdef6[1]](_0xdef6[0])
乍一看,这看起来非常安全,并且足以吓跑一些不那么专心的反向工程师。但是,解码实际上非常简单:
// t e s t l o g
var values = ["\x74\x65\x73\x74", "\x6C\x6F\x67"];
console[values[1]](values[0]);
突然,这一切都很明显-该工具从输入代码中获取了值和标识符,将它们转换为ASCII十六进制代码,并将它们作为字符串存储在数组中。
现在,诚然,一个真正的程序要比这更长,并且可能更难解码,但是我的观点仍然是一样的-如果我能弄清楚他们的混淆器在午休时间如何用于一个小程序,那么几乎不会保护您的代码免受任何严重的逆向工程尝试!