1

我正在研究 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 配置文件中不存在?文件名:/Users/builder/data/lanes/5147/c2a33d8e/source/xamarin-android/external/Java 中的 Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(AssemblyNameReference 参考,ReaderParameters 参数)中的“Windows.dll” .Interop/src/Java.Interop.Tools.Cecil/Java.Interop.Tools.Cecil/DirectoryAssemblyResolver.cs:Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences 的第 220 行(DirectoryAssemblyResolver 解析器,ICollection`1 程序集,AssemblyDefinition 程序集,布尔值topLevel) 在 Xamarin.Android.Tasks.ResolveAssemblies。

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

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

顺便说一句,我已取消检查 .Net 反应器的所有快速设置,但问题仍然存在

4

2 回答 2

0

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

于 2019-03-28T06:34:30.007 回答
0

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

于 2020-11-12T16:00:36.820 回答