提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:黄竹雯|2019-01-11 15:20:00.000|阅读 648 次
概述:混淆并不是Java代码的完整加密,混淆从编译代码中移除上下文,而人和逆向工程工具通常使用这些上下文来破译代码的含义。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
Allatori Java obfuscator是第二代Java代码混淆器,为你的知识产权提供全方位的保护。
【Allatori Java obfuscator最新试用版下载】
那么,什么是混淆?
混淆是一种现代技术。它并不是Java代码的完整加密,尽管有一段时间使用过此方法。考虑到是Java代码,混淆似乎更好。在Java开发之初,一些开发人员完全编写了他们的应用程序和库,并提供了特殊的类加载器,它们在执行之前就对代码进行了解密。尽管这些加密类绝对不可读,但这种解决方案需要将特殊密钥放入应用程序中进行解码。在这种情况下,黑客一旦发现密钥,他能很轻易的解密应用程序并保存在硬盘上。使用任何可用的反编译器,他就可以毫不费力地获得源代码,然后就能随意使用你的应用程序和源代码了。
到这里我们遇到了一个很有趣的问题:如何从编译的源代码中获取源代码?这其实很简单。与C++不同,C++的源代码在编译期间变成机器代码,而Java源代码被编译成所谓的“字节码”。该字节码可以很容易地反编译回源代码。 实际上,从C++获得的机器代码也可以被反汇编,但与反汇编代码不同的是,在Java代码中,所有来自源代码的信息都存在。因此,类,方法和变量的所有名称都将被重构,所有字符串文字将保持原始状态。这个反编译的代码与源代码只有一点不同:没有注释,因为它们在编译时被删除了。
很明显,如果存在一种从字节码中消除所有可以被人掌握的信息的方法,那么理解反编译的Java代码就像理解反汇编的代码一样困难。这种方法当然存在,就是混淆。虽然混淆不能保证100%保护代码免受逆向工程(代码可以反编译和研究),但是混淆可以让代码变得更难理解 - 有时甚至不可能理解。 我们要注意的是,混淆不仅是一种保护代码的方法,而且是一种可将逆向工程的过程变得非常耗时的方法,这需要付出很大的努力。目的是阻止所有偶然的入侵者和尽可能多的黑客。
混淆从编译代码中移除上下文,而人和逆向工程工具通常使用这些上下文来破译代码的含义。混淆就是从源代码中删除这些上下文,同时保持原始程序的完整可执行性。
Allatori就完全实现了这一点 - 你的程序将产生与混淆之前相同的结果,但代码逆向工程要困难得多。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
Allatori Java obfuscator是第二代Java代码混淆器,为您的知识产权提供全方位的保护。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢