【问题标题】:Unity3D encrypt managed dll VS unmanaged dllUnity3D 加密托管 dll VS 非托管 dll
【发布时间】:2017-10-16 08:55:51
【问题描述】:

我正在 Unity 中构建 API/插件并希望加密我的代码

据我了解,托管 dll (C#) 可以反编译成可读代码,而非托管 dll (C++) 很难反编译成可读代码。

但在非托管 dll 中,我们不能使用 Unity 类,如 MonoBehaviorMesh

我的理解正确吗?

【问题讨论】:

  • 你打算通过加密你的代码来完成什么?如果您的代码已加密,则无法编译。如果你的意思是加密你的dll,那么它就不能被使用。您可能的意思是混淆,它确实使事情变得更难,但不是不可渗透的。如果您想保护您的代码/插件,请使用许可证。
  • 嗨卢克,我不希望其他人看到和理解我的代码,如果你加密为非托管 dll (c++),你仍然可以使用并且人们看不到我相信的原始代码。跨度>
  • 为什么不想让别人看到呢?如果您的 dll 是加密的,那么它只能由具有解密密钥的软件使用。正如我之前所说,我认为您将加密与混淆混淆了。
  • 例如,在Vuforia的API中,人们看不到“Plugins/x86/VuforiaWrapper.dll”中的代码,我不希望人们看到它与Vuforia相同的原因,因为在代码很重要。

标签: c# c++ unity3d encryption dll


【解决方案1】:

这就是您应该使用编组的原因。 unity 提供了一个非常好的跨平台解决方案。 从仅包含客户端的 c# 代码调用 c++ dll(没有有意义的算法)

您可以像这样从您的 c# 环境中调用您的 c++ dll:

[DllImport (dllName)]

 private static extern void Foo (string s1, string s2, bool ret);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多