回答
据我所知,没有免费的工具具有相同的功能集。
在我看来,ProGuard和Stringer Java Obfuscator之间的混合是保护Java和Android应用程序的最好也是最便宜的方法。
N.B.我是Licel LLC的首席执行官。 Stringer Java混淆器的开发者。
可以混淆你的代码,所以,当它编译时,它不容易阅读(程序员)
Proguard是最好的免费和开源混淆器。混淆器会混淆你的类,字段和方法名称,以致难以从反编译的代码中理解。
Zelix Klassmaster是一款商用混淆器,是商业领域最好的之一。此外,它还有一些额外的功能来加密字符串常量,以防止反编译时字符串不可见。还有一些其他的商业工具,如yguard,DashO-pro,Allatori和Smokescreen等。
你不能阻止Java类反编译。但是,你可以让尝试了解代码的人非常困难。这就是所谓的混淆器的任务,就像KlassMaster一样。
请参阅this list for Open Source混淆器。
并请参阅我的问题之一:https://stackoverflow.com/questions/1872170/how-to-protect-intellectual-property-in-java-app
你不能明确阻止它被反编译。毕竟,反编译器只需要读取字节码就可以将其转换为源代码,并且读取字节码也是JVM必须做的。因此,如果您想出一些方法来阻止程序读取字节码,那么JVM将无法运行您的类。
正如其他人指出的那样,如果您真的需要这样做,混淆是一条路,但我会质疑您是否确实需要。另外值得指出的是,如果你使用模糊处理,寻找错误将会困难得多,因为堆栈跟踪也会被混淆。
不幸的是,像JavaScript一样在Java中获取源代码很容易。 了解它是另一回事。 如果你足够努力并通过数十个函数发送日期,每个函数都会做一小部分,然后传递给它,然后混淆它,也许添加一些伪造函数,那么你可能会给那些不够用心的人提供足够的头像,在成功之前将退出。
混淆无疑是保护你的代码的一种方法。此外,还有其他工具可以加密你的类并提供一个定制的类加载器,它可以在运行时解密和加载你的类。这不是一个非常简单的方法,但是有工具可以做到这一点。
我使用Zelix Klassmaster为我的应用程序Visual Watermark大约两年了。自那时以来没有发布新的程序“裂缝”。所以,保护Java应用程序似乎是一个很好的选择。
- 1. 如何防止SWF反编译?
- 2. 如何防止ActionScript代码反编译
- 3. 防止反编译android apk
- 4. Android + JSON防止反编译?
- 5. Android L编译器防止反编译?
- 6. 如何防止swf文件被反编译?
- 7. 如何防止我的应用程序反编译
- 8. 如何防止我的apk从反编译
- 9. 防止小程序的反编译
- 10. 技术来防止/慢反编译
- 11. 防止“this”被重写TypeScript编译
- 12. clojure中的密码字符串:如何防止反编译
- 13. 如何防止反编译或检查python代码?
- 14. 如何防止反编译MySQL用户名和密码?
- 15. 如何保护APK文件以防止反编译
- 16. 如何防止供应商资产每次都被预编译?
- 17. 如何理解我的vb反编译器已经反编译
- 18. 我发送到API的XML文件被编码,如何防止?
- 19. maven防止依赖编译
- 20. 在iOS中反编译的可能性以及如何防止它们
- 21. 如何编辑我的课
- 22. 一堂课的编译工作如何?
- 23. 如何防止apikey被盗?
- 24. 如何防止被“&
- 25. 如何在错误状态被忽略的情况下防止编译?
- 26. 防止对Jar文件进行反编译Android
- 27. 防止翻译文件被Makefile清理
- 28. 我如何防止滚动被阻止滚动的子格
- 29. 如何防止我的计时器应用被iOS终止
- 30. 如何防止我的IP地址被Ebay禁止?
如果你是斯特林格的附属公司,它是进口提到的。 http://stackoverflow.com/faq#promotion – Tom