我正在从事Xamarin项目,我希望我的Android应用程序受到保护,以免被逆向工程。 我的项目和外部库中有自定义渲染器。 我尝试过dotfuscator,但它改变了一些方法,并且在XAML中没有影响,因此某些功能无法正常工作,自定义渲染器也不起作用 任何人都可以建议我一个更好的选择 我正在使用Visual Studio 2017专业版。 建议我一些免费或更便宜的解决方案,成本最低。
您可以在 Visual Studio 的社区版中使用 AOT。只需将以下行手动添加到发布配置的 csproj 文件中:
<BundleAssemblies>True</BundleAssemblies>
<EmbedAssembliesIntoApk>True</EmbedAssembliesIntoApk>
<AotAssemblies>True</AotAssemblies>
<AndroidAotAdditionalArguments>no-write-symbols,nodebug</AndroidAotAdditionalArguments>
许多人也建议使用LLVM:
<EnableLLVM>True</EnableLLVM>
添加所有这些会删除通常存在于 apk 包中的易于反编译的 dll 文件。
而是创建共享对象文件 (.dll.so)。据我所知,这些不能用于复制源代码。但是,我不是专家,这种说法应该由知识渊博的人来验证。
共享对象文件也可以解压缩,但我在其中看不到任何易于访问的代码。我不熟悉这些文件的布局/内容。希望有一天有人可以添加有关它们的更多信息。
请谨慎使用Visual Studio中项目的Android选项设置,因为它们可能会更改您手动输入的选项。就个人而言,我不会在Visual Studio中触摸这些选项,而是在文本编辑器中手动执行所有项目设置。