使用混合移动应用程序防止逆向工程?

时间:2016-06-09 10:02:20

标签: javascript obfuscation reverse-engineering hybrid-mobile-app

我使用phonegap在html,jQuery和css中创建了一个混合移动应用程序。我想对我的代码进行模糊处理或加密,因此没有人可以对其进行反向工程。我对yui compresser node-uglifierminifier感到困惑。他们都只是缩小我的js文件,可以很容易地在线美化。 有人可以告诉我一种完成这项任务的方法吗? 如果

请告诉我

https://javascriptobfuscator.com/ 这对混淆有好处吗? 提前谢谢。

1 个答案:

答案 0 :(得分: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十六进制代码,并将它们存储为数组中的字符串。

现在,诚然,一个真正的程序会比这更长,并且可能更难解码,但我的观点仍然是相同的 - 如果我能弄清楚他们的混淆器如何在午休时间为一个小程序工作,它& #39;它几乎不会保护你的代码免受任何严重的逆向工程尝试!