Ali*_*ami 13 c# android xamarin.android xamarin
如你所知,Xamarin项目被编译成dot net dll程序集,它将被打包到apk文件中,并且可以很容易地被像DotPeek这样的反射器反映出来.
我的第一个问题是: 我们如何保护我们的代码?
我的第二个问题是: 像SmartAssembly这样的混淆工具是否可用于Xamarin项目,或者Xamarin项目是否不支持它们?
保护APK的.NET代码(.DLLS)的最佳方法是启用Ahead Of Time(AOT)编译:
AOT编译会将您的应用程序IL代码(.dll)编译为本机指令.打包到APK中的最终代码是X86,arm等指令,而不是托管的IL代码.
AOT编译仅适用于Enterprise和更高版本的许可证.
虽然AOT增加了逆向工程的难度,但它仍然不是100%万无一失.最终的二进制文件仍然可以从root设备中提取,并使用IDA pro等软件进行逆向工程.这比使用DotPeek困难得多,但它仍然可能.
注意启用AOT编译的缺点也很重要.应用程序构建时间显着增加,因为应用程序引用的每个程序集都需要编译; 我的经验表明,当启用AOT时,您应该期望构建时间增加200%-300%.
此外,AOT编译将增加最终的APK大小.
小智 5
对于您的第一个问题,可以使用一些工具来混淆您的 Xamarin 代码。例如,Crypto Obfuscator、Babel Obfuscator和Dotfuscator
对于你的第二个问题,SmartAssembly 混淆似乎是可能的。请在此处查看 Windows Phone 部分。
小智 5
Dotfuscator 支持 Xamarin,有关如何集成它的在线说明(适用于Dotfuscator Professional或免费社区版)。本质上,这个过程是:
全面披露:我为 PreEmptive Solutions 工作。
| 归档时间: |
|
| 查看次数: |
8067 次 |
| 最近记录: |