A decryptor for encrypted 3ds Max scripts that doesn't break the encryption — it borrows the code 3ds Max already ships, through a swapped vtable.
Side project, and mostly a way into low-level work. No brute force on the encryption: the code that decrypts scripts already ships with 3ds Max, hidden and blocked. I reverse-engineered the binaries to find it, then wrote a C++ class laid out like the internal object and swapped its vtable pointer for the one in Max's DLL — so my calls ran Max's own code. Never distributed, for legal reasons.
Roles
Reverse-engineered the 3ds Max binaries to find the script-decryption code that ships hidden and blocked, then called it through a C++ class with a swapped vtable — no brute force. A way into low-level work; kept private.
Highlights
- Disassembly and live debugging of the 3ds Max binaries to find the decryption path
- A C++ class matching the internal object's layout, its vtable pointer replaced by the DLL's
- Max's own code doing the work — no brute force, no crypto reimplemented
- Never distributed
Technologies
Reverse engineering · x86/x64 assembly · C++ · vtable hooking · 3ds Max · Debuggers