Русский / Russian English / Английский

Сейчас на форуме: Beauty2017, mintolik (+3 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS ·

 eXeL@B —› Программирование —› LSP: Почему не работает с службами windows 10?
Посл.ответ Сообщение

Ранг: 3.0 (гость)
Статус: Участник

Создано: 18 февраля 2020 20:56 New!
Цитата · Личное сообщение · #1

Доброго времени суток. Из исходников msdn собрал свой firewall по технологии LSP(Layered Service Provider). Тестил на win 7 (x32,x64) - всё работает прекрасно. Даже системные процессы захватывает, такие как lsass.exe, [System]. Проблемы начались когда тесты перешли на win 10. Библиотека перестала работать с службами windows, только подхватывается обычными процессами(браузеры, игры).
После повторного, долгого и тщательного изучения документации выяснил следующее:

On Windows Vista and later, an LSP can be classified based on how it interacts with Windows Sockets calls and data. An LSP category is an identifiable group of behaviors on a subset of Winsock SPI functions. For example, an HTTP content filter would be categorized as a data inspector (the LSP_INSPECTOR category).
An LSP may belong to more than one category. For example, a firewall/security LSP could belong to both the inspector (LSP_INSPECTOR) and firewall (LSP_FIREWALL) categories.

If an LSP does not have a category set, it is considered to be in the All Other category. This LSP category will not be loaded in services or system processes (for example, lsass, winlogon, and many svchost processes).

Источник: https://docs.microsoft.com/en-us/wi...ng-layered-service-providers-and-applications

Чтобы заставить библиотеку работать с системными службами(services), я добавил следующий код в инсталляторе(после вызова WSCInstallProviderAndChains):
Code:
  1. DWORD lspCategory = 0xFFFFFFFF;
  2.        // DWORD lspCategory = LSP_SYSTEM | LSP_FIREWALL | LSP_INSPECTOR; // | LSP_REDIRECTOR | LSP_PROXY | ;
  3.             //| LSP_INBOUND_MODIFY | LSP_OUTBOUND_MODIFY | LSP_CRYPTO_COMPRESS; // | LSP_LOCAL_CACHE;
  4.  
  5.         fprintf(stderr, "category: %d \n", lspCategory);
  6.         fprintf(stderr, "sizeof: %zd \n", sizeof(lspCategory));
  7.         rc = WSCSetProviderInfo(providerGuid, ProviderInfoLspCategories, (PBYTE)&lspCategory, sizeof(lspCategory), NULL, &error);
  8.         if (rc == SOCKET_ERROR) {
  9.             fprintf(stderr, "InstallProviderVista: %s failed: %d\n",
  10.                 "WSCSetProviderInfo32", error);
  11.             goto cleanup;
  12.         }

Я пробовал значение lspCategory менять на LSP_SYSTEM, LSP_FIREWALL... на 0xFFFFFFFF. Пробовал просто оставить NULL. Но, увы мои попытки не увенчались успехом. Прошу помощи у тех, кто может разбирался в этом и знает в чем проблема?

Ранг: -4.9 (нарушитель)
Статус: Участник

Создано: 18 февраля 2020 22:01 New!
Цитата · Личное сообщение · #2

А я бы написал в поддержку майкрософт они должны помогать.

Ранг: 3.0 (гость)
Статус: Участник

Создано: 18 февраля 2020 22:15 New!
Цитата · Личное сообщение · #3

SDK-2 Спасибо, попробую как вариант, может еще кто-то что-то подскажет?

Ранг: 37.0 (посетитель)
Статус: Участник

Создано: 18 февраля 2020 23:39 New!
Цитата · Личное сообщение · #4

Может быть проблема в подписи dll: винда не хочет подозрительные библиотеки подгружать в некоторые системные процессы?

Ранг: 70.8 (постоянный)
Статус: Участник

Создано: 19 февраля 2020 00:10 · Поправил: sefkrd New!
Цитата · Личное сообщение · #5

Говоря иначе - тебе не дадут писать свой фаер на 10.. Только гуишки..
И вот ответ: "If an LSP does not have a category set, it is considered to be in the All Other category. This LSP category will not be loaded in services or system processes (for example, lsass, winlogon, and many svchost processes)"
Как прогеру - не перевожу ))


Ранг: 69.3 (постоянный)
Статус: Участник

Создано: 19 февраля 2020 08:35 New!
Цитата · Личное сообщение · #6

sefkrd пишет:
И вот ответ: "If an LSP does not have a category set, it is considered to be in the All Other category. This LSP category will not be loaded in services or system processes (for example, lsass, winlogon, and many svchost processes)"

Возможно предположу глупость, но если дублировать токен, к примеру lsass и имперсонировать или в PEB замаскировать процесс под winlogon (LdrEnumerateLoadedModules) к примеру или в комплексе?
В зависимости от того, как эту категорию винда проверяет.

Ранг: 3.0 (гость)
Статус: Участник

Создано: 20 февраля 2020 17:08 New!
Цитата · Личное сообщение · #7

Спасибо большое всем кто подкинул варианты, я проверю и отпишусь;)

Ранг: 1.3 (гость)
Статус: Участник

Создано: 24 февраля 2020 04:41 · Поправил: Storage New!
Цитата · Личное сообщение · #8

// On Windows Vista and later there is a new LSP install function
// (WSCInstallProviderAndChains) that performs all necessary installation
// steps in a single call (instead of multiple WSCInstallProvider calls).
// This function dynamically loads the function and invokes it to install
// the LSP. The function either expects a NULL list of WSAPROTOCOL_INFOW
// structures in which case it installs the LSP over each unique address
// family, socket type, and protocol base provider on the system. Otherwise,
// if the pdwCatalogIdArray specifies exact providers, this function builds
// a list of those provider structures in which case the install API installs
// the LSP over each instance of the address family, socket type and protocol
// specified in the array.

Ранг: 3.0 (гость)
Статус: Участник

Создано: 29 февраля 2020 18:49 New!
Цитата · Личное сообщение · #9

Storage, неа.

Ранг: 142.8 (ветеран)
Статус: Участник

Создано: 1 марта 2020 07:07 New!
Цитата · Личное сообщение · #10

Тебе там черным по белому написали что это depricated с вин8 и используй WFP. Что за дурость и упорство достойное барана? Никакие твои длл никуда не подгрузятся ни в какие системные процессы - это by design.
 eXeL@B —› Программирование —› LSP: Почему не работает с службами windows 10?

Видеокурс ВЗЛОМ