Windows上抓包老版本用winpcap,新系统用Npcap。Npcap的sdk很完善,自带一组例程,直接打开解决方案就可以全部编译成功(sdk解压到“C:\npcap-sdk\”,不然要修改项目配置)。
我直接用里面的UDPdump改了一个程序出来,去掉了dll的延迟加载,这样如果找不到dll启动时就会报错(而不是运行挂掉)。我期望把依赖的两个dll打包到一起给别人用,这样可以免去安装Npcap的过程。
在我本机上把原来的两个dll移动到程序所在目录(dll安装在System32\Npcap),运行正常,我以为万事大吉了。拿到别的机子上一试,发现只能发现一个网卡(loopback网卡),这当然没什么用,而且程序再往下运行直接挂了。
然后安装了Npcap再运行,一切正常了。
猜测dll运行的时候还需要很多别的东西吧。
(这里是结束)