Skip to content

TumGovic/TodayDrivers

Repository files navigation

TodayDrivers

Отдельно вынесенный нативный драйверный контур из TodayClient.

Это не новый самостоятельный продукт, а snapshot исходников и скриптов, которые раньше жили внутри TodayClient. Набор собран для публикации в open source и для сохранения самой наработки отдельно от основного клиента.

Изначально всё это делалось под TodayClient, но в практическом смысле ветка уже не выглядит как хороший релизный путь: для нормального распространения kernel-mode драйвера на современных Windows нужен Microsoft signing flow, а значит локальная test-signing схема остаётся в основном исследовательским и dev-сценарием.

Что лежит в репозитории

Здесь сохранён не только todaywfp, но и соседние компоненты нативного policy-stack:

  • native/todaywfp/
    • kernel-mode WFP callout driver
    • INF, headers, Visual Studio project, MSBuild shim
  • native/today-policy-svc/
    • Windows service / control-plane для policy mode
    • управление baseline, policy, redir и IPC
  • native/today-redir/
    • локальный redirect proxy для TCP/UDP сценариев
  • packaging/driver/todaywfp.package.json
    • driver manifest и GUID source-of-truth
  • scripts/packaging/Invoke-TodayWfp.ps1
    • основной build/sign/install script для драйвера
  • scripts/packaging/Set-DriverHostMode.ps1
    • host-mode helper для driver scenario
  • scripts/packaging/Invoke-PolicyService.ps1
    • сборка, установка и управление TodayPolicySvc
  • scripts/packaging/Start-PolicyStack-Manual.ps1
    • ручной старт user-mode policy stack при уже запущенном драйвере
  • INSTALL-TODAYWFP.cmd
    • wrapper для build -> sign -> install-dev
  • UNINSTALL-TODAYWFP.cmd
    • wrapper для удаления dev-установки драйвера
  • CHECK-TODAYWFP-ENV.cmd
    • быстрая проверка driver build/install окружения
  • START-POLICY-STACK.cmd
    • wrapper для старта policy service / redir части

Почему эта наработка сейчас скорее архивная

Эта ветка делалась под TodayClient, но для публичной доставки собственного kernel-mode драйвера на Windows 11 и соседних конфигурациях нужен не "просто собрать .sys", а нормальный маршрут через Microsoft signing.

Практически это означает:

  • локальная test-signing схема подходит для лаборатории, reverse/debug и dev-циклов
  • для нормального публичного распространения нужен Microsoft Hardware Dev Center flow
  • attestation signing требует EV certificate и отдельный процесс публикации

Из-за этого текущая наработка уже не особенно нужна как "готовый прикладной драйвер для релиза", но она всё ещё полезна как:

  • исходники
  • прототип архитектуры
  • reference implementation для TodayClient

Официальные ссылки Microsoft:

  • Driver signing overview: https://learn.microsoft.com/en-us/windows-hardware/drivers/install/driver-signing
  • Attestation signing: https://learn.microsoft.com/en-us/windows-hardware/drivers/dashboard/code-signing-attestation
  • Driver code signing requirements: https://learn.microsoft.com/en-us/windows-hardware/drivers/dashboard/code-signing-reqs
  • Test signing: https://learn.microsoft.com/en-us/windows-hardware/drivers/install/test-signing

Что сознательно не перенесено

В standalone-папку специально не включены:

  • локальные build output каталоги
  • target/ для Rust crates
  • staged artifacts
  • локальный распакованный WDK NuGet payload
  • готовые test certificates из исходного проекта
  • GUI/Tauri часть TodayClient
  • bundled sing-box.exe и остальной app-level release payload

Логика простая: здесь должны лежать именно исходники и обслуживающие скрипты нативного контура, а не локальный мусор сборки или готовая доставка основного приложения.

Структура

TodayDrivers/
  README.md
  .gitignore
  CHECK-TODAYWFP-ENV.cmd
  INSTALL-TODAYWFP.cmd
  UNINSTALL-TODAYWFP.cmd
  START-POLICY-STACK.cmd
  native/
    today-policy-svc/
    today-redir/
    todaywfp/
  packaging/
    driver/
      todaywfp.package.json
  scripts/
    packaging/
      Invoke-PolicyService.ps1
      Invoke-TodayWfp.ps1
      Set-DriverHostMode.ps1
      Start-PolicyStack-Manual.ps1

Быстрый старт

1. Проверка окружения драйвера

CHECK-TODAYWFP-ENV.cmd

2. Сборка и dev-установка драйвера

Запускать из elevated shell:

INSTALL-TODAYWFP.cmd

Этот wrapper:

  • проверяет окружение
  • при отсутствии локального test certificate создаёт его
  • собирает todaywfp.sys
  • подписывает его локальной test certificate
  • выполняет install-dev

3. Старт user-mode части policy stack

Если нужен не только драйвер, но и соседний сервисный контур:

START-POLICY-STACK.cmd

Этот шаг предполагает, что TodayWfp уже установлен и запущен. Скрипт собирает и при необходимости ставит TodayPolicySvc, а затем поднимает policy-service и today-redir.

4. Удаление dev-установки драйвера

UNINSTALL-TODAYWFP.cmd

Требования

  • Windows
  • PowerShell
  • Visual Studio 2022 с C/C++ toolchain
  • Windows SDK
  • WDK
  • Rust toolchain для today-policy-svc и today-redir
  • elevated shell для установки драйвера и сервисов

Ограничения

  • Это не production-ready public driver package.
  • Это не готовый retail installer.
  • Без Microsoft signing эта схема остаётся в основном dev/test-наработкой.
  • Имена TodayWfp, TodayPolicySvc, TodayClient и связанные GUID сохранены в исходном виде, потому что это extract из исходного проекта.
  • Полный original runtime TodayClient здесь не восстановлен один-в-один: GUI и release payload намеренно не переносились.

Для чего это подходит

Этот каталог годится как:

  • отдельный архив исходников нативного драйверного контура
  • база для open source публикации
  • reference snapshot того, как эта часть была устроена внутри TodayClient

Если превращать это в реально независимый проект, следующий этап уже будет таким:

  • отвязать naming от TodayClient
  • вычистить service/provider/product identifiers
  • добавить отдельную лицензию
  • собрать самостоятельный release/install flow
  • отдельно решить вопрос с Microsoft signing

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors