This project is part of the security branch at 42 School. It focuses on reverse engineering and basic binary exploitation techniques.
Rainfall is a series of challenges that introduces various security concepts and vulnerabilities in binary executables. Each level requires analyzing and exploiting different security flaws to obtain the password for the next level.
- Reverse Engineering
- Assembly Language
- Buffer Overflows
- Format String Vulnerabilities
- Basic Binary Exploitation
- GDB Debugging
- Memory Management
The project consists of multiple levels (level0 through level9 + bonus), each presenting a unique challenge:
- Each level contains a binary executable
- The goal is to exploit the binary to obtain the password for the next level
- Various exploitation techniques are required to progress
- GDB (GNU Debugger)
- objdump
- Ghidra/IDA Pro (optional)
- Python for exploit development
- Linux command line tools
- Connect to the VM provided for the project
- Each level can be accessed using the password obtained from the previous level
- Use analysis tools to understand the binary's behavior
- Develop and execute exploits to progress
- Always make backups of your work
- Document your solutions and approaches
- Practice responsible security testing
- Follow the project guidelines and restrictions
- Assembly Language Documentation
- GDB Tutorial
- Buffer Overflow Guide
- Format String Vulnerability Documentation
This project is part of the 42 School curriculum and is meant for educational purposes only.