我们在unity3d游戏中有一个代码,我们希望防止反编译(将在ios,android,webgl和unity插件中发布) . 我们该如何保护它?我们应该将该部分代码编写为非托管插件(c)吗?
您可以使用混淆技术,这可以保护您的软件包免受逆向工程,但只是来自那些非常非常的人(我说的是高级逆向工程师,他们可以反编译您的代码并处理ASM或者可以反编译您的iOS / Android项目)感兴趣,无论如何为Unity,iOS
您可以使用unity资产商店中的 Remiix Obfuscator 插件对源代码进行模糊处理 .
这是 free 和 easy 使用和支持许多构建统一平台(android,ios) .
发布无法进行逆向工程的软件是不可能的 .
这是可能的 . 有些软件包具有标准的统一包装格式 . 那么..如果您使用动态资产或使用CodeContainers,则需要保护您的代码 .
所以你要做的是:
如果您使用动态资产包:从代码生成dll或创建一个控制器类 . 如果你使用CodeConainers(JS)make main C#controller . 在此之后,您可以扩展类或只是调用方法 .
PS:如果您想保护不是代码资产,则需要进行二进制编码 . 当您加载级别或预制时,您只需解码此资产并使用 .
4 回答
您可以使用混淆技术,这可以保护您的软件包免受逆向工程,但只是来自那些非常非常的人(我说的是高级逆向工程师,他们可以反编译您的代码并处理ASM或者可以反编译您的iOS / Android项目)感兴趣,无论如何为Unity,iOS
您可以使用unity资产商店中的 Remiix Obfuscator 插件对源代码进行模糊处理 .
这是 free 和 easy 使用和支持许多构建统一平台(android,ios) .
发布无法进行逆向工程的软件是不可能的 .
这是可能的 . 有些软件包具有标准的统一包装格式 . 那么..如果您使用动态资产或使用CodeContainers,则需要保护您的代码 .
所以你要做的是:
如果您使用动态资产包:从代码生成dll或创建一个控制器类 . 如果你使用CodeConainers(JS)make main C#controller . 在此之后,您可以扩展类或只是调用方法 .
PS:如果您想保护不是代码资产,则需要进行二进制编码 . 当您加载级别或预制时,您只需解码此资产并使用 .