The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 41: | Line 41: | ||
}} | }} | ||
Symbolic execution is a powerful tool for code verification, bug hunting | Symbolic execution is a powerful tool for code verification, bug hunting and reverse engineering. In this class, we will dive into the concepts of constraint programming and SMT solvers and how binary analysis tools, such as angr, integrate these concepts into their frameworks. It is going to be a very practical class, where we are going to solve various CTF challenges with the goal of visiting different features of angr. | ||
Most CTF players use z3 and angr to save time when solving reverse engineering | Most of CTF players use z3 and angr to save time when solving reverse engineering challenge and that is also the path we are going to take. | ||
If time is available, we will also check manticore and miasm, two other tools with symbolic execution engines with different features! | If time is available, we will also check manticore and miasm, two other tools with symbolic execution engines with different features! | ||
Line 63: | Line 63: | ||
* Andrea Fioraldi's Bachelor Thesis "Symbolic Execution and Debugging Synchronization" (https://arxiv.org/pdf/2006.16601.pdf) | * Andrea Fioraldi's Bachelor Thesis "Symbolic Execution and Debugging Synchronization" (https://arxiv.org/pdf/2006.16601.pdf) | ||
* Training materials @ | * Training materials @ ShaktiCTF (https://keybase.pub/barbieauglend/2021_03_Shakti/) | ||
==== Participants (please register!) ==== | ==== Participants (please register!) ==== | ||
Line 99: | Line 99: | ||
- Microsoft Visual Studio 2008 redistributable package | - Microsoft Visual Studio 2008 redistributable package | ||
Let's dive into the | Let's dive into the blackhole of compiled code and understand the internals of the software running in our computer. It doesn't matter if you want to fix a broken gadget or save your files (now you know why to backup, right!?) from a ransomware, it is elementary to understand how they work. This is Reverse Engineering (RE), and it is done every day from recreating outdated and incompatible software, understanding malicious code, or exploiting weaknesses in software. | ||
We are going to try to cover topics like: | We are going to try to cover topics like: |