在进行AOT编译的Xamarin项目中使用代码混淆有什么优势

时间:2019-10-29 14:18:58

标签: ios xamarin xamarin.ios obfuscation

我们有一个Xamarin解决方案,其中同时包含Xamarin.Android和Xamarin.iOS项目。我们正在使用Aot-of-time(AOT)编译应用程序,因此该代码无法反向工程为原始c#代码。

在这种情况下,是否有一些代码可以通过aot编译的apk进行反向工程,如果该代码首先通过诸如dotfuscator之类的代码混淆器运行,则会被混淆?

1 个答案:

答案 0 :(得分:3)

即使Xamarin.iOS构建生成的是本机iOS二进制文件,但是如果您不希望反向工程师弄清楚有关应用程序的控制流,明文字符串和其他可能的机密信息,代码混淆仍然会有所帮助(除其他事项外)。当然,只要有足够的时间,一个有专心的人仍会设法做这些事情,但其想法是要使它很难花很长时间或完全不值得他们花时间。

我更熟悉如何分解和分析使用Swift或Objective-C构建的iOS应用程序,但与Xamarin.iOS应用程序相比,我相信它并没有太大区别,因为它被编译为ARM代码,而该代码肯定可以被理解。许多工具,例如IDA Pro,Hopper等。

因此,回答您的问题。在本机编译之前进行混淆处理甚至可能对明文字符串进行加密等都是很有意义的。

请参阅以下文章,深入了解如何对iOS应用进行反向工程和篡改:Tampering and Reverse Engineering on iOS。有了正确的工具和知识,它为您提供了一个非常好主意,即逆转不受保护的应用程序有多么容易。