Introduction to Reverse Engineering

Date: 2024-02-28

Difficulty: Beginner

Delivered By: Albert Ratuszniak and Skyler Mansfield

Originally planned to run 21/02/2024, but postponed to the 28/02/2024 due to technical issues.

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/binexp-tools.

To install the tools, run the following commands in your terminal:

curl -sSL https://go.sucss.org/binexp-tools-raw | tr -d "\r" | tee "install.sh" | sh
source ~/.zsh/path