🚀 Binary Thinking: С++ & Windows
Это будет курс не про «выучить синтаксис C++» и не про очередное повторение учебника.
Мы будем разбираться, как программный код работает на самом деле — от исходника на C/C++ до машинного кода, памяти процесса, операционной системы и ядра.
Начнем с software internals и на практике посмотрим, как связаны:
→ код на C/C++
→ компилятор и линкер
→ object files
→ assembler и machine code
→ executable files
→ runtime memory
→ stack и heap
→ процессы, библиотеки и операционная система
Разберемся, что происходит с программой между моментом, когда вы нажали Build, и моментом, когда процессор начал выполнять инструкции, и какие именно он будет выполнять.
🛠 Сборка и организация проектов
Научимся работать с Visual Studio, VS Code, CMake и Makefile.
Но главное — разберемся не только как ими пользоваться, а когда какой инструмент выбирать, как их сочетать и как правильно организовывать реальный проект.
⚙️ C → C++
Отдельно перейдем от C к C++.
Я покажу, почему это не просто «C с классами», а во многом совершенно другой язык и другой способ проектирования программ.
Разберем ключевые механизмы C++ так, чтобы после курса вы могли использовать язык осознанно и уверенно.
🏗 Software Design
Будем много говорить опроектировании ПО:
OOP, архитектура, декомпозиция, интерфейсы, зависимости и design patterns.
И не просто смотреть схемы на слайдах — будем применять всё это в коде.
🐛 Debugging & Reverse Engineering
Научимся пользоваться профессиональными инструментами:
kd, cdb, gdb, Visual Studio Debugger, VS Code, системами tracing и profiling, а также декомпиляторами и другими инструментами анализа программ.
Будем смотреть, что происходит с программой не только на уровне исходного кода, но и внутри процесса и операционной системы.
🪟 Windows Internals
Отдельный большой блок посвятим Windows — одной из самых сложных современных операционных систем.
Разберемся, как она устроена, как работают процессы, память, DLL, exceptions, user mode и kernel mode и как правильно писать системный код под Windows.
Для сравнения будем регулярно заглядывать и в Linux.
🎮 Большой практический проект
С нуля спроектируем и напишем собственную игру.
На ее примере разберем полный жизненный цикл проекта:
архитектура → код → сборка → отладка → profiling → организация проекта → deployment.
Все знания курса постепенно соберем в один большой работающий проект.
🔬 Будет много экспериментов
DLL injection.
Stack overflow.
Kernel debugging.
ROP.
Запустим DOOM через pipe.
Попробуем запихнуть DOOM в driver.
И вообще будем регулярно делать вещи, после которых становится значительно понятнее, что происходит внутри компьютера
😈Я подготовил большое количество реального кода для разбора: Linux, Windows, BIOS (AMI), драйверы, приложения, шеллкоды, DOOM, GTA V и другие проекты.
Будем читать код, запускать его, отлаживать, дизассемблировать, модифицировать и исследовать его поведение.
💻 Максимум практики
Я буду прямо на занятиях писать код, экспериментировать, показывать решения из реальных проектов, что-то делать вручную, что-то вайбкодить и вместе с вами разбираться, почему один подход работает, а другой — нет.
Конечно, будем использовать и современные LLM-инструменты. Я покажу, как использую их сам: где они действительно ускоряют разработку, где ошибаются и как применять их так, чтобы они помогали понимать код, а не заменяли понимание.
🎯 Главная цель курса
Дать вам ключевые практические навыки проектирования, создания, отладки и анализа программного обеспечения.
После курса у вас должно появиться целостное понимание:
что такое C и C++ на практике, как работает программный код, что происходит внутри Windows и Linux и как все эти уровни связаны между собой.
И, конечно, я буду отвечать на вопросы и помогать разбираться со сложными темами по ходу всего курса.
Если вам интересно не простописать код, а понимать, что происходит под капотом, — этот интенсив именно про это.
Если вам это интересно прошу принять участие в предварительном голосовании, чтобы мне все спланировать.
👇👇👇
Post #654
466
- ❤ 10
- 🤮 1