Which base Protection to pick, and why ====================================== BitMono has three kinds of protection at its core, and picking the right base for what you're building matters. They are: 1. ``Protection`` 2. ``PipelineProtection`` 3. ``PackerProtection`` Start by asking what your protection actually needs to do: - **Just need the Module?** Reading or modifying types, methods, IL, anything in the managed metadata, use ``Protection``. It's also the simplest one to start with for quick testing. - **Want to split the work into layers?** If your protection naturally breaks into stages, or it spawns child protections, use ``PipelineProtection``. You still get full access to the Module. - **Changing the file itself (the PE)?** Use ``PackerProtection``. Packers run *last*, after the module has already been written to disk, so this is where you rewrite the actual file structure. You can still reach the Module from here, but you'd have to write it out again, so only do this if you really need to touch the PE.