【教程】Java混淆器 Allatori Java obfuscator常见问题(二):什么是名称混淆和流混淆?

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

本篇文章与大家分享什么是名称混淆、流混淆和字符串加密。

一、什么是Name Obfuscation(名称混淆)?

Allatori的名称混淆机制将有意义的类,字段和方法名称更改为无意义的字符串。虽然Allatori是第二代Java混淆器,但它也可以很好的执行名称混淆。与其他混淆器不同,Allatori被设计为处理任何类型的依赖和继承方案。

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

但不幸的是,控制流程仍然清晰可见。这就是为什么你需要Allatori的Flow Obfuscation(流混淆)。

二、什么是Flow Obfuscation(流混淆)?

作为第二代Java混淆器的Allatori除了名称混淆之外还执行流混淆。它对字节代码进行微小的更改,这些字节代码模糊了控制流,但没有改变代码在运行时所做的事。通常,选择和循环结构会发生更改,让它们不再具有等效的、直接的Java源代码。 流混淆的字节码通常迫使反编译器将一系列标签和非法'goto'语句插入到它们产生的源代码中。源代码有时会被反编译器的错误进一步掩盖。

三、什么是String Encryption(字符串加密)?

当竞争对手或黑客反编译混淆的应用程序时,他们会使用任何线索来寻找他们感兴趣的部分。嵌入在应用程序中的字符串文字会提供很重要的信息。这些文字可能是:

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

2.错误消息文本;

3.你的异常消息文本。

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

Allatori的字符串加密技术会加密存储在类文件的常量池中的字符串文字。在这种情况下,应用程序反编译后的字符串搜索不会给黑客任何信息。Allatori将代码片段添加到你的类中,以便你的字符串在运行时被解密,这也意味着外部的一切都与往常一样。

猜你喜欢

转载自blog.csdn.net/weixin_43746001/article/details/86494717