JuliaPoo/Artfuscator
FreeA C compiler targeting an artistically pleasing nightmare for reverse engineers
FreeFree tier
About JuliaPoo/Artfuscator
Artfuscator is a cursed C compiler built on the work of ELVM. It translates C code into a single control-flow graph that takes the form of any image of choice. Unlike previous efforts like REPsych (which generated non-functional graphs), Artfuscator's artistic graph actually implements the program's functionality — the only way to reverse the program is to analyze individual pixels of the image. The tool is designed as a form of psychological warfare against reverse engineers. It requires Python3, nasm, and conversion of input images to single-channel greyscale. The output binary is placed in the dist folder.
Key Features
Translates C code into a single control-flow graph that takes the shape of an arbitrary image
The control-flow graph is functional, not just decorative — it implements the program
Built on the ELVM (Esoteric Language Virtual Machine) compiler infrastructure
Outputs a standalone binary that executes the original program logic
Supports any single-channel greyscale image as the control-flow graph shape
Open source under MIT license
Pros & Cons
Pros
- Unique approach: functional image-shaped control flow graph, not just a bluff
- Strong obfuscation: forces reverse engineers to analyze at pixel level
- Based on mature ELVM compiler backend
- Open source and free to use
Cons
- Setup process is not packaged; requires manual cloning, submodule updates, and building
- Only works with single-channel greyscale images (mode L)
- Limited documentation; 'How it works' section marked as TODO
- No prebuilt releases or packages available
Best For
Obfuscating C programs to hinder reverse engineering effortsCreating artistic or novel executable binaries where the code structure forms an imageTeaching or exploring code obfuscation and control-flow graph transformation techniques
FAQ
How does Artfuscator differ from REPsych?
While REPsych generates a control-flow graph that looks like an image, that graph has no functionality. Artfuscator's graph actually implements the program functionality, so reverse engineers must analyze the actual pixels to understand the code.
What are the dependencies to build Artfuscator?
You need Python3, nasm, and a C compiler. The project also requires cloning submodules (ELVM) and building the ELVM backend.
What image formats are supported?
The tool requires single-channel greyscale images (mode L). The provided example uses a PNG (etc/niko-grey.png).
Is Artfuscator safe to use?
The project is provided under the MIT License and the author states they are not liable for any damage caused from using this project.