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

时间:2019-03-28 06:52:48

标签: c# xamarin.forms xamarin.android obfuscation dotfuscator

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

1 个答案:

答案 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中触摸这些选项,而是在文本编辑器中手动进行了所有项目设置。