а, що показує блокувати всі чи ні (buf, bufSize, f) ;//Пропускаємо перший пустий строкуi ;//лічильник цікловbuffer = 0 ;//буфер для зчитування
// Блокування по IP (i = 0; i
{(f, "% d", & buffer) ;//cчітиваем i-ий адресу =
} (buf, bufSize, f) ;//Прочитуємо порожній рядок
// Блокування по порту (i = 0; i
{(f, "% d", & buffer) ;//cчітиваем i-ий порт БД =
} (buf, bufSize, f) ;//Прочитуємо порожній рядок
// Блокування за додатками (i = 0; i
{(buf, bufSize, f) ;//cчітиваем i-е додаток БД
buf [strlen (buf) -1] = ' 0'; = AddFilter (subLayerGUID, engineHandle, 0, buf); (filterID! = -1) (filterFile, "% d n ", filterID);
} (filterFile); (f);
# pragma endregion
}
// Додавання фільтра на подуровеньAddFilter (GUID subLayerGUID, HANDLE engineHandle, UINT32 cond, char * str)
{result = NULL;
# pragma region Створення фільтра_FILTER0_ myFilter = {0}; id = NULL; (& myFilter, sizeof (myFilter)); _FILTER_CONDITION0 condition;. action.type = FWP_ACTION_BLOCK;. subLayerKey = subLayerGUID;. weight.type = FWP_EMPTY;. layerKey =
{. numFilterConditions = 0; ("Added all blocked filter. n");
}
{. numFilterConditions = 1;. filterCondition = &condition;
if (str == "IP")
{_V4_ADDR_AND_MASK addr ;//адреса, який потрібно додати в фільтр
addr.addr = cond;. mask = 0xffffffff; ("Added IP:% d n", addr.addr);. fieldKey = = &addr; p align="justify">}
{
if (str == "Port")
{port = cond ;//порт, який потрібно додати в фільтр
printf ("Added port:% d n", port);. fieldKey =
}
{_t * app = new wchar_t [bufSize];
swprintf (app, L "% S", str) ;//додаток, який потрібно додати в фільтр
FWP_BYTE_BLOB * applicationID = NULL; = FwpmGetAppIdFromFileName0 (app, & applicationID); (result! = ERROR_SUCCESS)
{("Add application "% s "failed with error:% d. n n", str, result); -1;
} ("Added application:% s n", str);. fieldKey =
}
}
}
# pragma endregion
# pragma region Додавання фільтра = FwpmFilterAdd0 (engineHandle, & myFilter, NULL, & id); (result! = ERROR_SUCCESS)
{("Filter Added failed with error:% d n n", result); -1;
}
...