О себе
Системный C++ разработчик. Пишу на C++ и C под Windows и Linux, в основном низкоуровневое и системное: то, что близко к ядру, к компилятору и к дизассемблеру. Хорошо знаю WinAPI (Win32 Api, Windows API), COM, NTAPI и Native API. Делал многопоточные и нагруженные приложения, разбираюсь в многопоточности и синхронизации потоков, lock-free структурах, межпроцессном взаимодействии, клиент-серверной архитектуре. Есть опыт и в user mode, и в kernel mode, знаю недокументированные структуры Windows и внутренности ОС (Windows Internals). Много занимаюсь реверсом и реверс-инжинирингом, анализирую бинарный код без исходников: IDA Pro, Ghidra, x64dbg, WinDbg, OllyDbg. Читаю ассемблер x86/x64 (Assembler x86-64), ковыряю PE, разбираю крашдампы. Делал хуки, перехват функций, внедрение в процессы. Писал свой сетевой стек поверх TCP/IP и свою криптографию (AES, RSA). По инструментам: CMake, Git, Docker, STL, Boost, OpenSSL, bash. Базы: SQL, PostgreSQL. ООП, SOLID, RAII, паттерны, алгоритмы и структуры данных, юнит-тесты, рефакторинг. Python для автоматизации и скриптов под реверс. Английский C1, спокойно работаю с документацией. Хочу расти в сторону anti-cheat, антивирусов и EDR, системной разработки под Windows (user mode и kernel mode), драйверов, гипервизоров, software protection и reverse engineering.
Опыт работы
Independent R&D project
Системный разработчик C++ / Reverse Engineer
Самостоятельно веду коммерческий Windows-продукт в области защиты ПО (software protection). Делаю все в одиночку: R&D, архитектуру, код, релизы, инфраструктуру и поддержку. Платная аудитория 2500+ человек.
- Расширил backend LLVM/Clang своей calling convention. Это дало возможность вызывать произвольные функции по нестандартному ABI прямо из C++, без ассемблерных вставок и runtime-оберток. На этом держится весь системный слой продукта.
- Бинарник работает целиком на прямых syscall-вызовах через NTAPI и Native API, в обход стандартных user mode оберток (kernel32, user32, gdi32, ws2_32). Так меньше зависимостей и меньше поверхность для анализа.
- Написал сетевой стек поверх AFD (Afd.sys) через NtDeviceIoControlFile, без Winsock. Свой бинарный протокол поверх TCP/IP, гибридная криптография: AES-256 на трафик, RSA на обмен ключами, свой challenge-response для проверки сервера.
- Сделал всю lifecycle-инфраструктуру: лицензирование с привязкой к железу, трекинг активаций, удаленную ревокацию ключей, бесшовные автообновления по защищенному каналу.
- Написал кастомный UI с нуля поверх NtGdi и NtUser: ручная отрисовка через DIB sections, свой композитор окон, alpha blending, свой растеризатор шрифтов с упакованными глифами. Без GDI+, Direct2D, Qt.
- Сделал per-customer build pipeline с трехуровневой рандомизацией: препроцессинг исходников, свои LLVM passes на оптимизации, постобработка готового бинарника. Каждый экземпляр уникален на уровне инструкций.
- Тяну поддержку 2500+ платных пользователей сам: релизы, хотфиксы, телеметрия, баг-трекинг, прямое общение с клиентами.
- Постоянно использую реверс и реверс-инжиниринг (IDA Pro, x64dbg, WinDbg, Ghidra), потому что на большинство задач нет ни документации, ни готовых решений.
Образование
Санкт-Петербургский государственный университет аэрокосмического приборостроения
— 202509.03.04 Программная инженерия
Бакалавр