Установка драйвера

Тема в разделе "WASM.BEGINNERS", создана пользователем Fail, 17 янв 2018.

  1. Fail

    Fail Active Member

    Публикаций:
    0
    Регистрация:
    14 мар 2012
    Сообщения:
    503
    Всем доброго времени)

    Какие есть способы устоновить драйвер в систему?:)

    ЗЫ

    x64 венда
     
  2. unc1e

    unc1e Active Member

    Публикаций:
    2
    Регистрация:
    28 июл 2017
    Сообщения:
    287
    Код (C):
    1. int LoadDriver()
    2. {
    3.     wchar_t ErrCode[50];
    4.  
    5.     SC_HANDLE sch = OpenSCManager(0, 0, SC_MANAGER_ALL_ACCESS);
    6.     if (!sch)
    7.     {
    8.         swprintf_s(ErrCode, 50, L"%d", GetLastError());
    9.         MessageBox(0, ErrCode, L"(1)Error OpenSCManager...", MB_OK | MB_ICONERROR);
    10.         return 0;
    11.     }
    12.  
    13.     wchar_t DriverPath[MAX_PATH];
    14.     if (_WinMain.isLongMode)
    15.         GetFullPathName(DRIVER_PATH64, MAX_PATH, DriverPath, NULL);
    16.     else
    17.         GetFullPathName(DRIVER_PATH, MAX_PATH, DriverPath, NULL);
    18.  
    19.     SC_HANDLE schService = CreateService(sch,
    20.         SERVICE_NAME, SERVICE_NAME, SERVICE_ALL_ACCESS, SERVICE_KERNEL_DRIVER,
    21.         SERVICE_DEMAND_START, SERVICE_ERROR_NORMAL, DriverPath, 0, 0, 0, 0, 0);
    22.     if (!schService)
    23.     {
    24.         if (GetLastError() != ERROR_SERVICE_EXISTS)
    25.         {
    26.             swprintf_s(ErrCode, 50, L"%d", GetLastError());
    27.             MessageBox(0, ErrCode, L"(1)Error CreateService (1)...", MB_OK | MB_ICONERROR);
    28.             return 0;
    29.         }
    30.  
    31.         UnloadDriver();
    32.         schService = CreateService(sch,
    33.             SERVICE_NAME, SERVICE_NAME, SERVICE_ALL_ACCESS, SERVICE_KERNEL_DRIVER,
    34.             SERVICE_DEMAND_START, SERVICE_ERROR_NORMAL, DriverPath, 0, 0, 0, 0, 0);
    35.         if (!schService)
    36.         {
    37.             swprintf_s(ErrCode, 50, L"%d", GetLastError());
    38.             MessageBox(0, ErrCode, L"(1)Error CreateService (2)...", MB_OK | MB_ICONERROR);
    39.             return 0;
    40.         }
    41.     }
    42.  
    43.     if (!StartService(schService, 0, 0))
    44.     {
    45.         swprintf_s(ErrCode, 50, L"%d", GetLastError());
    46.         MessageBox(0, ErrCode, L"(1)Error StartService...", MB_OK | MB_ICONERROR);
    47.         return 0;
    48.     }
    49.  
    50.     if (!CloseServiceHandle(schService))
    51.     {
    52.         swprintf_s(ErrCode, 50, L"%d", GetLastError());
    53.         MessageBox(0, ErrCode, L"(1)Error CloseServiceHandle (1)...", MB_OK | MB_ICONERROR);
    54.         return 0;
    55.     }
    56.  
    57.     if (!CloseServiceHandle(sch))
    58.     {
    59.         swprintf_s(ErrCode, 50, L"%d", GetLastError());
    60.         MessageBox(0, ErrCode, L"(1)Error CloseServiceHandle (2)...", MB_OK | MB_ICONERROR);
    61.         return 0;
    62.     }
    63.  
    64.     return 1;
    65. }
    + вот тут в архиве есть скрип disabletestsigning, который отключит проверку цифровой подписи https://github.com/unc1e/ZwClicker/releases/download/1.0.0/ZwClicker.zip
     
    Fail нравится это.
  3. Fail

    Fail Active Member

    Публикаций:
    0
    Регистрация:
    14 мар 2012
    Сообщения:
    503
    Спасибо.. Так.. Через SCM, NtLoadDriver, OpenProcess(работает на вин10, кто нить проверял?), далее есть DIF фреймворк с функами DiInstallDevice\Driver(кстати никто не копался внутри них, какой сис механизм юзается?)

    Какие исчо способы?
     
  4. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.568
    Адрес:
    Russia
    Буткит, Inf Файлы, уязвимые драйвера
     
    Fail нравится это.
  5. unc1e

    unc1e Active Member

    Публикаций:
    2
    Регистрация:
    28 июл 2017
    Сообщения:
    287
    Глянул - там прослойка к setupapi.dll вроде как, внутри семпл, что скинул выше, правда всяким дерьмом обернутый
     
  6. Fail

    Fail Active Member

    Публикаций:
    0
    Регистрация:
    14 мар 2012
    Сообщения:
    503
    UPD

    Да, способ с CreateFile ("\\\\.\\FltMgr и DeviceIoControl все еще робит на вин10 ?
     
  7. Fail

    Fail Active Member

    Публикаций:
    0
    Регистрация:
    14 мар 2012
    Сообщения:
    503
    О! Верно, метод TDL, да.

    Значит через SCM...