【问题标题】:Xamarin forms portable library with obfuscation tool .Net ReactorXamarin 使用混淆工具 .Net Reactor 形成可移植库
【发布时间】:2018-06-23 05:27:41
【问题描述】:

我正在开发 Xamarin 表单项目(带有可移植项目) 我正在尝试使用 .Net Reactor 混淆便携式 dll 我已经使用批处理文件完成了该操作,该批处理文件设置为便携式项目的构建后事件并且一切正常(即生成的 dll 被成功混淆) 这是脚本代码

    "C:\Program Files (x86)\Eziriz\.NET Reactor\dotNET_Reactor.exe" -project 
    "reactor.nrproj" -file "myProject.dll"
  copy "myProject_Secure\myProject.dll" "myProject.dll"

问题是当我构建 droid 项目时出现以下错误

加载程序集时出现异常:System.IO.FileNotFoundException: 无法加载程序集'Windows,版本 = 255.255.255.255, 文化=中立,PublicKeyToken='。也许它不存在于 Mono for Android 配置文件?文件名:“Windows.dll”位于 Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(AssemblyNameReference 参考,ReaderParameters 参数)在 /Users/builder/data/lanes/5147/c2a33d8e/source/xamarin-android/external/Java.Interop/src/Java.Interop.Tools.Cecil/Java.Interop.Tools.Cecil/DirectoryAssemblyResolver.cs:line 220 在 Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences(DirectoryAssemblyResolver 解析器、ICollection`1 程序集、AssemblyDefinition 程序集、 布尔顶层)在 Xamarin.Android.Tasks.ResolveAssemblies.Execute(DirectoryAssemblyResolver 解析器)myProject.Droid

我确信问题来自混淆,因为没有混淆一切正常

是否有人使用 .Net reactor 来混淆 Xamarin 表单项目?

顺便说一句,我已经取消检查 .Net reactor 的所有快速设置,问题仍然出现

【问题讨论】:

    标签: xamarin.forms net-reactor


    【解决方案1】:

    Xamarin Android 的混淆是没用的,最好打开“将程序集嵌入本机代码”,这会将所有代码转换为二进制 .so 文件。因此黑客或逆向工程师很难阅读该代码并进行逆向工程。您可以使用 AOT,但这是实验性的,在 Play 商店更新后可能会给某些设备带来问题。为了安全起见,我建议使用“将程序集嵌入本机代码”

    【讨论】:

      【解决方案2】:

      您需要将“2. 保护设置”->“Anti ILDASM”->“抑制反编译”设置为“False”,因为在这种情况下会混淆构建过程。如果它仍然不起作用,请将“1. General Settings”->“Project Targets Mono Framework”设置为“True”。

      【讨论】:

        猜你喜欢
        • 2023-03-06
        • 2018-04-19
        • 1970-01-01
        • 1970-01-01
        • 2020-11-17
        • 1970-01-01
        • 2018-12-31
        • 2014-11-15
        • 2020-07-06
        相关资源
        最近更新 更多