Don't like this style? Click here to change it! blue.css
OK, so we have been turning C into x86 and recognizing patterns.
The job today is to understand what really happens as a CPU runs a program and to learn the most important (basic) instructions and what they do.
Also I'm loving this Godbolt compiler explorer: https://godbolt.org/z/q9anfY8je
OK so now let's introduce my favorite command-line reversing program:
Compile a simple C program and run r2 -Ad a.out then db main then dc then Vpp
Now you can navigate around using j and k, go into a command menu with : make a step with s or step over with S.
Let's look together at how registers work, how the instruction pointer moves, how the intruction addresses work, and see the above instructions in action.
You win when you can predict what will happen then see it happen.
Find the flags: This GitHub Repo has crackme0x00a crackme0x00b and crackme0x01, solve them.
Here are some binaries from real CTFs of the recent past:
yopass CTF{sha256}
cat.elf ctf{sha256}
pwn_bazooka_bazooka CTF{sha256}