Eset nod32 http header http заголовки
Антивирус eset nod32 при обновлении отправляет http заголовки в которой находятся
некая информация о его настройках, а также некоторых свойствах OS.
Имея всю информацию о клиентском антивирусе nod32, ею можно манипулировать для дальнейшей работы.
Пример практического варианта.
# http_user_agent описание параметров
Разберем некоторые параметры http_user_agent
В основном несет в себе информацию о OS и установленных настройках nod32.
# | параметр | возможные значения | описание |
---|---|---|---|
APP | ess / eav / esshe / essbe / eavhe / eavbe / mobile / ... | тип программы антивируса | |
BPC | 8.0.312.3 | версия ПО | |
CD | 0/1/2 | Диагностика - дамп памяти приложения Тип дампа: отсутствие параметра - отключена диагностика 0 - не создавать дамп памяти 1 - минидамп 2 - полный дамп памяти |
|
# | CL | 1.1.1 | Eset Live Grid - система репутации. Значение по порядку: 1/0 — включена система репутации 1/0 — отправляет анонимную статистическую информацию 1/0 — отправляет файлы P.S. Многие предоставляющие свои собственные сервера обновления остерегаются включенной этой функции т.к. она палит их сервера компани eset. |
DC | 1/0 | Devices Сontrol / Контроль устройств показывает интегрирован ли в систему или нет |
|
FW | 0.0 0.10 16.0 ... |
firewall 0.0 — включен фильтруется другие значения возможно подразумевают открытые не знащищеные соединения или созданные правила вручную. 0.10 — созданные правила вручную в количестве 10 штук 16.0 — открытые не защищенные соединения в количестве 16 штук |
|
# | HWF | 0100B90D-B130-BTCG-C7A5-END2377HSB38 | Индивидуальный индификатор программы. Параметр может отсутствовать при использовании файла лицензии. |
LNG | 1049 1033 ... |
Языковая версия компонента (параметр возможно устаревший) v7, v8 - отсутствует параметр. v4, v5, v6 - используется. 1049 - русский 1033 - английский |
|
PAR | 1/0/-1 | Родительский контроль 1 — включен 0 — выключен -1 — отсутствует модуль |
|
PLOC | ru_ru en_en ... |
локация программы | |
PCODE | 110.0.0 106.0.0 ... |
код продукта «Управление подключением подписки» - cобытие для сетевой службы по управлению антивирусом на подключение и отключение услуг антивируса |
|
PUA | 1/0 | модуль: потенциально нежелательные приложения (Potentially unwanted application) (1/0 - включен/выключен) |
|
PX | 0/1 | прокси | |
OS | 6.1.7601 SP 1.0 NT ... |
версия OS весь список ver |
|
TDB | 26911 | Текущий build базы антивируса nod32. Работает в тандеме с сигнатурой БД (файл «update.ver» в секции «ENGINE2» параметр «build») Параметр присутствует во всех версиях. |
|
VDB | 21600 | (не используется) возможно аналог TDB. v7, v8 - отсутствует параметр v3, v4, v5, v6 - присутствует параметр |
|
UPD | http://server.ru:1010 | Адрес обновления гдето убрали гдето оставили, присутствует в бизнес версиях к примеру eavbe |
|
RA | 0/1 | Удаленное администрирование (Remote Administration) значение меняется при указании явного адреса сервера, независимо стоит общая галочка «подключиться» или нет. |
|
x64c x32c |
отсутствует | eset архитектура ПО 32-битная версия 64-битная версия и другие... |
# Парсер заголовка http_user_agent на php
Скрипт парсит регулярным выражением данные заголовка HTTP_USER_AGENT и преобразует в массив данных.
Приходит заголовок HTTP_USER_AGENT такой:
ESS Update (Windows; U; 32bit; PVT F; BPC 8.0.312.3; OS: 6.1.7601 SP 0.0 NT; TDB 25903; CL 1.1.1; x64c; APP ess; BEO 1; ASP 0.0; FW 0.0; PX 0; PUA 1; CD 1; RA 0; HWF: ; PLOC ru_ru; PCODE 110.0.0; PAR 0; ATH 2; DC 1)
Результат парсинга:
Array
(
[Windows] =>
[U] =>
[32bit] =>
[PVT] => F
[BPC] => 8.0.304.1
[OS] => 6.1.7601 SP 3.0 NT
[TDB] => 25903
[CL] => 1.1.1
[x64c] =>
[APP] => ess
[BEO] => 1
[ASP] => 0.0
[FW] => 0.0
[PX] => 0
[PUA] => 1
[CD] => 1
[RA] => 0
[HWF] =>
[PLOC] => ru_ru
[PCODE] => 110.0.0
[PAR] => 0
[ATH] => 2
[DC] => 1
[HTTP_X_NOD32_MODE] => passive
[HTTP_X_ESET_UPDATEID] => userName
[REQUEST_TIME] => 1428959487
[REQUEST_FILE] => update.ver
[REMOTE_ADDR] => 127.0.0.1
)
Скрипт парсинга Http_user_agent
// php5
# собираем данные об антивирусе nod32
if (!preg_match("/^ESS Update \((.*)\)$/iu",trim($_SERVER["HTTP_USER_AGENT"]))) { // проверяем, действительно ли это nod32
header($_SERVER['SERVER_PROTOCOL']." 401 Unauthorized"); // nod32 откликается на этот заголовок
exit('<h1>401 Unauthorized</h1>');
} else {
# парсим http_user_agent, и помещаем в массив
preg_match_all('/(\w+):?(?:\s+((?:\s*[^;\s]+)*))?/', substr($_SERVER["HTTP_USER_AGENT"], 12, -1), $arrUSER_AGENT);
$arrFullInfo = array_combine($arrUSER_AGENT[1], $arrUSER_AGENT[2]); // комбинируем оба массива
# дописываем в массив другие данные:
if(isset($_SERVER['HTTP_X_ESET_UPDATEID'])) $arrFullInfo['HTTP_X_ESET_UPDATEID'] = preg_replace('/[^a-zа-я0-9\s-_@#().$%+]/iu', '*', trim($_SERVER['HTTP_X_ESET_UPDATEID']));
$arrFullInfo['REQUEST_TIME'] = date("d.m.y H:i:s",$_SERVER['REQUEST_TIME']);
if(isset($_SERVER['HTTP_X_NOD32_MODE'])) $arrFullInfo['HTTP_X_NOD32_MODE'] = htmlspecialchars($_SERVER['HTTP_X_NOD32_MODE']);
if(isset($_SERVER['REQUEST_URI'])) $arrFullInfo['REQUEST_URI'] = basename(trim(htmlspecialchars($_SERVER['REQUEST_URI'])));
if(isset($_SERVER['HTTP_REFERER'])) $arrFullInfo['HTTP_REFERER'] = htmlspecialchars($_SERVER['HTTP_REFERER']);
$arrFullInfo['REMOTE_ADDR'] = filter_var($_SERVER['REMOTE_ADDR'], FILTER_VALIDATE_IP);
}
/*
Общий масив собраных данных об антивирусе nod32
@ print_r($arrFullInfo);
*/
# дополнительные http заголовки
nod32 отправляет дополнительные заголовки:
- HTTP_X_NOD32_MODE - режим передачи
- X-NOD32-Mode - режим передачи (не используется в v8, v7)
- HTTP_X_ESET_UPDATEID - имя пользователя / логин