Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.86/21: Рейтинг темы: голосов - 21, средняя оценка - 4.86
3 / 3 / 1
Регистрация: 07.09.2019
Сообщений: 259

Програмная установка драйвера

12.09.2022, 23:07. Показов 4627. Ответов 39
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <windows.h>
#include <setupapi.h>
#include <stdio.h>
 
BOOL GetRegAdd(CHAR* regKey, LPVOID regValue, DWORD dwType);
int EntryPoint() {
 
    UINT ErrorLine;
    BOOL bRes = FALSE;
    BOOL FileWasInUse = FALSE;
 
    LPCSTR szSourceFileName = "C:\\Users\\added\\desktop\\Drivers\\npcap.inf";
    LPCSTR szInfFileName = "npcap.inf";
    PVOID Context = 0;
    SC_HANDLE manager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
    if (manager)
    {
        GetRegAdd((CHAR*)"ErrorControl", (LPVOID)0x00000001, REG_DWORD);
        GetRegAdd((CHAR*)"Start", (LPVOID)0x00000001, REG_DWORD);
        GetRegAdd((CHAR*)"ImagePath", (LPVOID)"\\SystemRoot\\system32\\DRIVERS\\npcap.sys", REG_EXPAND_SZ);
        GetRegAdd((CHAR*)"Group", (LPVOID)"NDIS", REG_SZ);
        GetRegAdd((CHAR*)"DisplayName", (LPVOID)"@oem85.inf,%NPF_Desc_Standard%;Npcap Packet Driver (NPCAP)", REG_SZ);
        GetRegAdd((CHAR*)"Description", (LPVOID)"@oem85.inf,%NPF_Desc_Standard%;Npcap Packet Driver (NPCAP)", REG_SZ);
    }
    else
    {
 
        return FALSE;
    }
    HINF HInf = SetupOpenInfFileA(szInfFileName, NULL, INF_STYLE_WIN4, &ErrorLine);
 
    LPCSTR  SourceFile = "npcap.sys";
    LPCSTR SourcePathRoot = "C:\\Users\\added\\desktop\\Drivers\\";
    LPCSTR DestinationName = "C:\\WINDOWS\\system32\\drivers\\npcap.sys";
    SC_HANDLE service;
    if (SetupInstallFileExA(HInf, NULL, SourceFile, SourcePathRoot, DestinationName, SP_COPY_NEWER_OR_SAME, NULL, Context, &FileWasInUse) == NULL)
        service = CreateServiceA(manager, "THEDRIVER", "THEDRIVER", SERVICE_ALL_ACCESS, SERVICE_KERNEL_DRIVER, SERVICE_AUTO_START, SERVICE_ERROR_NORMAL, DestinationName, NULL, NULL, NULL, NULL, NULL);
    else return FALSE;
    BOOL result = StartService(service, 0, NULL);
    
    DWORD dwVal = GetLastError();
    CloseServiceHandle(manager);
    SetupCloseInfFile(HInf);
    return TRUE;
}
 
BOOL GetRegAdd(CHAR* regKey, LPVOID regValue, DWORD dwType)
{
    DWORD Status;
    HKEY hKey;
 
    Status = RegOpenKeyExA(HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\Services\\npcap", 0, KEY_ALL_ACCESS | KEY_WOW64_64KEY, &hKey);
    if (Status != ERROR_SUCCESS)
    {
        return FALSE;
    }
    if (dwType == REG_SZ) {
        Status = RegSetValueExA(hKey, regKey, NULL, dwType, (LPBYTE)regValue, (lstrlenA(regKey) + 1) * sizeof(CHAR));
    }
    else if (dwType == REG_EXPAND_SZ) {
        Status = RegSetValueExA(hKey, regKey, NULL, dwType, (LPBYTE)regValue, (lstrlenA(regKey) + 1) * sizeof(CHAR));
    }
    else if (dwType == REG_DWORD) {
        Status = RegSetValueExA(hKey, regKey, NULL, dwType, (LPBYTE)regValue, sizeof(DWORD));
    }
    if (Status != ERROR_SUCCESS) {
        return FALSE;
    }
    RegCloseKey(hKey);
    return TRUE;
}
нгаписал вот такой код, но он падает на вот этой строке

C++
1
  if (SetupInstallFileExA(HInf, NULL, SourceFile, SourcePathRoot, DestinationName, SP_COPY_NEWER_OR_SAME, NULL, Context, &FileWasInUse) == NULL)
несовсем понимаю почему , помогите пожалуйста
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.09.2022, 23:07
Ответы с готовыми решениями:

Установка winusb драйвера из приложения
Здравствуйте. Пишу приложение, работающее с программаторами подключенными по USB. Программа в процессе работы выполняет следующие...

Установка драйвера MySQL
Всем доброго времени суток. Я столкнулся с 2 проблемами, при установке драйвера mysql. 1)Кода пытался загрузить драйвер в QT, выводится ...

Автоматическая установка драйвера устройства
Всем здравствуйте. Передо мной встала следующая задача: Имеется драйвер для устройства(2 файла расширением inf и cat) и само устройство....

39
16.09.2022, 16:48
Студворк — интернет-сервис помощи студентам

Не по теме:

QueryMonkey, в ХР сп2 вроде , что-то такое помню; но начиная с висты, вроде проблем не должно быть.
По лимитам - опять же, в ХР был момент с ограничением к-тва одновременных подключений; сейчас это не актуально также.

0
3 / 3 / 1
Регистрация: 07.09.2019
Сообщений: 259
16.09.2022, 19:38  [ТС]
https://a174.ru/raw-socket-windows-10/

Limitations on Raw Sockets
On WindowsВ 7, WindowsВ Vista, WindowsВ XP with Service PackВ 2 (SP2), and WindowsВ XP with Service PackВ 3 (SP3), the ability to send traffic over raw sockets has been restricted in several ways:

Добавлено через 1 минуту
https://docs.microsoft.com/en-... -sockets-2
0
Нарушающий
417 / 305 / 46
Регистрация: 13.04.2022
Сообщений: 1,759
16.09.2022, 19:48
Да, припоминаю. Чтобы не слали спуфнутый исходный адрес.

addedie, вам IP_PROTO подходит без фреймов? Спуфить не будете? тогда возможно RAW для вас.
1
3 / 3 / 1
Регистрация: 07.09.2019
Сообщений: 259
17.09.2022, 00:04  [ТС]
нет мне нужна именно NPcap

Добавлено через 1 минуту
кстати
C++
1
#pragma function( memset)
должно быть написанно перед функцией или можно просто в начале кода?
0
Нарушающий
417 / 305 / 46
Регистрация: 13.04.2022
Сообщений: 1,759
17.09.2022, 00:22
Вверху файла можно. Это выключает одну из оптимизаций.

Добавлено через 9 минут
С опозданием, я почитал https://npcap.com/. Оказывается, они в крайних версиях винды перешли на NDIS6/LFW, что отличается от протокол-драйвера который обсуждался раннее в этой теме. Поэтому там также фигурирует npcap_wfp.inf

Вохможно, что ваш код - это пример для NDIS 5.x (WinXP) ?
1
3 / 3 / 1
Регистрация: 07.09.2019
Сообщений: 259
17.09.2022, 00:52  [ТС]
какой именно код, то что я писал выше устанавливает драйвер npcap.sys, и причем здесь npcap_wfp.inf ? хотите сказать нужно устанавливать именно из него? то что они перешли на NDIS6 я знаю но какой мне с этого прок?

после установки инсталятором в папке драйверов появляется именно npcap.sys

Добавлено через 2 минуты
у меня попрежнему невидно сервиса в списке служб и попрежнему недоступны адаптеры в коде с сдк нпкап

Добавлено через 1 минуту
и да обсуждался именно NPcap.sys
0
 Аватар для Morgot
336 / 129 / 18
Регистрация: 26.12.2010
Сообщений: 501
17.09.2022, 00:59
addedie, посмотрите здесь, https://xakep.ru/2021/09/24/ddos-windows/ тут инфа про ддос, но примеры идут вроде по этому драйверу ?
1
3 / 3 / 1
Регистрация: 07.09.2019
Сообщений: 259
17.09.2022, 01:06  [ТС]
РАЗРАБОТКА
Мы можем соз­дать прог­рамму для экс­плу­ата­ции уяз­вимос­ти сер­веров Memcached, DDoS с уси­лени­ем. Преж­де все­го нуж­но нас­тро­ить рабочую сре­ду.

Ус­танав­лива­ем необ­ходимый драй­вер (есть вер­сия для Windows 10, она под­держи­вает боль­ше интерфей­сов).
Ска­чива­ем биб­лиоте­ку Winpcap Developers Pack.
Под­клю­чаем биб­лиоте­ку в про­ект.

https://www.winpcap.org/install/
тут нерассматривается установка самого драйвера програмным методом а именно из своего кода.

задача именно в том что бы установиться библиотеку своим кодом а не инсталятором.


как работать с библиотекой я и так знаю.

как раз NPcap и имелась ввиду как версия для виндовс 10
0
Нарушающий
417 / 305 / 46
Регистрация: 13.04.2022
Сообщений: 1,759
17.09.2022, 01:39
Согласно сайту WinPCap, это протокол драйвер (NDIS5). Он устанавливается как протокол.
NCAP для Вин7 и новее - это LFW драйвер (NDIS6). Он устанавливается как фильтр драйвер.

Если вы применяете процедуру установки от WinPCAP (протокол) к новому NCAP (НЕ протокол), установка не пройдет.
1
3 / 3 / 1
Регистрация: 07.09.2019
Сообщений: 259
17.09.2022, 02:39  [ТС]
с чего вы взяли что я применяю процедуру установки WinPCAP? я устанавливаю NPcap обычным метод установки драйвера, если я делаю это неправильно приведите код правильный...я уже даже отладчиком пробовал с инсталятора слизать код но там нечего непонятно все слишком запутанно для меня
0
3 / 3 / 1
Регистрация: 07.09.2019
Сообщений: 259
17.09.2022, 23:32  [ТС]
ну как так неужели никто неустанавливал эти самые фильтр драйверы

Добавлено через 1 минуту
кажись мне всетаки удалось его установить но он невидит адаптеры и незапускает службу, хотя лупбэк адаптер видт нормально
0
 Аватар для Morgot
336 / 129 / 18
Регистрация: 26.12.2010
Сообщений: 501
18.09.2022, 00:19
Цитата Сообщение от addedie Посмотреть сообщение
задача именно в том что бы установиться библиотеку своим кодом а не инсталятором.
Хз, видимо надо реверсить инсталятор, там какие-то еще дллки есть, они тоже копируются. Как проверить, какие интерфейсы видит драйвер?

вообще, этот форум по винапи, а по драйверам есть отдельный https://www.cyberforum.ru/drivers-programming/
я так-то в винапи хорошо разбираюсь, но сугубо Ring3
1
3 / 3 / 1
Регистрация: 07.09.2019
Сообщений: 259
18.09.2022, 02:42  [ТС]
я написал туда но там молчат уже неделю, дллки я копирую все в порядке с ними ну а проверить адаптеры вот так

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <stdlib.h>
#include <stdio.h>
 
#include <pcap.h>
 
int main(int argc, char** argv)
{
    pcap_if_t* alldevs;
    pcap_if_t* d;
    int i = 0;
    char errbuf[PCAP_ERRBUF_SIZE];
    /* Retrieve the device list from the local machine */
    if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING,
        NULL /* auth is not needed */,
        &alldevs, errbuf) == -1)
    {
        printf("Error in pcap_findalldevs_ex: %s\n", errbuf);
        exit(1);
    }
 
    /* Print the list */
    for (d = alldevs; d != NULL; d = d->next)
    {
        printf("%d. %s", ++i, d->name);
        if (d->description)
            printf(" (%s)\n", d->description);
        else
            printf(" (No description available)\n");
    }
 
    if (i == 0)
    {
        printf("\nNo interfaces found! Make sure Npcap is installed.\n");
        return;
    }
 
    /* We don't need any more the device list. Free it */
    pcap_freealldevs(alldevs);
 
}
Добавлено через 35 секунд
и к сожалению в реверсе я не силён
0
 Аватар для Morgot
336 / 129 / 18
Регистрация: 26.12.2010
Сообщений: 501
18.09.2022, 19:19
addedie, в общем, сначала я открыл инсталятор и тупо скопировал оттуда драйвер и дллки. Но, были ошибки, то чего-то не находило, то возвращался пустой массив.. Короче. Сделал так - взял виртуалку с вин7. Установил туда нормально (инсталлером) всю эту фигню, проверил, вывело 2 адаптера (норм). Скопировал npf.sys и 3 дллки (Packet.dll , pthreadVC.dll и wpcap.dll) куда-то в отдельную папку. Восстановил виртуалку. Установил драйвер через CreateService, а дллки тупо скопировал . И - пример вот выше, про pcap, заработал как и при "нормальной установке".

В инсталляторе есть три версии драйвера и 5 версий дллок, вероятно просто нужно как-то определять, под какую ОС какой идет. Надо реверсить инсталлер.
1
3 / 3 / 1
Регистрация: 07.09.2019
Сообщений: 259
19.09.2022, 01:16  [ТС]
npf.sys это WinPcap насколько я знаю, конечно он встанет на вин 7 , я тоже так ставил и все работало, а вот npcap.sys установить на вин 10 неудается там както подругому...и тут только реверс и поможет...я так понимаю вы винпкап ставили на 7ку? надо было 10 установить и туда НПкап ставить, с семеркой у меня проблем нету какраз поповоду винпкап, этоже разные библиотеки и винпкап уже неподдерживается на вин 10 драйвер тупо невстанет так как версия не та...

когда я поступаю таким же методом с НПкап то у меня тоже выводится один адаптер но не все остальные, один лупбэк а это вовсе не то что надо, я пробовал копироват ьключи из реестра и вставлять их поновой на нулевой системе но мне это непомогло

Добавлено через 5 минут
для семерки есть замечательная реализация установщика https://github.com/taherfattahi/winpcap-installer
но это "WinPcap", а нужно "NPcap" это разные библиотеки совместимые между собой по SDK
0
 Аватар для Morgot
336 / 129 / 18
Регистрация: 26.12.2010
Сообщений: 501
19.09.2022, 13:02
addedie, попробую сегодня вот это https://npcap.com/#download
а в чем разница , в плане для работы - функционал вроде такой же или нет?
1
3 / 3 / 1
Регистрация: 07.09.2019
Сообщений: 259
19.09.2022, 23:37  [ТС]
функционал тотже но мне надо для виндовс10, а то что вы устанавливали до этого для виндов7 и ниже
0
3 / 3 / 1
Регистрация: 07.09.2019
Сообщений: 259
24.09.2022, 22:16  [ТС]
ну что там, получилось что то?
0
 Аватар для Morgot
336 / 129 / 18
Регистрация: 26.12.2010
Сообщений: 501
25.09.2022, 18:19
addedie, не особо, на десятке оно еще в реестре чето меняет; просто копирование нужных файлов нифига не дало.
1
3 / 3 / 1
Регистрация: 07.09.2019
Сообщений: 259
26.09.2022, 09:43  [ТС]
вот и я о том же
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.09.2022, 09:43

Библиотека qtSQL установка драйвера на linux
Имеется arm устройство с linux 2.6 Имеется qt embedded 4.5.2 сконфигурированный для сборки под имеющееся устройство. Сейчас...

Програмная установка прокси для всех браузеров
Как настроить прокси на своём компьютере так, что в какой бы браузер не вошёл, там уже применяется соединение через прокси .. это что то по...

Установка Windows7 на ноутбук Expert Line, установка драйвера для жесткого диска
Здравствуйте. Сейчас устанавливаю Win7 home basic, на ноутбук производителя Expert Line модели ELU0914 с хардом hitachi hts5450a7e380. При...

Установка драйвера NVidia зависает на "Установка Аудиодрайвер HD"
Каждый раз, как я устанавливаю драйвера NVidia, установка зависает на &quot;Установка Аудиодрайвер HD&quot;! Помогите, пожалуйста!!!

Установка драйвера
Взял видеокарту Gygabyte 1050 там только цифровые выходы сигналов, пока что подключился через графическое ядро материнки через VGA (так как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru