我使用Dotfuscator来防止我的应用程序逆向工程我加密了
Windows应用程序中的dll文件,但是如何在OSX / MonoTouch中执行它?
从ipa中提取dll,然后在windows中混淆dll,并将加密的dll重新打包成IPA,然后将其发布到appstore?
有什么简单的解决方案吗?
解决方法
首先,您需要记住,iOS不允许JIT(及时)编译.这意味着一切都需要通过AOT(提前)编译器.
这将导致程序集中的所有IL代码都被转换为本机ARM(v6,v7和/或thumb)指令,并且不再需要IL.
这意味着,当您构建Release | iPhone时,IL代码将从您的程序集中删除.由于它被剥离,它将不会在你发布的应用程序中存在(被反编译).
笔记
>组件仍将在应用程序内部,因为仍然需要元数据(例如System.Reflection需要它).因此,符号名称和资源文件不会像混淆器一样被破坏/加密;>您可以拆卸ARM程序集(即使在AOT编译之前模糊程序集也是如此),但是比IL更难理解(并返回到C#).>从IPA提取程序集并处理它们至少会打破应用程序的签名(您可以重新签名).它也可能会打破很多其他事情(因为代码将引用可能已经改变的名称/结构).我不认为这会奏效(但这取决于您从混淆器使用的选项).