【发布时间】: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