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

2.8 KiB

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/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:

mkdir -p week1/day1
touch week1/day1/hello.c

Refer to the plans/1-month-c-re-integrated.md for the full detailed schedule.