índice
0x01 baixar e instalar Npcap e componentes relacionados
SDK e suporte de ambiente em Npcap no site oficial
Npcap: Windows Packet Capture Library & Driver
Existem quatro arquivos aqui
- Instalador Npcap 0.9997 para Windows 7 / 2008R2, 8/2012, 8.1 / 2012R2, 10/2016, 2019 (x86 e x64).
- Npcap SDK 1.05 (ZIP).
- Npcap 0.9997 símbolos de depuração (ZIP).
- Código-fonte Npcap 0.9997 (ZIP).
- O primeiro é o ambiente de instalação, o ambiente necessário está instalado, caso contrário, o driver estará ausente. O programa injetará as bibliotecas de link estático necessárias no sistema, que são programas necessários que o programa pede para chamar;
- SDK é um kit de desenvolvimento de software, que contém os arquivos de cabeçalho necessários e bibliotecas de link dinâmico para programação de rede Npcap
- O terceiro é o pacote de símbolos de depuração, que fornece um conjunto de símbolos para depuração
- O quarto fornece o código-fonte desenvolvido pela Npcap. Os desenvolvedores podem lê-lo para entender o princípio subjacente ou otimizá-lo.
Baixe esses quatro arquivos aqui
Descompacte e instale
O método de instalação pessoal é apresentado aqui. O princípio é criar uma pasta inalterada e as seguintes operações são realizadas nesta pasta
WinNetworkProgram
- Execute e
npcap-0.9997.exe
instale o Npcap, instalação à prova de erros, sem introdução; - Descompacte o conteúdo do SDK e coloque
SDK
-o na pasta; - Descompacte o arquivo do código-fonte na
Source-code
pasta; - Descompacte o conjunto de símbolos para a
DebugSymbols
pasta - Crie uma
Project
pasta, nosso projeto é expandido nesta pasta - Com base no
Project
estabelecimento de pastassrc
ebin
pastas de arquivos,src
armazene seu código-fonte,bin
armazene seu programa executável resultante
0x02 configuração vscode
Configuração de ambiente básico vscode para compilação e operação C e C ++
- Isso faz parte de muita informação na rede, pra não repetir, você pode baixar o plug, a instalação proposta
C/C++ Extension Pack
pode ser
configuração vscode da programação Npcap
- A
Project
pasta vscode open, (abrir pastas) - Geralmente,
C/C++
este plug-in criará automaticamente uma configuração para você editar; caso contrário, crie uma.vscode
pasta, crie umc_cpp_properties.json
arquivo nela e preencha o seguinte código:
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/..//SDK/Include/**",
"${workspaceFolder}/../SDK/Include",
"${workspaceFolder}/src/**",
"${workspaceFolder}/src"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"compilerPath": "D:\\etc\\MinGW\\bin\\gcc.exe",
"cStandard": "gnu18",
"cppStandard": "gnu++14",
"intelliSenseMode": "gcc-x64",
"compilerArgs": [
"-L${workspaceFolder}/../SDK/Lib",
"-lwpcap",
"-lPacket"
]
}
],
"version": 4
}
Salvar e sair.
Grave arquivos de teste
test.c
Escreva o seguinte código no arquivo:
#include "pcap.h"
#include <stdio.h>
int main()
{
char errbuf[PCAP_ERRBUF_SIZE];//存放错误信息的缓冲
pcap_if_t *it;
int r;
r=pcap_findalldevs(&it,errbuf);
if(r==-1)
{
printf("err:%s\n",errbuf);
exit(-1);
}
while(it)
{
printf(":%s\n",it->name);
it=it->next;
}
}
- O programa imprime uma lista de todas as placas de rede da máquina
teste
- Pressione F5para depurar o código, a primeira depuração irá gerar
launch.json
etask.json
arquivar, preste atenção para verificar se o conteúdo do parâmetro dentroc_cpp_properties.json
é o mesmo da configuração anterior , ou seja, esta parte
"compilerArgs": [
"-L${workspaceFolder}/../SDK/Lib/",
"-lwpcap",
"-lPacket"
]
De um modo geral, este arquivo é c_cpp_properties.json
gerado com base nele e não haverá grandes problemas.
- Após gerar o arquivo, pressione novamente F5para depurar e executar. Observe que você precisa depurar e executar para chamar a biblioteca de vínculo dinâmico
- Existem as seguintes informações no console
Microsoft Windows [版本 10.0.19041.508]
(c) 2020 Microsoft Corporation. 保留所有权利。
D:\home\xxxx\WinNetworkProgram> cmd /C "c:\Users\xxx\.vscode\extensions\ms-vscode.cpptools-1.0.1\debugAdapters\bin\WindowsDebugLauncher.exe --stdin=Microsoft-MIEngine-In-340uippl.fhl --stdout=Microsoft-MIEngine-Out-ekoupmwk.30e --stderr=Microsoft-MIEngine-Error-jpdvtcwn.bxf --pid=Microsoft-MIEngine-Pid-xdcenvcj.2rm --dbgExe=D:\etc\MinGW\bin\gdb.exe --interpreter=mi "
:\Device\NPF_{
456C0DB7-9C02-48CE-BF9C-D0201D93A39B}
:\Device\NPF_{
65EB5D2F-C7FD-4DAB-B591-042BF9295C9B}
:\Device\NPF_{
D235884A-3C87-4777-9B9C-9AF186C3BADF}
Sucesso
Configuração de execução do Code-Runner
- Vá para Configurações-Área de Trabalho-Extensão-Executar Configuração de Código
settings.json
e edite osExecutor Map
itens em. - Na
settings.json
ediçãoc
ecpp
correspondendo aos seguintes itens:
"c": "cd $dir && gcc $fileName -o $workspaceRoot\\bin\\$fileNameWithoutExt -L$workspaceRoot\\..\\SDK\\Lib -lwpcap -lPacket && cd $workspaceRoot\\bin\\ && $fileNameWithoutExt",
"cpp": "cd $dir && g++ $fileName -o $workspaceRoot\\bin\\$fileNameWithoutExt -L$workspaceRoot\\..\\SDK\\Lib -lwpcap -lPacket && cd $workspaceRoot\\bin\\ && $fileNameWithoutExt",
- Desta forma, você pode usar diretamente o plug-in Code Runner para executar o código diretamente.Para não afetar o processo de compilação de outros programas de projeto, a configuração é modificada no espaço de trabalho
- Aqui está o
$workspaceRoot
da configuração anterior${workspaceFloder}
- A estrutura de arquivos desenvolvida é a seguinte:
WinNetworkProgram
-
Projeto
- .vscode
- c_cpp_properties.json
- launch.json
- settings.json
- tasks.json
- src
- test.c
- bin
- test.exe
- .vscode
-
SDK
-
DebugSymbols
-
Código fonte