A simple patch to bypass the key check will cause the program to crash. This is because the program not only checks the key, but also uses it to parse and set up important internal data. The patch skips this setup step, resulting in an error when the program tries to use the uninitialized data.
In short, this challenge forces the solver to analyze the data flow, not just the control flow of the program. |
==> |
in a real program you can't just jmp and be done with it, you have to give it a value or something it expects |
==> |