Перейти к содержимому

Константин Никулин

Системный разработчик C++ / Reverse Engineer

Middle Санкт-Петербург, Россия
3 г. 4 мес. опыта 44 навыка

О себе

Системный 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

02.2023 — по н.в. 3 г. 4 мес.

Системный разработчик C++ / Reverse Engineer

Middle Удалённо

Самостоятельно веду коммерческий 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), потому что на большинство задач нет ни документации, ни готовых решений.

Образование

Санкт-Петербургский государственный университет аэрокосмического приборостроения

— 2025

09.03.04 Программная инженерия

Бакалавр

Навыки

C++ C Assembler x86/x64 x86-64 LLVM/Clang Windows Internals NTAPI Native API WinAPI Win32 Api COM AFD многопоточность Multithreading lock-free клиент-сервер криптография AES RSA TCP/IP Reverse Engineering реверс-инжиниринг IDA Pro x64dbg WinDbg Ghidra Git CMake Docker STL Boost ООП Алгоритмы и структуры данных SQL PostgreSQL Python Linux POSIX OpenSSL bash SOLID RAII юнит-тесты рефакторинг

Языки

Русский Родной
Английский C1 — Продвинутый

Личные данные

Возраст 23 года
Гражданство Россия
Ссылка скопирована