Forum Xamarin.Forms

How to obfuscate xamarin forms android app with Confuser cli ?

ChdoulaChdoula JPMember ✭✭

when I pass the app.Android.dll and its dependents (Java.Interop.dll, Mono.Android.dll, Xamarin.Forms.Platform.Android.dll, Xamarin.Forms.Core.dll, Xamarin.Forms.Platform.dll and finally mscoree.dll) to the confuser cli won't go further after adding mscoree.dll? any solutions please ?

Note: I tried dotfuscator and followed all the instructions but its not working at all!! the build never stop after opening the cli, and the obfuscated dlls are the same as the originals...


  • AlbertKAlbertK MYMember ✭✭✭✭
    edited January 2019

    I don't think you want to do obfucation on the Xamarin Forms. That will be a nightmare to debug even if it works. The most you can do is to make your super secret business logic library as .net Standard class library and then ofuscate it and host that in "nuget" server for example a private one like baget. BTW, confuser is plain to old. Try obfuscar. It works with .net standard class library and pretty current.

  • ChdoulaChdoula JPMember ✭✭

    Thanks for your reply , actually I tried Skater .NET and have obfuscated app.dll , app.common.dll and app.Android.dll, I have tested it it on ILSpy and i think everythink is hidden now , this is the output of ILSpy

    System.OutOfMemoryException: Les dimensions du tableau dépassent la plage prise en charge.
    à Microsoft.Cci.Pdb.MsfDirectory..ctor(PdbReader reader, PdbFileHeader head, BitAccess bits)
    à Microsoft.Cci.Pdb.PdbFile.LoadFunctions(Stream read, Dictionary2& tokenToSourceMapping, String& sourceServerData, Int32& age, Guid& guid) à Mono.Cecil.Pdb.PdbReader.PopulateFunctions() à Mono.Cecil.Pdb.PdbReader.ProcessDebugHeader(ImageDebugDirectory directory, Byte[] header) à Mono.Cecil.ModuleDefinition.ProcessDebugHeader() à ICSharpCode.ILSpy.LoadedAssembly.LoadSymbols(ModuleDefinition module) à ICSharpCode.ILSpy.LoadedAssembly.LoadAssembly(Object state) à System.Threading.Tasks.Task1.InnerInvoke()
    à System.Threading.Tasks.Task.Execute()

Sign In or Register to comment.