A 1st IOPCC Winner
Author:
- Dario Vuksan
- Username: musava_ribica
- Email: [email protected]
Judges' Comments
Tallest house of cards.
It's VMs all the way down. Main point of interest is the byte-code conversion from Python to the bespoke VM provided here.
Author's Comments
The original source code is in original.py
, and
processed using a custom obfuscator I wrote in late 2022. The way
obfuscation works is that it turns the code into virtual machine
bytecode and ships the VM itself in the output file, so it operates on
the source code level, but doesn't include any parts of the original
source in the output. That output is step1.py. I have decided to keep
original variable names, it's already obfuscated enough to hide the
control flow. I went a step further and obfuscated step1.py into
step2.py. I've also included obfuscated version of it (it's minified
using python-minifier library, and some fake functions are included) in
step2obf.py (they are essentially the same files). The original code
isn't anything special, it just proves the functionality of double
virtualization. The third virtual machine is the Python VM itself,
that's why I called it "ThreefoldVM"