欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

vscode下使用gcc进行Npcap网络编程开发的环境配置

程序员文章站 2022-03-03 21:56:07
目录0x01下载安装Npcap及其相关组件在官网下在Npcap的SDK以及环境支持解压、安装0x02 vscode配置vscode对于C、C++编译运行的基础环境配置vscode对Npcap编程的配置编写测试文件测试0x01下载安装Npcap及其相关组件在官网下在Npcap的SDK以及环境支持Npcap: Windows Packet Capture Library & Driver这里有四个文件Npcap 0.9997 installer for Windows 7/2008R2, 8...

0x01下载安装Npcap及其相关组件

在官网下在Npcap的SDK以及环境支持

Npcap: Windows Packet Capture Library & Driver
这里有四个文件

  • Npcap 0.9997 installer for Windows 7/2008R2, 8/2012, 8.1/2012R2, 10/2016, 2019 (x86 and x64).
  • Npcap SDK 1.05 (ZIP).
  • Npcap 0.9997 debug symbols (ZIP).
  • Npcap 0.9997 source code (ZIP).
    vscode下使用gcc进行Npcap网络编程开发的环境配置
  1. 第一个是安装环境,必要的环境安装,没有的话就会缺少驱动程序。该程序会向系统注入必要的静态链接库,这些库是程序索要调用的必要的程序;
  2. SDK是软件开发工具包,里面包含了Npcap网络编程所必要的头文件和动态链接库
  3. 第三个是调试符号包,提供了调试的符号集
  4. 第四个提供了Npcap开发的源代码,开发人员可以阅读它了解底层原理或者进行优化。
    这里将这四个文件都下载下来

解压、安装

此处以个人安装方法进行介绍,原理是不变的
建立WinNetworkProgram文件夹,以下操作均在该文件夹下进行

  1. 运行npcap-0.9997.exe安装Npcap,傻瓜式安装,不作介绍;
  2. 将SDK的内容解压出来,放在SDK文件夹下;
  3. 将源代码文件解压至Source-code文件夹下;
  4. 将符号集解压至DebugSymbols文件夹下
  5. 建立Project文件夹,我们的项目在这个文件夹中展开
  6. 建立在Project文件夹下建立srcbin文件夹,src存放你的源代码,bin存放你的生成的可执行程序

0x02 vscode配置

vscode对于C、C++编译运行的基础环境配置

  • 这部分在网络上资料很多,不作赘述,下载插件即可,建议安装C/C++ Extension Pack即可

vscode对Npcap编程的配置

  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.jsontask.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}

即成功

Code-Runner运行配置

  • 进入设置-工作区-扩展-Run Code Configuration,在settings.json中编辑Executor Map项。
  • settings.json编辑,将ccpp对应的项改为如下内容:
"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


  • Project

    • .vscode
      • c_cpp_properties.json
      • launch.json
      • settings.json
      • tasks.json
    • src
      • test.c
    • bin
      • test.exe
  • SDK

  • DebugSymbols

  • Source-code


本文地址:https://blog.csdn.net/qq_37957939/article/details/108785793