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

Is there any advantage in using code obfuscation in Xamarin project that is doing AOT compilation

我们有一个包含 Xamarin.Android 和 Xamarin.iOS 项目的 Xamarin 解决方案。我们正在使用提前 (AOT) 编译应用程序,因此无法将代码逆向工程为原始 c# 代码。

在这种情况下,是否有一些代码可以从 aot 编译的 apk 进行逆向工程,如果代码首先 运行 通过像 dotfuscator 这样的代码混淆器进行混淆?

即使 Xamarin.iOS 构建生成本机 iOS 二进制文件,如果您不希望逆向工程师找出控制流、纯文本字符串和关于您的应用程序的其他可能的秘密信息(除其他事项外)。当然,如果有足够的时间,一个专注的人仍然会设法做这些事情,但我们的想法是让它变得足够困难以花费很长时间,或者根本不值得他们花时间。

我更熟悉 iOS 使用 Swift 或 Objective-C 构建的应用程序如何被反汇编和分析,但我相信与 Xamarin.iOS 应用程序,因为它被编译为 ARM 代码,许多工具(如 IDA Pro、Hopper 等)肯定可以理解

所以,回答你的问题。在本机编译之前进行混淆甚至加密明文字符串等绝对有意义

查看以下文章,深入了解如何对 iOS 应用进行逆向工程和篡改:Tampering and Reverse Engineering on iOS。它让您真正了解在正确的工具和知识的情况下逆转未受保护的应用程序是多么容易。