vscode에서 gcc를 사용한 Npcap 네트워크 프로그래밍 및 개발의 환경 구성

0x01 다운로드 및 Npcap 및 관련 구성 요소 설치

공식 웹 사이트에서 Npcap의 SDK 및 환경 지원

Npcap : Windows 패킷 캡처 라이브러리 및 드라이버
여기에 4 개의 파일이 있습니다.

  • Windows 7 / 2008R2, 8/2012, 8.1 / 2012R2, 10/2016, 2019 (x86 및 x64) 용 Npcap 0.9997 설치 프로그램.
  • Npcap SDK 1.05 (ZIP).
  • Npcap 0.9997 디버그 기호 (ZIP).
  • Npcap 0.9997 소스 코드 (ZIP).
    여기에 사진 설명 삽입
  1. 첫 번째는 설치 환경이며 필요한 환경이 설치되어 있지 않은 경우 드라이버가 누락됩니다. 프로그램은 필요한 정적 링크 라이브러리를 시스템에 삽입합니다.이 라이브러리는 프로그램이 호출하도록 요청하는 필수 프로그램입니다.
  2. SDK는 Npcap 네트워크 프로그래밍에 필요한 헤더 파일과 동적 링크 라이브러리를 포함하는 소프트웨어 개발 키트입니다.
  3. 세 번째는 디버깅을위한 심볼 세트를 제공하는 디버깅 심볼 패키지입니다.
  4. 네 번째는 Npcap에서 개발 한 소스 코드를 제공하며 개발자는이를 읽어서 기본 원리를 이해하거나 최적화 할 수 있습니다.
    여기에서 4 개의 파일을 다운로드하십시오.

압축 해제 및 설치

여기에서는 개인 설치 방법을 소개합니다. 원칙적 으로 폴더를 변경하지 않고
생성 WinNetworkProgram하고이 폴더 아래에서 다음 작업을 수행합니다.

  1. npcap-0.9997.exeNpcap을 실행하고 설치 하십시오 .
  2. SDK 내용의 압축을 풀고 SDK폴더에 넣습니다.
  3. 소스 코드 파일을 Source-code폴더에 압축 해제하십시오 .
  4. DebugSymbols폴더에 기호 세트의 압축을 풉니 다.
  5. Project폴더를 생성하면 프로젝트가이 폴더에 확장됩니다.
  6. 를 기반으로 Project폴더의 설립 srcbin파일 폴더, src소스 코드를 저장, bin당신의 결과 실행 프로그램을 저장

0x02 vscode 구성

C 및 C ++ 컴파일 및 작동을위한 vscode 기본 환경 구성

  • 이것은 네트워크에 대한 많은 정보의 일부입니다, 반복하지 마십시오, 당신은 플러그를 다운로드 할 수 있습니다, 제안 된 설치 C/C++ Extension Pack가 될 수 있습니다

Npcap 프로그래밍의 vscode 구성

  1. Project폴더 vscode의 개방 (오픈 폴더)
  2. 일반적 C/C++으로이 플러그인은 편집 할 수있는 구성을 자동으로 생성합니다. 그렇지 않은 경우 .vscode폴더를 생성하고 그 안에 c_cpp_properties.json파일 을 생성 하고 다음 코드를 입력합니다.
{
    
    
    "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
}

저장 및 종료.

테스트 파일 작성

test.c파일에 다음 코드 작성합니다.

#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;

  }
}
  • 이 프로그램은 기기의 모든 네트워크 카드 목록을 인쇄합니다.

테스트

  • 를 눌러 F5코드를 디버그하면 첫 번째 디버깅이 생성 launch.json되고 task.json파일 이 생성 되며 내부 매개 변수 내용 c_cpp_properties.json이전 구성 , 즉이 부분과 동일한 지 확인하는 데주의를 기울 입니다.
"compilerArgs": [
                "-L${workspaceFolder}/../SDK/Lib/",
                "-lwpcap",
                "-lPacket"
            ]

일반적으로이 파일은이 c_cpp_properties.json를 기반으로 생성되며 큰 문제는 없습니다.

  • 파일을 생성 한 후 다시 F5눌러 디버그 및 실행합니다. 동적 링크 라이브러리를 호출하려면 디버그하고 실행해야합니다.
  • 콘솔에 다음 정보가 있습니다.
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}

성공

코드 실행기 실행 구성

  • 설정-작업 영역-확장-실행 코드 구성으로 이동하여 항목을 settings.json편집 하십시오 Executor Map.
  • 에서 settings.json편집 c하고 cpp다음 항목에 해당하는 :
"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",
  • 이런 식으로 Code Runner 플러그인을 직접 사용하여 코드를 직접 실행할 수 있습니다. 다른 프로젝트 프로그램의 컴파일 프로세스에 영향을주지 않도록 작업 공간에서 구성을 수정합니다.
  • 다음은 $workspaceRoot이전 구성의 것입니다.${workspaceFloder}
  • 개발 된 파일 구조는 다음과 같습니다.

WinNetworkProgram


  • 계획

    • .vscode
      • c_cpp_properties.json
      • launch.json
      • settings.json
      • tasks.json
    • src
      • test.c
    • 큰 상자
      • test.exe
  • SDK

  • 디버그 기호

  • 소스 코드


추천

출처blog.csdn.net/qq_37957939/article/details/108785793