Obfuscation Engine Execution Order
BitMono uses its own obfuscation execution order which is good to be known, and it reminds ConfuserEx a lot, if you’re familiar with it you can be easier with it.
Output Loaded Module Info
Output Information about BitMono (example, is it intended for .NET Core or Mono or .NET Framework, etc.) and running OS, etc.
Output Compatibility Issues in case of module is built for .NET Framework, but BitMono is running on .NET Core, or vice versa.
Sort Protections
Information about Protections
Configuration for Native Code
Elapsed time counter
Resolve References
9. Expand Macros 11. Run Protection, PipelineProtection and child pipeline protections
public class StandardProtection : Protection
public class Pipeline : PipelineProtection
Optimize Macros
13. [ObfuscationAttribute] cleanup 14 Create PE Image 15. Write Module 16. Run Packers
public class Packer : PackerProtection
Output Elapsed Time since obfuscation