【问题标题】:Prevent Assembly Reflector and its Access to other client/User防止装配反射器及其对其他客户端/用户的访问
【发布时间】:2014-05-01 04:45:03
【问题描述】:

我在 Windows Presentation Foundation 中创建了项目,该项目使用我创建的一些程序集并在其他项目中使用。但是现在我不希望其他人使用它并进行逆向工程(“Assembly to code”)。

我开始了解大会签署。我也曾使用 ant 尝试签名,但我可以轻松地在 .Net 反射器工具中打开程序集代码。

所以请指引我正确的方向。

【问题讨论】:

  • 不可能。签名也完全不像你认为的那样。如果你给他们你的程序,他们可以逆转它。
  • 那么我应该怎么做才能防止其他人访问dll
  • 不要分发它。重新考虑为什么要阻止它的使用。
  • 顺便说一句,“不要分发它”实际上可能是一个可行的选择。例如;您可以使用“哑”客户端将代码作为 Web 服务运行。

标签: c# wpf dll ant


【解决方案1】:

这一切都取决于你想做多少工作,以及你想做多努力。

如果您只想阻止人们快速反编译您的程序集,您可以压缩和/或加密 DLL 本身,然后为程序集编写加载程序,将其放入内存、解码和/或解压缩并加载内存中的程序集。如果您愿意,可以将压缩/加密的数据作为资源存储在另一个处理解包的程序集中,尽管这样更容易找到执行解包的代码。

这只会防止对您的代码进行随意检查。它不会大大减慢坚定的逆向工程尝试。归根结底,您无法阻止熟练而坚定的逆向工程尝试。

【讨论】:

  • 我不知道该怎么做。如果给出任何示例,那么将尝试。
  • 这当然是完全正确的。您指出了一个不错的选择,并明确表示这是一个重大限制。 @SagarPatel 至于尝试实现这样的事情,我认为你最好不要这样做。我以前做过一次,这是对我的要求。这让人头疼,更糟糕的是,它并没有解决“问题”。问题是:机器必须能够执行代码。如果机器可以执行它,最终它可以被逆向工程。
  • @AndrewBarber 我曾经做过一次智力练习。大多数情况下,我使用该技术将小型第三方程序集捆绑为资源,而不是试图隐藏我正在做的事情。我只是讨厌部署 1 个文件时部署 3 个文件:)
  • @Corey 哦,是的;我绝对同意这在某些情况下可能是有用的。我不得不在一个非常非常奇怪的情况下嵌入这样的外部程序集,我只能将单个文件部署到目标系统。感谢您唤起痛苦的回忆;)
猜你喜欢
  • 2022-01-01
  • 2018-04-27
  • 2016-12-07
  • 2015-10-23
  • 2013-12-04
  • 2020-05-21
  • 1970-01-01
  • 2013-10-21
  • 2015-09-10
相关资源
最近更新 更多