如何静态链接C ++ DLL到.NET库(用c ++ dll构建到net wrapper dll来获取一个dll)

时间:2011-12-12 07:25:43

标签: c#

我有C ++ dll。比我给这个C ++ dll编写.NET Wrapper,我可以将.NET包装器附加到我的项目中并在其中使用C ++库。但现在我有两个文件:c ++。dll和wrapper.dll。问题在于c ++ .dll,有人可以替换c ++ .dll并通过wrapper.dll将其代码注入我的应用程序。如何将c ++。dll嵌入到.net包装器中以获取一个.net包装器dll?

由于

2 个答案:

答案 0 :(得分:2)

简单:不要。

可以将C ++ DLL作为resource捆绑到.NET程序集中 - 但是这些恶意用户可以只使用ILDASM或Reflector或其他任何东西来从.NET中提取资源汇编 - 或反编译您的.NET包装器并使用他们想要的任何代码重新编译它。

最重要的是,你真的在​​吠叫一棵你无法攀爬的树(你可以做一些事情来劝阻别人,但如果他们真的想要,你就不会阻止他们弄乱你的应用) - 并以某种方式将您的DLL合并到一个文件中真的不会给您带来任何有意义的好处。

答案 1 :(得分:0)

您可以尝试合并它们(例如,使用ILmerge),但我不确定它会有多大用处。然后,如果您将尽可能多的文件合并到一个文件中,这可能至少有助于您的安全性。这可能会有所帮助:http://weblogs.asp.net/ralfw/archive/2007/02/04/single-assembly-deployment-of-managed-and-unmanaged-code.aspx

希望这有帮助。