алу Хакер.
(<# "justify"> Додаток
Вихідний код консольного програми
# include "stdafx.h"
# include
# include
# include
# include
# include "winreg.h"
# define bufSize 100
# pragma comment (lib, "fwpuclnt.lib")
# pragma region ПрототіпиAddAllFilters (GUID subLayerGUID, HANDLE engineHandle); AddFilter (GUID subLayerGUID, HANDLE engineHandle, UINT32 cond, char * str); AddFilter (GUID subLayerGUID, HANDLE engineHandle, GUID guid); DelFilter (HANDLE engineHandle); DelFilter (HANDLE engineHandle, GUID ID); DelSubLayer (HANDLE engineHandle, GUID _idSubLayer); CloseSeans (HANDLE engineHandle); AutoStart ();
# pragma endregion_tmain (int argc, char * argv [])
{result ;//Результат виробленої операції. У разі успіху Error_SuccessengineHandle = NULL ;//Основний двигун процесу
# pragma region Відкриття сеансу = FwpmEngineOpen0 (, _C_AUTHN_WINNT,,,
& engineHandle); (result! = ERROR_SUCCESS)
{("Engine Open failed with error:% d n", result); ("pause");;
} ("Engine Opened successfully! n");
# pragma endregion
# pragma region Додавання підрівня
// GUID {6AE8A860-A30E-4253-80A1-C1807E17AAFC} subLayerGUID = {0x6ae8a860, 0xa30e, 0x4253, {0x80, 0xa1, 0xc1, 0x80, 0x7e, 0x17, 0xaa, 0xfc}};
FWPM_SUBLAYER0 * mySubLayer = {0}; // Подуровень, в який будемо прописувати наші фільтри
// Перевірка на існування підрівня з даними GUID
result = FwpmSubLayerGetByKey0 (engineHandle, & subLayerGUID, & mySubLayer); (result! = ERROR_SUCCESS)
{= new FWPM_SUBLAYER0 ();> subLayerKey = subLayerGUID;> flags = FwpmSubLayerAdd0 (engineHandle, mySubLayer, NULL); (result! = ERROR_SUCCESS)
{("SubLayer Added failed with error:% d n", result); (engineHandle);;
} ("SubLayer Added successfully! n");
} ("SubLayer is already exist. n");
# pragma endregion
# pragma region Додавання фільтрів
if (! (argc> 1))// Консоль відкривається з автозапуску
{
// Додаємо нові основні фільтри (subLayerGUID, engineHandle);
printf ("Filters added successfully! n");
}// Консоль відкривається з GUI-оболонки