.net - 单点触控 : How to protect my application

标签 .net ios encryption xamarin.ios dotfuscator

我使用 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 中提取程序集并对其进行处理将至少破坏应用程序的签名(您可以重新签名)。它还可能破坏许多其他东西(因为代码将引用可能已更改的名称/结构)。我认为这行不通(但这取决于您从混淆器中使用的选项)。

关于.net - 单点触控 : How to protect my application,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9667265/

相关文章:

encryption - 如何使用 PyCrypto 读取标准的 openssl rsa 私钥并用它解密

java - Java 中相同的密码会产生不同的 AES key

c# - 如何确定实际物理网卡的 MAC 地址——而不是 VPN (.NET C#) 创建的虚拟网络接口(interface)

.net - WPF、XBAP、Silverlight...哪个适合业务应用程序?

ios - 使用 SpriteKit 呈现插页式广告会重新启动整个场景

iphone - SBJson 解析尝试—— Objective-C

security - 使用 HMAC-SHA1 进行 API 身份验证 - 如何安全地存储客户端密码?

c# - c# 模型的 HasChanged 方法

c# - 是否有适用于 C#/.NET 的跨平台 GUI 框架?

ios - 在 IOS 中以编程方式设置 Action 监听器