Introduction to Reverse Engineering
Date: 2024-11-27
Difficulty: Beginner to Advanced
Delivered By: Dan Hoang
Overview
Getting programs to misbehave is the basis of offensive security (and malicious threats). Unfortunately, we don't typically have access to the source code of said programs. Thus: reverse engineering. This is the act of looking at a compiled program, and attempting to understand how it functions, as well as attempting to recreate something close to the original source code.
Once we know how a program functions, we move on to binary exploitation. This is the act of using carefully crafted inputs to cause a program to do something it wasn't intended to; the most basic of such attacks being a buffer overflow. We will be covering tools and techniques for both, as well as how to spot vulnerable code.
Prerequisites
A Kali VM is recommended for this session. The following script will install the necessary tools for this session, it can also be found at https://go.sucss.org/binexptools.
To install the tools, run the following commands in your terminal:
curl -sSL https://go.sucss.org/binexptoolsraw | tr -d "\r" | tee "install.sh" | sh
source ~/.zsh/path
Challenges
There are 2 sets of challenges for this session: