【问题标题】:Load C# app through C++ "Loader"?通过 C++“加载器”加载 C# 应用程序?
【发布时间】:2012-10-22 12:55:33
【问题描述】:

是否可以用 C++ 编写一个小的“加载器”来加载 C# 应用程序?

这个想法是让在 Reflector 中无法看到代码。

检查以下应用。该应用程序是用 C# 编写的,但不知何故已经构建了一个加载器,因此无法在 Reflector 中看到实际的源代码。

https://www.dropbox.com/sh/b0enylff5wptd7s/Ingphu4bXK/AccountMaster.0mmo.net.rar

编辑:我不确定应用是否可以安全运行!

但非常有趣的是,当您尝试将其放入 Reflector 时会发生什么!

当我看到它时,我认为这可能是一种让“新手”破解者远离的聪明方法。为 C# 应用程序增加更多安全性的好方法。这就是为什么我想知道这是怎么做到的:)

【问题讨论】:

  • 通过商业混淆器运行它怎么样?您基本上是以“小型'加载器'”的形式在这里要求不可逆的 DRM。如果这么容易,就不会有盗版了。除非您将操作码直接解密到核心,否则您无法使任何事情变得不可能——您只能使事情变得更不方便、更耗时且更难破解。
  • 有趣的是,Reflector 在您尝试添加它时会说“不是 .NET...”。但我 100% 确定应用程序是用 .NET 编写的。只是想知道如何他们做到了
  • 这不就是 ngen 吗?它是.net 的编译器。它需要您的程序并从中制作一个本机应用程序。如果您愿意,它会提前执行 JIT。
  • 如果您在该下载中指的是“Update.exe”,他们使用Dotfuscator 来混淆该代码。我通过使用dotPeek 找到了这个。混淆不会让你完全隐藏代码,但 C++ 应用程序也不会。如果有人想看你的源代码,他们会想办法的。
  • 我认为这个问题更适合security.stackexchange.com

标签: c# c++


【解决方案1】:

C++ 前端将无济于事,您所要做的就是加载与该前端加载器加载的相同的东西。几乎唯一要做的就是使用混淆器。 VS 附带了一个名为 dotfuscator community edition 的软件,可以帮助您入门。

【讨论】:

    【解决方案2】:

    是的,您可以从 C++(或任何其他语言应用程序)启动 C# 应用程序。只需从您的 C++ 应用程序启动一个单独的进程。有很多方法可以做到这一点。我建议在您喜欢的搜索引擎中搜索“创建流程”。

    这是堆栈溢出时的another post

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 2011-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多