For stage 1: The best way to solve it would be to run the Strings function on the dissassembled stage in any dissassembler software. This will show the user all the strings that are stored in teh bomb. The user will then have to try every string to see which one is the solution.
For stage 2-4 the best way to solve it would be to dissassemble the stages individually and trace through the code whilst checking registers so as to discover the input that produces the flag. Another method would be to try and recreate the source code by looking at the dissassembled function.
Some of the best dissassembler software include but is not limited to gcc debugger, Radare2 and Ghidra (cheatcode).
To discover the secret stage, the user has to input a different input solution for stage 1. This input will provide them with a secret passcode which th competitors are told to write down for later use. This code is then used after reaching stage 4 whereby it tells the competitor that they missed something and to proceed they need a secret code. After entering this secret code the secret phase will be unlocked which they also have to solve. This can be solved by doing the same things as they did from stage 1-4.