我正在开发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,Version = 255.255.255.255, Culture = neutral,PublicKeyToken ='。也许它不存在于 Mono对于Android的个人资料?文件名:'Windows.dll'at 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程序集, 布尔topLevel)at Xamarin.Android.Tasks.ResolveAssemblies.Execute(DirectoryAssemblyResolver 解析器)myProject.Droid
我确信这个问题来自混淆,因为一切正常而没有混淆
是否有人使用.Net reactor来混淆Xamarin表单项目?
顺便说一句,我已经取消了.Net反应堆的所有快速设置,问题仍然显示答案 0 :(得分:0)
混淆Xamarin Android毫无用处,因为最好打开“将程序集嵌入到本机代码”,这会将所有代码转换为二进制.so文件。因此,黑客或逆向工程师很难读取该代码并进行逆向工程。您可以使用AOT,但这是实验性的,在Play商店更新后可能会给某些设备造成问题。为了安全起见,我建议使用“嵌入到本机代码的程序集”
答案 1 :(得分:0)
您需要将“ 2. Protection Settings”->“ Anti ILDASM”->“ Suppress Decompilation”设置为“ False”,因为这会使构建过程变得混乱。如果仍然无法正常工作,请将“ 1.常规设置”->“项目目标Mono框架”设置为“真”。