我使用 Dotfuscator 来保护我的应用程序免受逆向工程的影响 我在 Windows 应用程序中加密了 dll 文件,但如何在 OSX/MonoTouch 中做到这一点?
从ipa中提取dll,然后在windows中混淆dll,将加密的dll重新打包成IPA,然后发布到appstore?
有什么简单的解决办法吗?
首先你需要记住 iOS 不允许JIT(及时)编译。这意味着一切都需要经过AOT(提前)编译器。
这会导致程序集中的所有 IL 代码都被转换为本机 ARM(v6、v7 和/或thumb)指令andIL 是不需要不再了。
这意味着,当您构建时Release|iPhone
,IL 代码将从您的程序集中删除。由于它已被删除,因此它不会出现在您发布的应用程序中(将被反编译)。
NOTES
程序集仍将位于应用程序内部because元数据仍然是必需的(例如System.Reflection
需要它)。因此符号名称和资源文件不会像混淆器通常那样被破坏/加密;
您可以反汇编 ARM 程序集(即使您在 AOT 编译之前混淆了程序集也是如此),但它是much比 IL 更难理解(并回到 C#)。
从 IPA 中提取程序集并处理它们将会中断at least应用程序的签名(您可以重新签名)。它还将likely破坏很多其他东西(因为代码将引用可能已更改的名称/结构)。我认为这不会起作用(但这取决于您从混淆器中使用的选项)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)