Files
c_reverse/README.md
2026-05-30 10:31:26 +02:00

61 lines
2.8 KiB
Markdown

# 1-Month Integrated C & Reverse Engineering Course
Welcome to your intensive 1-month journey into the heart of software. This course is designed to teach you **C programming** and **Reverse Engineering (RE)** simultaneously by following a "Build and Break" philosophy.
## 🎯 Goal
By the end of this month, you will not only be able to write robust C programs but also understand how they are transformed into machine code and how to analyze binaries without access to their source code.
## 🛠 Prerequisites & Tools
We will be using a Linux-based environment (x64 architecture). Ensure the following tools are installed:
- **Compiler:** `gcc`
- **Debugger:** `gdb` (highly recommended to install [GEF](https://github.com/hugsy/gef) or [Peda](https://github.com/longld/peda))
- **Static Analysis:** [Ghidra](https://ghidra-sre.org/)
- **Binary Utilities:** `objdump`, `nm`, `strings`, `readelf`
---
## 📅 Curriculum Overview
### **Week 1: The Building Blocks (Variables & Memory)**
* **Focus:** How data is stored.
* **C:** Data types, variables, scopes, and basic arithmetic.
* **RE:** CPU Registers, the Stack, and Memory Addressing.
* **Task:** Write a math program and watch variables move through registers in GDB.
### **Week 2: Control Flow & Logic**
* **Focus:** How decisions are made.
* **C:** `if/else`, `for/while` loops, and `switch` statements.
* **RE:** Jumps, Flags, and Branching logic in Assembly.
* **Task:** Build a password validator and bypass it by patching the binary.
### **Week 3: Functions & Memory Management**
* **Focus:** How programs are structured.
* **C:** Functions, Pointers, Arrays, and Memory Allocation.
* **RE:** Calling conventions, Stack Frames, and Pointer arithmetic.
* **Task:** Create a sorting algorithm and trace the memory layout during execution.
### **Week 4: Data Structures & Vulnerabilities**
* **Focus:** How complex systems work and fail.
* **C:** Structs, Unions, and Dynamic Memory.
* **RE:** Heap analysis and identifying security vulnerabilities.
* **Task:** Build a small database and exploit a controlled buffer overflow.
---
## 🔄 Daily Workflow
For every topic, we will follow this exact pattern:
1. **The Lesson:** A conceptual deep-dive into a C concept and its RE counterpart.
2. **3 Exercises:** Hands-on challenges where you write the code and analyze the binary.
3. **The Correction:** We review your implementation and deconstruct the assembly together.
4. **Documentation:** We generate a topic-specific `README.md` and a set of **Anki Cards** to ensure long-term retention.
---
## 🚀 Getting Started
To begin, create your first program in the `week1/` directory:
```bash
mkdir -p week1/day1
touch week1/day1/hello.c
```
Refer to the `plans/1-month-c-re-integrated.md` for the full detailed schedule.