使用混合移动应用程序防止逆向工程?
我使用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十六进制代码,并将其存储在一个字符串阵列。
现在,一个真正的程序会比这个要长得多,而且可能很难解码,但我的观点仍然是一样的 - 如果我能弄清楚他们的混淆器如何在我的午休时间用于一个小程序,它几乎不会保护你的代码免受任何严重的反向工程尝试!
谢谢你的时间@Joe Clay :) – Asad
@Asad:没问题! –
您在客户端JavaScript上做的任何模糊处理都不会有太大帮助 - 代码必须在客户端设备上进行实际解释,所以您对它的任何操作都必须是可逆的。你想要混淆你的代码的理由是什么? –
我的老板给我任务,保护应用程序免受逆向工程。我谷歌,并知道它的程序代码混淆。我使用了jQuery,html的应用程序,即它的混合@JoeClay – Asad
sp的原因是混淆它,以至于没有人能够理解它@JoeClay – Asad