【发布时间】:2020-05-13 20:25:03
【问题描述】:
我需要保护应用程序上的业务逻辑,这是使用 xamarin 表单创建的。我在论坛和此处搜索了有关 Babel 和 ConfuserEx 的信息,但我不明白它是否有效。
Case Babel
我已经安装了演示 SDK,并且我已经更新了环境变量的路径。 在 Android 项目中,我添加了以下几行,正如我在示例和书籍“Xamarin Mobile Development for Android Cookbook”中看到的那样
<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 扩展,并尝试在 common 项目上激活它,它被混淆了,但是当我存档以生成 apk 时,它没有被混淆。 我尝试在 Android Project 上做而不是 common Project,但它不起作用。 你能给我一些建议以混淆应用程序吗?我想用 Android、iOS 和 UWP 应用程序来做。 因为默认情况下,uwp、droid和ios很容易做逆向工程,不是吗?
【问题讨论】:
-
您尝试过使用DotFuscator 吗?此外,ios AFAIK 不需要混淆。 preemptive.com/dotfuscator/ce/docs/help/…
-
我读过它,但我没有尝试过,因为我读到它很昂贵,而且应用程序是为其他业务构建的。 emmm 看来我已经搜索好了,为什么xamarin iOS 不需要呢?
-
因为 iOS 是 AOT 的,而 IPA 无论如何都很难逆向工程
-
谢谢,Android 是链条中的薄弱环节
标签: xamarin.forms xamarin.android xamarin.ios obfuscation xamarin.uwp