【问题标题】:How to link statically C++ dll to .NET library (build in c++ dll to net wrapper dll to get one dll)如何将 C++ dll 静态链接到 .NET 库(将 c++ dll 构建到网络包装器 dll 以获取一个 dll)
【发布时间】:2011-12-12 07:25:43
【问题描述】:

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

谢谢

【问题讨论】:

  • 那么 wrapper.dll 也可以替换。为什么一个 DLL 比恶意软件更安全?

标签: c#


【解决方案1】:

简单:不要。

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

底线是,你真的是在向一棵你不能爬的树上狂吠(你可以做一些事情来劝阻人们,但如果他们真的想的话,你不会阻止他们弄乱你的应用程序)-并且以某种方式将您的 DLL 合并到一个文件中确实不会给您带来任何有意义的好处。

【讨论】:

    【解决方案2】:

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

    希望对您有所帮助。

    【讨论】:

    • 好的。看来它必须保持原样。
    猜你喜欢
    • 1970-01-01
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-05
    • 1970-01-01
    相关资源
    最近更新 更多