单调触摸:如何保护我的申请
-
12-12-2019 - |
题
我使用Dotfuscator来保护我的应用程序免受逆向工程我在windows应用程序中加密了dll文件,但是如何在OSX/MonoTouch中做到这一点?
从ipa中提取dll,然后混淆windows中的dll,并将加密的dll重新打包到IPA中,然后将其发布到appstore?
有没有简单的解决方案?
解决方案
首先你需要记住iOS不允许 JIT,JIT (正好)编译。这意味着一切都需要通过 AOT (提前)编译器。
这会导致程序集中的所有IL代码都被转换为本机ARM(v6、v7和/或thumb)指令 和 IL是 不需要 再也没有了。
这意味着,当你为 Release|iPhone
, ,IL代码将从您的程序集中删除。由于它被剥离,它不会出现在您发布的应用程序中(被反编译)。
注意事项
程序集仍将位于应用程序内部 因为 元数据仍然是必需的(例如
System.Reflection
需要它)。因此,符号名称和资源文件不会像混淆器通常那样被损坏/加密;您可以拆卸ARM assembly(即使您在aot编译之前混淆了程序集也是如此),但它是 很多 比IL更难理解(并回到C#)。
从IPA中提取程序集并处理它们将中断 至少 应用程序的签名(您可以重新签名)。它还将 可能的 打破很多其他的东西(因为代码将引用可能已经改变的名称/结构)。我不认为这会起作用(但这取决于您从混淆器中使用的选项)。
不隶属于 StackOverflow