Zom*_*ies 9 java obfuscation decompiling
我很好奇,因为反编译是多么容易,所以不要考虑晚上用Java编写某些代码.有没有办法用Java编写而不必担心反编译器?我知道任何东西都可以在有足够时间的情况下进行逆向工程,所以我要问的是:Java类混淆器是否足以有效地阻止分解?
Joh*_*lla 12
Java类混淆器是否足以有效地阻止分解?
我会说"不".当我反编译源代码的目的是试图弄清楚某人是怎么做的时候,我已经知道我在寻找什么了.所以我不必理解整个程序 - 只是我当时感兴趣的那一件.由于对方法有足够的困惑并且回调了调用链,所以通常可以在没有过多努力的情况下确定引擎盖下的内容.
如果您的问题是我可以确保没有人可以破解我的代码,答案就是NO ..无论是JAVA还是Visual C++.只要由黑客直接访问由byes或bits组成的软件即可.
原因很简单.
但是你编码了,可以解码.
最好的策略可能是制作Web服务并在那里部署您的秘密逻辑.让其他人使用您的服务,而无需访问您的写作方式.
用Java和其他语言进行混淆只是一种威慑.它只是提高了攻击者的标准.这并不意味着混淆没有价值,它只是不保证.
您想要保护什么以及您定位的市场类型是什么?
在一个充满盗版的市场中保护许可算法的混淆并不意味着那么多.但是,对于中小企业来说,它可能足以削减大多数偶然的海盗.
如果你试图保护知识产权免受竞争,我会看到两个答案.这个想法很难保护.一位能干的工程师在查看代码时会找出逻辑的宝石,并能够重新实现.混淆将使人们更难以获取代码并将其包含在他们自己的产品中.当他们尝试进行更改时,维护成本将继续增长(我认为对于干净反编译的代码也是如此).
我为我公司开发的java产品是混淆的.他们是否保护我们免遭盗窃......我对此表示怀疑.但是,在我们的开发成本的背景下,混淆并不那么昂贵.对于小额价格的一点点保护并不是一个糟糕的权衡.
根据反编译 Java 的个人经验,我想说,混淆会使某人的反编译尝试变得非常非常烦人和困难。最让我恼火的是,最终构建的类文件都被命名为“a.class,b.class,c.class”等等,并且抛出了大量的假值。在代码混淆方面,尝试/catches 在为反编译器搞乱方面做得很好。
一般来说,您反编译的任何内容都将无法编译,但会给您有关程序一般工作原理的提示。
| 归档时间: |
|
| 查看次数: |
4206 次 |
| 最近记录: |