MonoTouch的:如何保护我的应用程序 [英] MonoTouch: How to protect my application

查看:178
本文介绍了MonoTouch的:如何保护我的应用程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我用Dotfuscator保护我的应用程序,从逆向工程我加密的Windows应用程序的DLL文件,但我该怎么做,在OSX / MonoTouch的?

I used Dotfuscator to protect my application from reverse engineering I encrypted the dll files in windows application, but how can I do it in OSX/MonoTouch?

从提取IPA的DLL,然后混淆Windows中的DLL文件,并重新包装加密的dll文件到IPA,然后发布到AppStore的?

Extract the dll from ipa, then confuse the dlls in windows, and repack the encrypted dlls into IPA, then publish it to appstore?

有没有什么简单的解决办法?

Is there any simple solution?

推荐答案

最重要的,你需要记住的iOS不允许 JIT (准时)编制。这意味着一切都需要去通在 AOT (提前)编译器。

Foremost you need to remember that iOS does not allow JIT (just in time) compiling. This means everything needs to go thru the AOT (ahead of time) compiler.

这将导致所有的IL $从组件C $ c为被转换成原生ARM(V6,V7和/或拇指)指令的IL是不需要了。

This results that all the IL code from your assemblies is being converted into native ARM (v6, v7 and/or thumb) instructions and that the IL is not required anymore.

这意味着,当你建立了发行| iPhone 中,IL code将会从您的组件中删除。由于它的strip'ed远也不会是present(被反编译)在发布应用程序。

This means that, when you're building for Release|iPhone, the IL code will be removed from your assemblies. Since it's strip'ed away it won't be present (to be decompiled) in the application you publish.

注意

  • 该组件将仍然是应用程序的里面,因为的元数据仍然是必需的(如的System.Reflection 需要它)。因此,符号名和资源文件将不会缺胳膊少腿/加密像混淆器一般做;

  • the assemblies will still be inside the application because the metadata is still required (e.g. System.Reflection needs it). So symbols names and resources files won't be mangled/encrypted like obfuscators generally do;

您可以拆卸ARM汇编(即使你混淆了AOT编译前的组件,这将是真实的),但它的很难理解(并取回C#),比IL是

You can disassemble ARM assembly (that would be true even if you obfuscated the assemblies before the AOT compilation) but it's much harder to understand (and get back to C#) than IL is.

从提取的IPA的组件和处理。第它们会破坏至少应用程序的签名(您可以重新签署)。它还将可能打破了很多其他的事情(因为code将引用的名称可能会改变/结构)。我不认为这会工作(但是这取决于你将使用从您的混淆器的选项)。

Extracting the assemblies from the IPA and procesing them will break at least the application's signature (you can re-sign it). It will also likely break a lot of other things (since the code will refer to names/structures that might have changed). I do not think this will work (but it depends on the options you would use from your obfuscator).

这篇关于MonoTouch的:如何保护我的应用程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆