C# 防止.net winforms应用程序中的dll注入

C# 防止.net winforms应用程序中的dll注入,c#,.net,winforms,security,dll-injection,C#,.net,Winforms,Security,Dll Injection,我的场景很简单:我的dotnet Windows窗体应用程序安装在客户端计算机上,我不希望有人插入应用程序进程并查看查询、表等。我无法控制客户端的安全性。我需要防止我的申请过程中注入。我将如何实现这一点?需要帮助。如果我正确理解了您的问题,您希望避免有人将代码注入正在客户端计算机上运行的应用程序 答案很简单:你不能。如果是用户的计算机,他通常甚至可以进行调试,从而允许在应用程序运行时对其进行任何更改 有(或多或少有效的)方法可以防止用户篡改应用程序文件,但这也不是真正安全的 如果要防止应用程序被

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

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

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

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


如果要防止应用程序被篡改时对其他系统造成损害,则需要保护服务器端

“我不希望有人注入应用程序进程并查看查询、表等”-什么?为了能够查看您的查询以及所有其他源代码,没有人需要
注入应用程序进程
(无论这意味着什么)。他们只需要一个免费的反编译器。所以不要使用.NET或考虑混淆(例如)。不要把你想保护的代码放在你不控制的机器上。在您的体系结构中引入一个服务器,它提供您需要保护的位,并在您拥有/控制的机器上运行。然后让客户端应用程序与之对话,也考虑已经投入游戏/电影的反盗版措施的工作量,以及盗版仍然存在的事实。是什么让你认为你能解决一个以前成千上万的人都没有解决的问题?@Jurgen Rohr:我考虑过加密,但那不可能解决我的问题。请看我之前的问题:我看过这篇文章,但我不知道如何做到这一点@MuhammadSaadRoshan:这些都是非常先进的技术和概念。数千名高薪程序员正在努力防止应用程序被篡改,但黑客们总是加快步伐。你可以花时间让黑客尝试变得更加困难,这最终会让任何新手摆脱挑战,但不可能完全消除这种风险。通常,这足以使您的应用程序变得如此安全,以至于黑客攻击它比购买合法副本更昂贵。