【问题标题】:Preventing dll injection in .net winforms application [closed]防止.net winforms应用程序中的dll注入[关闭]
【发布时间】:2018-09-17 06:10:48
【问题描述】:

我的场景很简单:我的 dotnet Windows 窗体应用程序安装在客户端计算机上,我不希望有人注入应用程序进程并查看查询、表等。我无法控制客户端的安全性。我需要防止我的应用程序进程注入。我将如何实现这一目标?需要帮助。

【问题讨论】:

  • _"我不希望有人注入应用程序进程并查看查询、表等。" - 什么?
  • 为了能够查看您的查询以及所有其他源代码,没有人需要inject application process(无论这意味着什么)。他们只需要一个免费的反编译器。所以要么不要使用.net,要么考虑混淆(比如ssware.com/articles/…)。
  • 不要将您想要保护的代码放在您无法控制的机器上。在你的架构中引入一个服务器,它会执行你需要保护的部分,并在你拥有/控制的机器上运行它。然后让客户端应用程序与之对话。
  • 还要考虑在游戏/电影的反盗版措施中投入的大量工作以及盗版仍然存在的事实。是什么让您认为自己能够解决之前成千上万人无法解决的问题?
  • @Jurgen Rohr:我考虑过加密,但这不可能解决我的问题。请看我之前的问题:stackoverflow.com/questions/52269454/…

标签: c# .net winforms security dll-injection


【解决方案1】:

如果我正确理解您的问题,您希望避免有人将代码注入您在客户端计算机上运行的应用程序中。

简单的答案:你不能。如果是用户计算机,他通常甚至可以进行调试,这允许在您的应用程序运行时对其进行任何更改。

有一些(或多或少有效的)方法可以防止用户篡改应用程序文件,但这也不是很安全。

如果您想防止您的应用程序在被篡改时对其他系统造成损害,您需要保护服务器端的安全。

【讨论】:

  • 我看过这篇文章,但我不知道如何实现这个stackoverflow.com/questions/869320/…
  • @MuhammadSaadRoshan:这些都是非常先进的技术和概念。成千上万的高薪程序员正在努力防止应用程序被篡改,但黑客总是在加快步伐。您可以花时间让黑客尝试变得更加困难,这最终将使任何新手摆脱挑战,但不可能完全消除这种风险。通常,只要让您的应用程序如此安全,以致破解它比购买合法副本更昂贵。
猜你喜欢
  • 1970-01-01
  • 2011-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-06
  • 1970-01-01
  • 2016-10-13
  • 1970-01-01
相关资源
最近更新 更多