Welcome to the O-MVLL documentation. This documentation is split into three sections:
This first section, Introduction, is about how to use and how to get started with O-MVLL.
The second section, obfuscation passes, describes the different obfuscation passes available in O-MVLL.
The last section, other topics, contains different information for those who are already familiar with the project.
O-MVLL is an obfuscator based on LLVM that uses the new LLVM pass manager,
-fpass-plugin to perform
native code obfuscation. These obfuscation rules are driven by a Python API defined as follows:
import omvll class MyConfig(omvll.ObfuscationConfig): def __init__(self): super().__init__() def flatten_cfg(self, mod: omvll.Module, func: omvll.Function): if func.name == "check_password": return True return False def obfuscate_string(self, _, __, string: bytes): if string.startswith(b"/home") and string.endswith(b".cpp"): return "REDACTED"