使用混淆以外的方法阻止反编译

丢失的

每当涉及到Dll安全性时,在线搜索的所有结果都会讨论混淆。现在,我的问题是,除了使我们困惑之外,我们还能做些什么来使我们的组件更安全,更不受工程改造的影响?

我问的原因是,因为我正在准备进行代码安全性演示,并且我知道反混淆会发生,并且如果您让人们下定决心要花时间在重新设计任何代码上,那么他们最终会这样做。故事的寓意是,混淆不是完全可靠的解决方案,它只是使重新设计代码变得困难。但是,如果我们将混淆与其他技术结合在一起,那么它将变得更加困难。

有什么建议?

亚历杭德罗

不幸的是,没有办法确保没有人能够反编译您的代码。根本问题是,任何人只要有足够的知识,耐心和时间,就可以完全坐在用户控制的计算机上分析代码,并且可以从二进制文件中获得清晰易懂的源代码。计算机本身能够解码并运行它,所以人们也是如此。

混淆,加密,打包或其他任何方式只会给潜在的黑客带来问题,但是这些都不是真正不可能绕开的,您只是在提高标准。这不仅发生在.NET上,而且在所有所有编程语言中,反编译始终是可能的,更加困难或容易,并且因为二进制文件位于用户可以阅读的地方。

唯一安全的措施是将二进制文件放在用户甚至无法读取它们的地方,这通常意味着您可以控制的计算机,用户完全无法直接访问它们。Web服务是解决此问题的经典方法,您的网页运行代码,而用户只有一个很小的客户端程序,甚至只有一个浏览器。当然,这对您的部署方式以及他们需要或想要拥有的基础结构具有巨大的影响,但这是为代码安全性付出代价的折衷方案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章