0

我使用phonegap在html,jQuery和css中制作了一个混合移动应用程序。我想混淆或加密我的代码,所以没有人可以对其进行反向工程。我很困惑yui compressernode-uglifier,minifier。他们都只是简化我的js文件,可以很容易地在线美化。 有人能告诉我一个完成这个任务的方法吗? 也请告诉我,如果使用混合移动应用程序防止逆向工程?

https://javascriptobfuscator.com/ 这是很好的混淆? 在此先感谢。

+0

您在客户端JavaScript上做的任何模糊处理都不会有太大帮助 - 代码必须在客户端设备上进行实际解释,所以您对它的任何操作都必须是可逆的。你想要混淆你的代码的理由是什么? –

+0

我的老板给我任务,保护应用程序免受逆向工程。我谷歌,并知道它的程序代码混淆。我使用了jQuery,html的应用程序,即它的混合@JoeClay – Asad

+0

sp的原因是混淆它,以至于没有人能够理解它@JoeClay – Asad

回答

3

正如在评论中所讨论的 - 在解释型语言中进行混淆几乎是不可能的。这是因为浏览器需要能够将您的代码读取为有效的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十六进制代码,并将其存储在一个字符串阵列。

现在,一个真正的程序会比这个要长得多,而且可能很难解码,但我的观点仍然是一样的 - 如果我能弄清楚他们的混淆器如何在我的午休时间用于一个小程序,它几乎不会保护你的代码免受任何严重的反向工程尝试!

+0

谢谢你的时间@Joe Clay :) – Asad

+0

@Asad:没问题! –