我正在Xamarin Project上工作,我希望保护我的android应用程序免遭反向工程。我在我的项目和外部库中有自定义渲染器。我已经尝试过dotfuscator,但是它更改了某些方法,并且在XAML中没有影响,由于某些功能无法正常工作以及自定义渲染器无法正常工作,任何人都可以建议我使用Visual Studio 2017 Professional更好的选择。向我建议一些免费或便宜的解决方案,以最低的成本。
答案 0 :(得分:0)
您可以在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中触摸这些选项,而是在文本编辑器中手动进行了所有项目设置。