The Kernel-Bridge framework

Тема в разделе "WASM.SOURCES & 2LZ", создана пользователем HoShiMin, 1 окт 2018.

Метки:
  1. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.422
    Адрес:
    Россия, Нижний Новгород
    Фреймворк для свободной работы в Ring0 на C++17.

    Возможности:
    • Работа с портами ввода-вывода, проброс в юзермод через IOPL
    • Работа с памятью (физической и виртуальной - юзермодной и ядерной) - чтение/запись/маппинг
    • MSR
    • Создание ядерных и юзермодных потоков
    • Доставка APC из ядра
    • Загрузка неподписанных драйверов (без поддержки SEH)
    • Отправка ядерных каллбэков в юзермод (Ob*** и Ps***)
    • Исполнение произвольного кода в Ring0 из юзермодной памяти, поддержка SMEP
    • Парсер PE-файлов
    • Парсер PDB
    • API и обёртки над системными функциями для ядра и юзермода без зависимостей
    https://github.com/HoShiMin/Kernel-Bridge
     
  2. superakira

    superakira Guest

    Публикаций:
    0
    HoShiMin, приятный код.
    на вскидку - можно ли запилить имя девайса чтобы не захардкожено было а под систему?
    почему фильтр, а не легаси простое, зачем депенденсы в виде FltMgr (ясно что он есть везде), плюс инсталить проще обычный.
    ну и по блокировке - раз там разошелся так, было бы круто и на пушлоках увидеть.

    но так очень кулл!! спасибо что поделился.
     
  3. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.422
    Адрес:
    Россия, Нижний Новгород
    Имя девайса можно таскать из реестра. Думаю, добавлю возможность поменять имя, когда сделаю для реестра удобные классы.
    Фильтр - потому что в планах юзермодные фильтры на файловую систему и девайсы (по аналогии с Ps*** и Ob***-каллбэками), плюс, FltMgr необходим для Communication-портов. Но инсталлить можно и как обычный драйвер, просто не будут доступны юзермодные фильтры.
    Для пушлоков - тоже напишу, но чуть попозже