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 or Peda) - Static Analysis: Ghidra
- 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/whileloops, andswitchstatements. - 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:
- The Lesson: A conceptual deep-dive into a C concept and its RE counterpart.
- 3 Exercises: Hands-on challenges where you write the code and analyze the binary.
- The Correction: We review your implementation and deconstruct the assembly together.
- Documentation: We generate a topic-specific
README.mdand a set of Anki Cards to ensure long-term retention.
🚀 Getting Started
To begin, create your first program in the week1/ directory:
mkdir -p week1/day1
touch week1/day1/hello.c
Refer to the plans/1-month-c-re-integrated.md for the full detailed schedule.
Description
Languages
C
100%