【FAQ】Java混淆器Allatori Java obfuscator常见问题集一:什么是混淆?

翻译|使用教程|编辑:龚雪|2019-01-11 15:20:00.000|阅读 70 次

概述:混淆并不是Java代码的完整加密,混淆从编译代码中移除上下文,而人和逆向工程工具通常使用这些上下文来破译代码的含义。

相关链接:

Allatori Java obfuscator是第二代Java代码混淆器,为你的知识产权提供全方位的保护。

Allatori Java obfuscator最新试用版下载

那么,什么是混淆?

混淆是一种现代技术。它并不是Java代码的完整加密,尽管有一段时间使用过此方法。考虑到是Java代码,混淆似乎更好。在Java开发之初,一些开发人员完全编写了他们的应用程序和库,并提供了特殊的类加载器,它们在执行之前就对代码进行了解密。尽管这些加密类绝对不可读,但这种解决方案需要将特殊密钥放入应用程序中进行解码。在这种情况下,黑客一旦发现密钥,他能很轻易的解密应用程序并保存在硬盘上。使用任何可用的反编译器,他就可以毫不费力地获得源代码,然后就能随意使用你的应用程序和源代码了。

到这里我们遇到了一个很有趣的问题:如何从编译的源代码中获取源代码?这其实很简单。与C++不同,C++的源代码在编译期间变成机器代码,而Java源代码被编译成所谓的“字节码”。该字节码可以很容易地反编译回源代码。 实际上,从C++获得的机器代码也可以被反汇编,但与反汇编代码不同的是,在Java代码中,所有来自源代码的信息都存在。因此,类,方法和变量的所有名称都将被重构,所有字符串文字将保持原始状态。这个反编译的代码与源代码只有一点不同:没有注释,因为它们在编译时被删除了。

很明显,如果存在一种从字节码中消除所有可以被人掌握的信息的方法,那么理解反编译的Java代码就像理解反汇编的代码一样困难。这种方法当然存在,就是混淆。虽然混淆不能保证100%保护代码免受逆向工程(代码可以反编译和研究),但是混淆可以让代码变得更难理解 - 有时甚至不可能理解。 我们要注意的是,混淆不仅是一种保护代码的方法,而且是一种可将逆向工程的过程变得非常耗时的方法,这需要付出很大的努力。目的是阻止所有偶然的入侵者和尽可能多的黑客。

混淆从编译代码中移除上下文,而人和逆向工程工具通常使用这些上下文来破译代码的含义。混淆就是从源代码中删除这些上下文,同时保持原始程序的完整可执行性。

Allatori就完全实现了这一点 - 你的程序将产生与混淆之前相同的结果,但代码逆向工程要困难得多。


想要购买正版授权,或者获取更多Allatori Java obfuscator相关信息的朋友可以点击" 咨询在线客服 "~


标签:代码混淆加密/解密

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果

登录慧都网发表评论登录


暂无评论...

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关厂商
相关产品
Allatori Java obfuscator

Allatori Java obfuscator是第二代Java代码混淆器,为您的知识产权提供全方位的保护。

在线客服 在线QQ 电话咨询
400-700-1020
在线客服系统
live chat