-4

我将我的程序/DLL 编译为 NET 2 代码,因为我知道如果此人使用 (.NET) 反编译器,获得可执行文件的每个人也可以自动访问我的源代码。所以我问自己如何阻止别人看到我在 .NET 中的所有代码,不仅因为我为我的简单方法和我的初学者编码风格感到羞耻 :)

我发现在如何保护 .NET 可执行文件的源代码方面没有任何用处。我找到了“IL Protector”,它承诺保护任何 DLL/EXE 32/64 位。我安装了它,添加了我的 DLL,用它重新编译了我的 DLL,它出现了一个绿色标记,表明我的程序集现在应该受到保护。直到这里它才起作用。

然后我将受保护的 DLL 添加到正在使用它的可执行文件的文件夹中,但从现在开始,我得到了一个关于“模块”或类似“protect64.dll”的内部异常。我无法解决这个问题,也不明白需要什么。我将我的 NET 2.0 项目升级到了 Net 3.5,但没有帮助。我删除了我的 DLL 的引用并将其添加到项目中,并将项目编译为新的,但即使编译的 EXE 继续向我抛出内部异常。在这个 DLL 中,我有一个从 EXE 调用的简单方法。在不受保护的 DLL 版本中,它在受保护的版本中工作,我不断收到内部异常,Visual Studio 的帮助谈到了“方法<>”,不知道这意味着什么。

我尝试了另一个免费的保护程序(混淆器或类似的东西)。使用起来很糟糕,结果什么也没有。反编译器在一秒钟内用我的方法反编译了受保护的 DLL,并创建了与我的原始文件夹相同的项目文件夹。

那么,我将如何有效、轻松且免费地保护我的代码不被他人看到呢?一步一步的指南将比没有解释的下载链接更受欢迎。我知道有很多商业软件,但我做的是私人的,所以我为什么要付费。微软必须像编译器分支(Borland、Embarcadero)中的其他所有人一样确保“Visual Studio 编译器”的安全。

4

1 回答 1

2

正确答案的 tl;dr 版本是:您无法阻止某人查看您的代码。即使是混淆的 PE 二进制文件,人们仍然可以使用反编译和分析(使用 IDA、softice 等)。这是一个通常甚至不是真正需要的“难题”。如果您有一个用户不应该看到“源”的步骤,则可能为该步骤打开一个 Web API 并控制服务器等。

但是这个问题的锦上添花是,您不想偿还其他试图帮助“解决”您在时间上面临的“问题”的开发人员,但这只是我个人的意见 :)

于 2013-09-14T10:25:24.273 回答