我有一个.net项目,它有很多模块,也有一些.jar
文件。我还为安装创建了一个.msi
设置。
这个应用程序实际上是我们公司的IP(内部产品),它有时会在客户端环境中安装一段时间。
我们希望确保产品代码的安全,以便没有人知道它是如何工作的,因为我们拥有第三方许可(safenet),但问题是他们没有提供对.jar
中存在的所有方法的加密(有大约1000种方法)。
只是我想知道有没有什么办法来保护我们的应用程序代码免去编译?还是有什么办法来混淆代码,以便反编译不起作用?
编辑:或者是否有任何工具(授权工具)提供这种设施?
在此先感谢。安装文件的加密/混淆(.dll,.jar)
0
A
回答
1
对不起,但是隐藏程序的工作方式是不可能的。如果机器可以运行它,它可以被反编译。例如在Java中混淆的最常用的方法是:
- 名称混淆
- 流混淆
- 不透明谓词
在这些事情字节码级别没有如果能阻止一个人,他们致力于弄清楚你的产品是如何工作的。命名在字节码级无关紧要,可以使用自动化工具对流混淆进行修补,同样适用于不透明谓词。大部分情况同样适用于.Net框架。
但是,这些功能确实会阻止您的平均脚本小子。所以虽然他们不完美,但他们是值得的。如果你想要一个免费的混淆替代方案,你可以查看Proguard,尽管它只提供名称混淆。具有流动和不透明特征的混淆器通常是昂贵的。
2
我为复制保护公司工作。我会尽我所能,不要因为我的工作而受到偏见。
是的,保护是可能的,如果你愿意,你可以使黑客非常困难。将不可能打破你的保护?不,所有的代码都可以被破坏!但是,越好的保护,越难破解,越少的黑客将他们的手放在你的产品上。
有几种方法可以停止调试器。最简单的是测试代码是否以正常的速度处理,如果不是的话,那是因为有人正在调试你的代码,并用步骤执行代码。然后你的代码应该优雅地终止程序来停止你的软件的反编译。
我的一个同事写了这篇文章复制保护的基本知识:All About Copy Protection 查找“调试补漏”,如果你不想把它读完了:)
相关问题
- 1. 混淆文件的加密
- 2. 加密/混淆文件名
- 3. 不使用混淆器的DLL加密
- 4. Proguard的混淆JAR文件
- 5. Android,混淆jar文件库?
- 6. 密码文件混淆
- 7. 与加密混淆
- 8. WSPBuilder混淆dll
- 9. 混淆.Net Dll
- 10. PIP安装混淆Python 3.5
- 11. 与beautifulsoup4安装混淆
- 12. 安装PHP memcache混淆
- 13. 如何去混淆jar文件
- 14. 混淆加密文件和文件路径上的多个
- 15. Maven安装文件混淆:“无法找到目标'安装文件'”
- 16. 安装JAR文件
- 17. 引用混淆DLL
- 18. 混淆.NET EXE/DLL的
- 19. 如何将混淆的jar文件包含到war文件中
- 20. 与我的PHP安装混淆
- 21. 视觉工作室安装项目与两个安装文件混淆?
- 22. 用不同的加密器混淆可执行文件
- 23. 手动安装jar文件
- 24. RDBMS密钥混淆
- 25. 混淆Crypto.JS密码?
- 26. XML密码混淆
- 27. 混淆或加密WPF的App.config
- 28. 混淆Windows Phone 8 dll
- 29. .h,.dll和.lib混淆
- 30. 提升安装程序混淆