彩票走势图

第二代Java代码混淆器Allatori Java obfuscator常见问题(一)

翻译|使用教程|编辑:杨鹏连|2020-08-03 14:01:09.273|阅读 1226 次

概述:本文主要介绍Allatori Java obfuscator在使用过程中的一些常见问题。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

Allatori Java obfuscator是第二代Java代码混淆器,为您的知识产权提供全方位的保护。大部分第二代混淆器都具有保护功能。Allatori除了保护功能之外,还附加了一系列的功能,几乎可以抵御一切的代码攻击。同时,Allatori可以让您的程序体积更小,速度更快,效果简直让人难以置信。

试用下载 商城购买

什么是混淆?

混淆是现实笼罩的技术。尽管有一段时间使用此方法,但这不是对Java代码的完整加密。考虑到Java,混淆似乎更好。如上所述,在Java开发初期,一些开发人员对应用程序和库进行了完全编码,并与他们一起提供了特殊的类加载器,该类加载器在执行代码之前就将其解密。尽管这些加密的类绝对不可读,但是这种解决方案需要放置一个特殊的密钥以解码到应用程序中。在这种情况下,如果黑客一次发现了密钥,那么解密该应用程序并将其保存在硬盘上就非常容易。然后在任何可用的反编译器的帮助下,他都可以毫不费力地获取源代码,

在这里,我们遇到了一个最有趣的问题:如何从已编译的代码中获取源代码?事实证明这很简单。与C ++的源代码在编译过程中变成机器代码不同,Java源代码被编译为所谓的“字节码”。该字节码可以很容易地反编译为源代码。实际上,从C ++获取的机器代码也可以反汇编,但是与反汇编的代码不同,在反汇编的代码中,不会有任何面向人的字符串,而在Java代码中,将显示源中的所有信息。因此,将重新构造所有类,方法和变量的名称,所有字符串文字都将处于其原始状态。而且,这种反编译的代码与源代码只有一点不同:不会有任何注释,因为它们在编译过程中被消除了。

显而易见的是,如果存在一种从字节码中消除人类可以掌握的所有信息的方法,那么理解反编译的Java代码与理解反汇编的Java代码一样困难。好吧,有一种方法-令人困惑。尽管混淆不能保证您的代码不受逆向工程的100%保护(但是可以对代码进行反编译和研究),但是理解混淆后的代码变得更加困难-有时甚至是不可能。实际上,必须理解混淆不仅是保护代码的方法,而且是将逆向工程过程转换为耗时的操作的方法,需要大量的努力。目标是阻止所有临时入侵者和尽可能多的严重黑客。

模糊处理从编译后的代码中删除了上下文,而人类(和逆向工程工具)将使用该上下文来解密代码的含义。诀窍是从恶意中删除此上下文,同时保持与原始程序的完整执行完整性。Allatori完全完成了这一工作-您的程序将产生与混淆之前相同的结果,但是代码的反向工程难度更大。 
回到顶部

什么是名称混淆?

Allatori的名称混淆机制将有意义的类,字段和方法名称更改为无意义的字符串。尽管Allatori是第二代Java混淆器,但它也执行出色的名称混淆。与其他混淆器不同,它经过设计可处理任何类型的依赖关系和继承方案。

Allatori生成的新名称非常短,因此可以减小字节码的大小。在名称混淆的字节码中,包,类,字段和方法的名称已重命名,并且原始名称永远无法恢复。

不幸的是,控制流程仍然清晰可见。这就是为什么您需要Allatori的流程混淆的原因。 

什么是流混淆?

作为第二代Java混淆器的Allatori除了执行名称混淆之外,还执行流混淆。它对字节码进行了微小的更改,使控制流变得模糊,而无需更改代码在运行时的功能。通常,更改选择和循环构造,以使它们不再具有与Java直接等效的源代码。流混淆的字节码通常会迫使反编译器在其产生的源代码中插入一系列标签和非法的“ goto”语句。有时,反编译器错误会进一步掩盖源代码。 

什么是字符串加密?

当竞争者或黑客反编译受混淆的应用程序时,他们将使用任何线索找到他们感兴趣的类别。嵌入在您的应用程序中的字符串文字提供了重要的见解。这些文字可能是: 

1.对话框中的标签或其他GUI组件 

2.错误消息

3.异常消息的文本。

对代码中的字符串的简单搜索将在jiff中显示出它的确切使用位置,这意味着它将本地化必要的代码段,从而使黑客更容易理解算法。您的程序。字符串文字可以成为探索整个应用程序的起点。

Allatori的字符串加密技术对存储在类文件常量池中的字符串文字进行加密。在这种情况下,应用程序反编译后的字符串搜索将不会给黑客带来任何好处。Allatori将代码片段添加到您的类中,以便您的字符串在运行时被解密,这意味着从外部看,一切将照常进行。 

为什么要混淆我的Java代码?

用Java编写的程序易于逆向工程。在任何情况下都不能责怪Java设计。这只是现代和中间编译语言的本质。Java使用表达性文件语法来交付可执行代码:字节码。与二进制机器代码相比,中间文件具有更高的级别,中间文件充满了可以立即观察并最终可以理解的标识符和算法。

因此,配备Java反编译器的每个人都可以看一下您的代码,并揭示其中保留的所有秘密。诸如软件许可代码,专有业务逻辑或复制保护机制之类的应用程序部分对于黑客来说似乎非常有趣。研究了您的代码后,他可以轻松地将其用于自己的目的,而这通常与您的目的不符。例如,在研究了安全系统并发现漏洞之后,黑客可以创建特定的利用程序。即使是最琐碎的目标,例如窃取您独特的想法和算法,以及对应用程序进行破解等,也确实发生了。这些使用代码的方法几乎无法取悦您。提到的所有这些内容似乎足以让您考虑一会儿并做出正确的选择。如果您之前有疑问, 

什么是软件水印?

软件水印可用于将客户标识或版权信息隐藏到软件应用程序中,类似于使用隐写技术将其隐藏在歌曲,电影和图像等其他数字内容中的方式。水印可用于识别软件的所有者或跟踪盗版副本的来源。 


想要购买Allatori Java obfuscator正版授权请点击【商城购买】,想要了解更多产品信息请点击

Docebo LMS的更可行替代方案– iSpring Learn


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP