The M/o/Vfuscator (short ‘o’, sounds like “mobfuscator”) helps programs compile into only mov instructions, and nothing else – no cheating. Arithmetic, comparisons, jumps, function calls, and everything else a program needs are all performed through mov operations; there is no self-modifying code, no transport-triggered calculation, and no other form of non-mov cheating.
The compiler currently targets the C programming language and x86 processor architecture, but is easily adaptable to other languages and architectures.
Add reference instructions for each basic block to assist debugging.
Do not add reference instructions. This is the default.
Use mov instructions in implementing control flow. This is the default.
Use jmp instructions in implementing control flow. This will substantially
speed up execution in larger projects.
Use mov instructions to implement external function calls. This is the
Use jmp instructions to implement external function calls. This is useful for
Use mov instructions to implement the primary execution loop. This is the
Use jmp instructions to implement the primary execution loop. This is useful
Build the M/o/Vfuscator crt0 library (_start routines).
Build the M/o/Vfuscator crtf library (primary execution loop routines).
Build the M/o/Vfuscator crtd library (data tables).
Same as —crt0 —crtf —crtd.
The inspiration for the compiler is the paper “mov is Turing-complete“, by Stephen Dolan.
You can download M/o/Vfuscator2 here: