• XSS.stack #1 – первый литературный журнал от юзеров форума

Получаем название установленновсленного антивируса через WMI

Jeffs

(L1) cache
Забанен
Регистрация
28.12.2018
Сообщения
611
Реакции
358
Пожалуйста, обратите внимание, что пользователь заблокирован
C:
#include <wbemidl.h>
#include <comutil.h>

#pragma comment(lib, "wbemuuid.lib")
#pragma comment(lib, "comsuppw.lib")

HRESULT GetInstalledAvName(LPSTR installedAv)
{
    HRESULT hr = S_OK;
    
    hr = CoInitializeEx(NULL, COINIT_MULTITHREADED);

    if (FAILED(hr))
    {
        return hr;
    }

    hr = CoInitializeSecurity(NULL, -1, NULL, NULL, RPC_C_AUTHN_LEVEL_DEFAULT, RPC_C_IMP_LEVEL_IMPERSONATE,
        NULL, EOAC_NONE, NULL);

    if (FAILED(hr))
    {
        CoUninitialize();
        return hr;
    }

    IWbemLocator* pWbemLocator = NULL;
    hr = CoCreateInstance(CLSID_WbemLocator, 0, CLSCTX_INPROC_SERVER, IID_IWbemLocator, (LPVOID*)&pWbemLocator);

    if (FAILED(hr))
    {
        CoUninitialize();
        return hr;
    }

    IWbemServices* pWbemServices = NULL;
    //в вин версиях ниже 7, вместо "root\\SecurityCenter2" - "\root\SecurityCenter", не проебитесь.
//как получить версию винды смотрите в соседней теме
    hr = pWbemLocator->ConnectServer(_bstr_t(L"root\\SecurityCenter2"), NULL, NULL, 0, NULL, 0, NULL, &pWbemServices);

    if (FAILED(hr))
    {
        pWbemLocator->Release();
        CoUninitialize();
        return hr;
    }

    IEnumWbemClassObject* pEnum;
    hr = pWbemServices->ExecQuery(bstr_t("WQL"), bstr_t("Select * From AntivirusProduct"), WBEM_FLAG_FORWARD_ONLY, NULL, &pEnum);

    if (FAILED(hr))
    {
        pWbemLocator->Release();
        pWbemServices->Release();
        CoUninitialize();
        return hr;
    }

    ULONG uObjectCount = 0;
    IWbemClassObject* pWmiObject;
    hr = pEnum->Next(WBEM_INFINITE, 1, &pWmiObject, &uObjectCount);

    if (FAILED(hr))
    {
        pWbemLocator->Release();
        pWbemServices->Release();
        pEnum->Release();
        return hr;
    }

    VARIANT vtProp;
    hr = pWmiObject->Get(L"displayName", 0, &vtProp, 0, 0);

    if (FAILED(hr))
    {
        pWbemLocator->Release();
        pWbemServices->Release();
        pEnum->Release();
        pWmiObject->Release();
        return hr;
    }

    lstrcatA(installedAv, _com_util::ConvertBSTRToString(vtProp.bstrVal));

    return TRUE;
}

Использование:

C:
int main()
{
    static char installedAv[100];
    HRESULT hr = S_OK;

    hr = GetInstalledAvName(installedAv);

    if (FAILED(hr))
    {
        printf("Getting installedAv error\n");
    }

    printf("installedAv = %s\n", installedAv);

    return 0;
}
 
Палево. АВ будут такое рубить в большинстве. Лучше будет получать список установленных драйверов и сопоставлять драйвера АВ с ним.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Палево. АВ будут такое рубить в большинстве. Лучше будет получать список установленных драйверов и сопоставлять драйвера АВ с ним.
Интересно, какие ав именно детектят? Нет возможности просканить на dyncheck
 
Интересно, какие ав именно детектят? Нет возможности просканить на dyncheck
Не помню уже. Но когда я юзал - именно из-за этой темы несколько штук детектили.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Не помню уже. Но когда я юзал - именно из-за этой темы несколько штук детектили.
Сейчас с виртуалок тестану. В этом же топике постараюсь результат выложить
 
WMI в малвари на массмаркет лучше не использовать - большое палево на рантайме будет.
Большинство значений можно из реестра вытащить, в случае с установленным по-умолчанию авером сейчас не скажу, но версию винды и прочее - запросто.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
WMI в малвари на массмаркет лучше не использовать - большое палево на рантайме будет.
Большинство значений можно из реестра вытащить, в случае с установленным по-умолчанию авером сейчас не скажу, но версию винды и прочее - запросто.
Версию винды проще через PEB получить (в соседней теме есть пример).
А как иначе получить установленный ав? Парсить установленные программы?
 
Палево. АВ будут такое рубить в большинстве. Лучше будет получать список установленных драйверов и сопоставлять драйвера АВ с ним.
На каком конкретно авере конкретно эту технику?
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх