| CERBERE |
[Click to reveal]CERBERE{2d7cf64f31edadd27b7d2765c8e4d98b781aaa8112515f6ced1b9e51a9f859da6a162b794ff7de26}
Solved v8. Nice challenge the three stages fit together well, and the integrity checks actually affect the calculations.
I used static analysis without patching or a debugger. First, I reversed the initial VM’s 426 instructions. Then I reconstructed the 60 constraints on the 128-bit secret and solved them using lattice reduction (LLL/BKZ). That secret unlocked the second VM, where I used index calculus to solve the discrete logarithm and derived the remaining values from the modular equations.
Finally, I inverted the first VM to recover the input and tested it against the original executable. It printed the expected Discord message. Everything was done offline, with intermediate data kept in memory.
The lattice stage took me the most effort. My favourite detail was binding the calculations to the executable’s code hash it made the anti-tamper mechanism part of the puzzle itself.
|
2026-10-06 04:32 |