如果我有自定义渲染器和许多外部库,如何混淆Xamarin Android代码

问题描述 投票:0回答:1

我正在Xamarin Project上工作,我希望保护我的android应用程序免遭反向工程。我在我的项目和外部库中有自定义渲染器。我已经尝试过dotfuscator,但是它更改了某些方法,并且在XAML中没有影响,由于某些功能无法正常工作以及自定义渲染器无法正常工作,有人可以建议我使用Visual Studio 2017 Professional更好的选择。向我建议一些成本最小的免费或便宜的解决方案。

c# xamarin.forms xamarin.android obfuscation dotfuscator
1个回答
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中的这些选项,而是在文本编辑器中手动进行所有项目设置。

© www.soinside.com 2019 - 2024. All rights reserved.