Я пытаюсь сделать собственный Packet Sniffer на C ++, используя платформу Visual Studio, без установки какого-либо стороннего инструмента, библиотеки или программного обеспечения.Поэтому для этого я использую следующую команду:
netsh trace start persistent=yes capture=yes tracefile="<path to the file>"
Ниже приведены 3 команды, которые я попробовал.
system("netsh trace start persistent=yes capture=yes");
ShellExecute(0, "open", "cmd.exe", "netsh trace start persistent=yes capture=yes", NULL, SW_SHOW);
CreateProcessA("C:\\Windows\\System32\\netsh.exe",
"trace start persistent=yes capture=yes",
0,
0,
FALSE,
CREATE_DEFAULT_ERROR_MODE,
0,
0,
&siStartupInfo,
&piProcessInfo)
Проблема заключается в том, что командная строка просто выполняет команду netsh, а затем не распознает остальную часть команды и аргументы, следующие за netsh
, т. Е. Она не распознает часть trace start persistent=yes capture=yes
.Приветствуется любая помощь в запуске всей команды на ходу.
Если тот же анализ пакетов можно выполнить с помощью некоторой библиотеки C ++ без установки какого-либо стороннего инструмента, это также будет полезно.Любая помощь для того же самого также высоко ценится.
TIA
PS: есть способы выполнить эту команду в виде пакетного файла, но это не является частью моей постановки проблемы.