day1 week1
This commit is contained in:
60
README.md
Normal file
60
README.md
Normal file
@@ -0,0 +1,60 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user