Хотели ли Вы когда-нибудь заглянуть под капот операционной системы, посмотреть на внутреннее устройство её механизмов, покрутить винтики и посмотреть на открывшиеся возможности? Возможно, даже хотели поработать напрямую с железом, но считали, что драйвера — rocketscience?
Предлагаю вместе пройтись по мостику в ядро и посмотреть, насколько глубока кроличья нора.
Итак, представляю драйвер-фреймворк для kernel-хакинга, написанный на C++17, и призванный, по возможности, снять барьеры между ядром и юзермодом или максимально сгладить их присутствие. А также, набор юзермодных и ядерных API и обёрток для быстрой и удобной разработки в Ring0 как для новичков, так и для продвинутых программистов.
Основные возможности:
- Доступ к портам ввода-вывода, а также проброс инструкций in, out, cli и sti в юзермод через IOPL
- Обёртки над системной пищалкой
- Доступ к MSR (Model-Specific Registers)
- Набор функций для доступа к юзермодной памяти других процессов и к памяти ядра
- Работа с физической памятью, DMI/SMBIOS
- Создание юзермодных и ядерных потоков, доставка APC
- Юзермодные Ob*** и Ps***-каллбэки и фильтры файловой системы
- Загрузка неподписанных драйверов и ядерных библиотек
… и многое другое.
Читать полностью »