BitDotNet
How it works?
The protection uses dnlib exploit and modifies the file metadata (PE) to make it unrecognizable for dnSpy, as the result, at first sight, it will look like not a .NET file, for example, a C++ file.
Mono doesn’t care about the thing which dnlib care about, and because of that it does what it does
Protection Type
The protection type is Packer.
Warning
This protection compatible only with Mono.
IL2CPP
Not supported on IL2CPP builds. It corrupts the managed PE header so only the Mono loader can read it, but il2cpp.exe must parse the assembly. BitMono skips it automatically when building for IL2CPP (see Unity Protections).