Big control-flow graphs are scary! Imagine opening a target and IDA tells you that the graph is too big to be displayed on screen. A great tool to circumvent this issue is symbolic execution, a technique where you can match binary state with the corresponding input that caused its execution.
You can use symbolic and concolic execution to find constraints in crackme solving, for deobfuscation purposes and even advanced fuzzing of complex binaries.
In this workshop we will take a crackme challenge and learn how to speed up our reverse engineering process via smt solving and symbolic execution. We will get some hands-on experience using the angr framework and learn how to identify and fix common issues that you're dealing with when using it. After this workshop big control-flow graphs won't be as daunting anymore, you will know when and how to apply symbolic execution, gain an edge in ctf solving and have some hands-on experience using the angr framework.