Battelle/movfuscator logo

Battelle/movfuscator

Free

The single instruction C compiler

FreeFree tier
Type
Open Source

About Battelle/movfuscator

M/o/Vfuscator (short 'o', sounds like 'mobfuscator') is an open-source C compiler that transforms programs into executables composed solely of 'mov' instructions. It achieves full program functionality—including arithmetic, comparisons, jumps, and function calls—without self-modifying code, transport-triggered calculation, or other non-mov techniques. The compiler currently targets the C language and x86 architecture but is designed to be adaptable to other languages and processors. It uses LCC as its frontend and includes build, check, and install scripts for easy setup. Debugging flags such as --mov-id and --mov-flow are provided to assist analysis. Examples include compiling a prime number function and a Nibbles game.

Key Features

Compiles C programs into executables containing only 'mov' instructions
Supports all program operations (arithmetic, jumps, calls) via mov
Uses LCC as the compiler frontend
Includes automated build, check, and install scripts
Provides debugging flags: --mov-id, --no-mov-id, --mov-flow, --no-mov-flow
Adaptable to other programming languages and processor architectures

Pros & Cons

Pros
  • Unique minimal instruction set approach (only mov)
  • Open-source and freely available on GitHub
  • Provides detailed build and testing scripts for reproducibility
  • Adaptable design allows targeting other languages and architectures
  • Interesting for security researchers and compiler enthusiasts
Cons
  • Not suitable for production use due to extreme performance overhead
  • Currently limited to C language and x86 architecture
  • No official support or documentation beyond the GitHub repository
  • Large code size and slow execution compared to traditional compilers

Best For

Code obfuscation and anti-reverse engineering researchEducational demonstration of Turing-completeness of the mov instructionCompiler design experimentation and academic studySecurity and malware analysis training

FAQ

What is M/o/Vfuscator?
M/o/Vfuscator is a C compiler that compiles programs into executables consisting only of 'mov' instructions. All operations, including arithmetic, control flow, and function calls, are implemented using mov.
How does M/o/Vfuscator work?
It uses LCC as the compiler frontend and a custom backend that generates only 'mov' instructions. The compiler does not use self-modifying code or other non-mov techniques.
Is M/o/Vfuscator practical for real-world use?
No, it is a proof-of-concept demonstrating the theoretical capability of the mov instruction. It is not intended for production use due to significant size and speed penalties.
What architectures and languages are supported?
Currently it targets the C programming language and x86 processor architecture, but it is designed to be easily adaptable to other languages and architectures.