Configuração de ambiente de programação e desenvolvimento de rede Npcap usando gcc sob vscode

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).
    Insira a descrição da imagem aqui
  1. 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;
  2. 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
  3. O terceiro é o pacote de símbolos de depuração, que fornece um conjunto de símbolos para depuração
  4. 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

  1. Execute e npcap-0.9997.exeinstale o Npcap, instalação à prova de erros, sem introdução;
  2. Descompacte o conteúdo do SDK e coloque SDK-o na pasta;
  3. Descompacte o arquivo do código-fonte na Source-codepasta;
  4. Descompacte o conjunto de símbolos para a DebugSymbolspasta
  5. Crie uma Projectpasta, nosso projeto é expandido nesta pasta
  6. Com base no Projectestabelecimento de pastas srce binpastas de arquivos, srcarmazene seu código-fonte, binarmazene 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 Packpode ser

configuração vscode da programação Npcap

  1. A Projectpasta vscode open, (abrir pastas)
  2. Geralmente, C/C++este plug-in criará automaticamente uma configuração para você editar; caso contrário, crie uma .vscodepasta, crie um c_cpp_properties.jsonarquivo 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.cEscreva 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.jsone task.jsonarquivar, preste atenção para verificar se o conteúdo do parâmetro dentro c_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.jsongerado 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.jsone edite os Executor Mapitens em.
  • Na settings.jsonedição ce cppcorrespondendo 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 $workspaceRootda 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
  • SDK

  • DebugSymbols

  • Código fonte


Acho que você gosta

Origin blog.csdn.net/qq_37957939/article/details/108785793
Recomendado
Clasificación