Converting assemblies from .blob to .dll when 'Enable Optimisations' are enabled

Viewed 258

While building an android app in Xamarin, under the compiler settings I see an option called Enable Optimisations. When this option is checked, the apk that is generated contains the dll files in .blob format. I see two files, assemblies.blob and assemblies.manifest.

As per my understanding, I should be able to use the assemblies.manifest file to decompile the assemblies.blob into individual dlls.

Does anyone have an idea on how can I convert the assemblies.blob file to individual dlls? I could not find much information about it online. Below are some lines from the manifest file -

Hash 32     Hash 64             Blob ID  Blob idx  Name
0x31e9a66e  0x69f36bfeefc36c21  000      0000      test_optimize
0xa2e0939b  0x4288cfb749e4c631  000      0001      Xamarin.AndroidX.Activity
0x3dbaaf8f  0x8168042fd44a7c7a  000      0002      Xamarin.AndroidX.AppCompat
0x53cefc50  0x2248f922dc398cba  000      0003      Xamarin.AndroidX.CoordinatorLayout
0xc86c06e3  0x90bf592ea44f6673  000      0004      Xamarin.AndroidX.Core

Looking at the above, it seems to me that I should parse the blob as a byte[] and then create the individual dlls, but which hashing algorithm has been used to compute the 'Hash 32' and 'Hash 64' is something I do not know.

Why do I want to do this? I have obfuscated my dlls, I just want to make sure that the dlls inside this blob file are actually obfuscated.

0 Answers
Related