explaingit

rpisec/mbe

5,970CAudience · developerComplexity · 5/5Setup · moderate

TLDR

A complete university course on exploiting software vulnerabilities, covering reverse engineering, memory corruption, and bypassing modern security defenses, with wargame labs included.

Mindmap

mindmap
  root((repo))
    What it does
      Teaches binary exploitation
      Offensive security course
    Topics
      Reverse engineering
      Memory corruption
      Bypass stack canaries
      Kernel exploitation
    Labs
      Wargame server
      VM disk image
      Compiled binaries
    Prerequisites
      C programming skills
      Linux command line
      Assembly basics
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Work through a self-paced 15-week offensive security curriculum covering buffer overflows through kernel exploitation

USE CASE 2

Set up a local Ubuntu VM wargame environment to practice cracking intentionally vulnerable binaries

USE CASE 3

Learn how to bypass ASLR, stack canaries, and DEP protections on Linux programs

USE CASE 4

Practice heap exploitation and C++ vulnerabilities using the provided lab binaries

Tech stack

CC++x86 AssemblyLinuxUbuntu 14.04

Getting it running

Difficulty · moderate Time to first run · 1h+

Requires downloading a pre-built Ubuntu 14.04 VM disk image and setting up the wargame server environment locally.

No license information mentioned in the explanation.

In plain English

Modern Binary Exploitation (MBE) is the course material from a student-run university class taught at Rensselaer Polytechnic Institute in Spring 2015. It was created by RPISEC, a student security group, to teach offensive security skills that are not typically covered in standard computer science programs. The course focused on how attackers find and use vulnerabilities in software, specifically programs compiled for Linux and Windows. The course starts with the fundamentals of reverse engineering, which is the process of understanding how a compiled program works without having access to the original source code. It then moves into memory corruption, a category of vulnerabilities where a bug in a program allows an attacker to overwrite parts of memory in ways the program did not intend. Later lectures cover increasingly advanced topics: bypassing protections like stack canaries, address space layout randomization, and data execution prevention, exploiting the heap (a region of memory used for dynamic allocation), finding vulnerabilities in C++ programs, and eventually attacking the Linux kernel itself. Each lecture in the 15-week syllabus corresponds to one or more hands-on lab exercises. The labs are structured as a wargame called the Warzone, where students log in to a server and try to exploit deliberately vulnerable programs to gain access to the next account. A pre-built virtual machine disk image is provided so anyone can set up the same environment the students used. To work through this material, a student needs working knowledge of C or C++, some experience reading assembly language, and basic familiarity with the Linux command line. The course was not designed for complete beginners to programming. The repository contains lecture slides in PDF form, compiled lab binaries, and source code for all the exercises. A setup script is also included for anyone who wants to build the wargame environment from scratch on Ubuntu 14.04.

Copy-paste prompts

Prompt 1
I am working through MBE lab 1 from rpisec/mbe. Explain the 32-bit stack layout and help me write a buffer overflow exploit to control the instruction pointer.
Prompt 2
Using the MBE course wargame VM, walk me through bypassing a stack canary in a C binary to redirect execution to a shellcode payload.
Prompt 3
I am on the heap exploitation section of the MBE course. Explain how a use-after-free bug leads to code execution and show me the exploit steps.
Open on GitHub → Explain another repo

← rpisec on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.