【发布时间】:2016-07-25 04:44:21
【问题描述】:
如您所知,Xamarin 项目被编译为 dot net dll 程序集,并将打包到 apk 文件中,并且可以很容易地被 DotPeek 等反射器反映。
我的第一个问题是: 我们如何保护我们的代码?
我的第二个问题是: SmartAssembly 之类的混淆器工具是否可以在 Xamarin 项目中使用,或者 Xamarin 项目不支持它们?
【问题讨论】:
-
大多数(全部?)混淆器都可以工作,因为您正在谈论基于 CIL 的程序集(与任何 .Net/Mono 环境具有相同的优点/缺点)。对于 Xamarin.Android,如果您是 VS Enterprise 用户,您还可以启用“在本机代码中启用程序集”。这会将程序集嵌入到基于 NDK 的运行时库中。逆向工程师将不得不花费更多时间寻找要提取的指向/结束点,但就像任何基于 CIL 的混淆一样,任何想要花时间进行 RE 的人都可以,无论您使用哪种混淆。
-
为什么要使用 iOS 标签? Xamarin.iOS 已经使用 AOT 编译为本机。
-
@LexLi 感谢提及。我刚刚删除了标签。
-
Java 也可以很容易地从 Android .apk 中反编译。因此,如果您想达到与 Android 提供的类似的“安全性” - 您已经拥有它。
标签: c# android xamarin xamarin.android