栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何保护已编译的Java类?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何保护已编译的Java类?

首先,如果你的目标“只” Windows的市场有一个非常简单的防止“的.class来的.java”编译:使用像怡东喷气一种工具,将改变 的.jar 中的
.exe文件

这是万无一失的:如果您使用Excelsior Jet ,则 无法 取回.java文件(对于所有人来说,这么长的时间说:“无法防止反编译
.class 文件”)。当然,攻击者可以启动 SoftIce 并尝试跟踪您的 .exe, 但是比起使用JAD将 .class 反编译为
.java来说 ,这将变得有些棘手,并且当然不允许找回 .java 文件。

现在也许您也以OS X和Linux为目标,或者没有足够的资金来使用Excelsior Jet。

我正在写用Java编写的商业软件。仅当有Internet连接时,该软件才有意义。因此,我们通过在服务器端进行部分计算来“保护”我们的软件,其中包括:我们有几个
.class ,除非它们是从服务器端生成的,否则它们将无法工作,并且我们将它们通过有线发送(而且网上发送的内容 总是
不同的:我们正在服务器端生成唯一的一次性 .class 文件)。

这需要Internet连接,但是如果用户不喜欢我们软件的工作方式,那么他可以自由购买我们竞争对手的劣等产品;)

反编译并不会带来太多好处:您积极地需要破解软件(例如,再现服务器端发生的事情),否则将无法使用它。

使用Proguard 之前, 我们先使用自己的“字符串混淆”
。我们还进行源代码检测(我们也可以完成字节码说明),其中从代码中删除了很多内容(例如我们注释掉的“断言”),并引入了一些随机的“代码流混淆”(该软件可以不同的路径却获得了相同的结果,这确实使软件难以跟踪]。

然后,我们使用Proguard(免费)来展平我们所有的OO层次结构,并混淆已被代码流和字符串混淆的代码。

所以我们的流程是:

  • 字符串混淆
  • 随机码流混淆
  • 保卫者
  • 最终 .jar 取决于 .class (在服务器端(不同)动态生成)。

除此之外,我们还发布了非常定期(自动)的更新,该更新始终确保一定程度地修改了我们的客户端/服务器保护方案(因此,每次发布时,虚伪的攻击者都必须从头开始)。

当然,更容易投入思考: “我无法采取任何措施使攻击者的生活更加艰难,因为JAD仍然可以找到.java文件。”
(这很容易引起争议,并且在以下情况下公然地错了:您使用.class到.exe转换器来保护.class免受反编译)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/486790.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号