【问题标题】:C# .NET security how to prevent program to loadC# .NET 安全如何防止程序加载
【发布时间】:2012-02-16 17:33:26
【问题描述】:

我有 2 个没有任何安全功能的 .NET c# 应用程序。我想自己实现一个安全机制,我将在下面描述,如果这可行或有一些我不知道的事情,我想要你的 cmets。

所以,当我需要运行 MyApp 时,我运行 AuthenticationAPP,这个应用程序会要求我输入安全码。

如果代码正确 -> 加载 MyApp;

ELSE -> 不加载应用程序

我想知道是否有一种方法可以绕过这种机制,从而非常容易地将我的authenticaitonAPP转换为uselessAPP,或者这些方法是否难以实现。

感谢您的任何想法/澄清。

【问题讨论】:

  • 什么会阻止我直接启动“MyApp”?为什么不把认证部分放在“MyApp”中,如果代码不正确就直接退出?
  • 因为软件非常多,我有1000个应用程序,我需要一次保护它们。是的,我在简化解释之前说过 2。而不是为每个软件添加它并研究所有这些程序的代码,我想实现这个应用程序解决方案。
  • 这太可怕了! “我想自己实现一个安全机制 [...]”
  • @NoobTom:oleksii 做到了。您的问题很幼稚-您确实应该避免尝试自己实施。获得专业帮助。在问答页面上提问在这种情况下被视为专业帮助。

标签: c# .net security cryptography


【解决方案1】:

存在不同的包装保护解决方案,如 VMProtect、ASProtect、Armadillo 等。

也许他们会适合你的任务。

【讨论】:

    【解决方案2】:

    您需要阻止 .net 运行时加载和执行 MyApp 中的任何程序集。确保您需要为您的程序集指定code permissions

    代码权限必须检查只有AuthentificationAPP才能正确设置的条件。它可以像从 AuthentificationAPP 到 MyApp 的加密调用参数一样简单。

    那么您必须确保您的代码不会被第三方逆向工程。所以你必须研究代码混淆和签名。

    我认为您可以在程序集级别添加代码权限。因此,您可能只需要添加一个具有汇编级代码权限的源文件,并对 1000 个程序中的每一个调用上下文验证,然后重新编译这些程序。

    【讨论】:

      猜你喜欢
      • 2010-12-09
      • 2012-01-19
      • 2020-08-30
      • 2016-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多