如何在VS 2019上混淆xamarin应用程序

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

我需要保护应用程序上的业务逻辑,这是使用xamarin表单创建的。我在论坛上以及有关Babel和ConfuserEx的信息中进行搜索,但无法正常运行。

Case Babel

我已经安装了演示SDK,并且已经更新了环境变量的路径。在Android项目上,我添加了以下几行,如示例和书籍“ Android的Xamarin移动开发食谱

所示
<UsingTask TaskName="Babel" AssemblyName="Babel.Build, Version=9.3.3.0, Culture=neutral, PublicKeyToken=138d17b5bd621ab7" />
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="AfterBuild">
    <Babel InputFile="$(TargetPath)" OutputFile="$(TargetPath)" 
           VerboseLevel="5" 
           ObfuscateTypes="true" 
           ObfuscateEvents="true" 
           ObfuscateMethods="true" 
           ObfuscateProperties="true" 
           ObfuscateFields="true" 
           VirtualFunctions="true" 
           FlattenNamespaces="false" 
           UnicodeNormalization="false" 
           SuppressIldasm="true" 
           StringEncryption="xor" 
           ResourceEncryption="false" 
           ValueEncryption="false" 
           DynamicProxy="false" 
           ControlFlowObfuscation="goto=on" 
           ILIterations="5" />
    </Target>

编译很好,但是我看到带有ILSpy工具的dll,并且可以看到流,方法,变量等...

Case ConfuserEx

我已经安装了ConfuserEx的VS扩展,并且尝试在普通项目上对其进行激活,并且对其进行了模糊处理,但是当我存档以生成apk时,不会对其进行模糊处理。我曾尝试在Android Project而不是通用Project上执行此操作,但是它不起作用。您能给我一些建议来混淆应用程序吗?我想用Android,iOS和UWP应用来做到这一点。因为默认情况下,uwp,droid和ios很容易进行逆向工程,不是吗?

xamarin.forms xamarin.android xamarin.ios obfuscation xamarin.uwp
2个回答
1
投票

由于默认情况下,uwp,droid和ios很容易反转工程,不是吗?

假设这是问题,答案是您主要是错误的。

AOT编译的程序集不容易逆向工程,对于UWP和iOS,AOT是必需的,而在Android上,默认情况下现在已启用部分AOT,而在VS Enterprise上也可以启用完整的AOT。

说到没有什么不能逆向工程,您仍然可以在AOT编译的顶部添加混淆以使其更加困难,只是没有内置的解决方案(据我所知也没有免费的解决方案),因此您可以选择自己喜欢的解决方案,此处不推荐此类建议。


1
投票

最近3年来,我一直在Xamarin.Android应用程序中使用Babel。它运作得非常好。如果您有问题,请联系Babel的Alberto。他提供了极大的支持。大多数问题是由于Xamarin的构建过程可能因发行版本而异,因此Babel任务可能需要进行修改以适应这些更改。

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