导航:首页 > 电脑网站 > 如何抓取电脑usb的数据

如何抓取电脑usb的数据

发布时间:2022-05-21 16:01:17

怎么给usb转的网口抓包

启动wireshark后,选择工具栏中的快捷键(红色标记的按钮)即可Start a new live capture。

主界面上也有一个interface list(如下图红色标记1),列出了系统中安装的网卡,选择其中一个可以接收数据的的网卡也可以开始抓包。
在启动时候也许会遇到这样的问题:弹出一个对话框说 NPF driver 没有启动,无法抓包。在win7或Vista下找到C: \system\system32下的cmd.exe 以管理员身份运行,然后输入 net start npf,启动NPf服务。
重新启动wireshark就可以抓包了。

抓包之前也可以做一些设置,如上红色图标记2,点击后进入设置对话框,具体设置如下:
Interface:指定在哪个接口(网卡)上抓包(系统会自动选择一块网卡)。
Limit each packet:限制每个包的大小,缺省情况不限制。
Capture packets in promiscuous mode:是否打开混杂模式。如果打开,抓 取所有的数据包。一般情况下只需要监听本机收到或者发出的包,因此应该关闭这个选项。
Filter:过滤器。只抓取满足过滤规则的包。
File:可输入文件名称将抓到的包写到指定的文件中。
Use ring buffer: 是否使用循环缓冲。缺省情况下不使用,即一直抓包。循环缓冲只有在写文件的时候才有效。如果使用了循环缓冲,还需要设置文件的数目,文件多大时回卷。
Update list of packets in real time:如果复选框被选中,可以使每个数据包在被截获时就实时显示出来,而不是在嗅探过程结束之后才显示所有截获的数据包。
单击“OK”按钮开始抓包,系统显示出接收的不同数据包的统计信息,单击“Stop”按钮停止抓包后,所抓包的分析结果显示在面板中,如下图所示:

为了使抓取的包更有针对性,在抓包之前,开启了QQ的视频聊天,因为QQ视频所使用的是UDP协议,所以抓取的包大部分是采用UDP协议的包。
3、对抓包结果的说明
wireshark的抓包结果整个窗口被分成三部分:最上面为数据包列表,用来显示截获的每个数据包的总结性信息;中间为协议树,用来显示选定的数据包所属的协议信息;最下边是以十六进制形式表示的数据包内容,用来显示数据包在物理层上传输时的最终形式。

使用wireshark可以很方便地对截获的数据包进行分析,包括该数据包的源地址、目的地址、所属协议等。

上图的数据包列表中,第一列是编号(如第1个包),第二列是截取时间(0.000000),第三列source是源地址(115.155.39.93),第四列destination是目的地址(115.155.39.112),第五列protocol是这个包使用的协议(这里是UDP协议),第六列info是一些其它的信息,包括源端口号和目的端口号(源端口:58459,目的端口:54062)。

中间的是协议树,如下图:

通过此协议树可以得到被截获数据包的更多信息,如主机的MAC地址(Ethernet II)、IP地址(Internet protocol)、UDP端口号(user datagram protocol)以及UDP协议的具体内容(data)。

最下面是以十六进制显示的数据包的具体内容,如图:

这是被截获的数据包在物理媒体上传输时的最终形式,当在协议树中选中某行时,与其对应的十六进制代码同样会被选中,这样就可以很方便的对各种协议的数据包进行分析。
4、验证网络字节序
网络上的数据流是字节流,对于一个多字节数值(比如十进制1014 = 0x03 f6),在进行网络传输的时候,先传递哪个字节,即先传递高位“03”还是先传递低位“f6”。 也就是说,当接收端收到第一个字节的时候,它是将这个字节作为高位还是低位来处理。
下面通过截图具体说明:

最下面是物理媒体上传输的字节流的最终形式,都是16进制表示,发送时按顺序先发送00 23 54 c3 …00 03 f6 …接收时也按此顺序接收字节。
选中total length:1014, 它的十六进制表示是0x03f6, 从下面的蓝色选中区域可以看到,03在前面,f6在后面,即高字节数据在低地址,低字节数据在高地址(图中地址从上到下从左到右依次递增),所以可知,网络字节序采用的是大端模式。

如何获取USB的pid跟vid等信息

查看方法:
打开设备管理器,右键USB设备--属性--详细信息--设备范例id。
根据USB规范的规定,所有的USB设备都有供应商ID(VID)和产品识别码(PID),主机通过不同的VID和PID来区别不同的设备,VID和PID都是两个字节长,其中,供应商ID(VID)由供应商向USB执行论坛申请,每个供应商的VID是唯一的,PID由供应商自行决定,理论上来说,不同的产品、相同产品的不同型号、相同型号的不同设计的产品最好采用不同的PID,以便区别相同厂家的不同设备。
VID和PID通常情况下有两种存储方式,
第一种是主控生产商的VID和PID,存储在主控的bootcode中;
第二种是设备生产商的VID和PID,该VID和PID存储在主控外部的非易失性存储设备中(EEPROM或Flash)的设备固件中,当USB设备连接主机时,如果固件中有设备生产商的VID和PID,会将该VID和PID报告给主机,而忽略主控生产商的VID和PID。
所以理论上一个USB存储设备的VID应该是设备生产商的VID,而不是主控生产商的VID,这两个VID应该是不同的(主控生产商自己生产的设备除外)。
由于VID和PID重复并不会对产品的使用带来严重影响,很多USB设备生产商(山寨厂居多)为了方便,并不会向USB执行论坛申请自己的VID,而是依然沿用主控生产商的VID或随便向产品写入VID和PID;
同时,正规厂家只需要申请VID,PID由厂家自行确定,所以存在相同型号的产品,可能采用了不同的主控(商业需要,很正常),而的PID是一样的,基于上述原因通过VID和PID就不能准确识别USB设备的主控型号,这个问题大家在使用USB设备的过程中需要注意。

㈢ C#如何获取由USB输入的数据

1、获取一个指定类别或全部类别的所有已安装设备的信息
[DllImport("setupapi.dll", SetLastError = true)]
private static extern IntPtr SetupDiGetClassDevs(ref Guid ClassGuid, uint Enumerator, IntPtr HwndParent, DIGCF Flags);

2、枚举指定设备信息集合的成员,并将数据放在SP_DEVINFO_DATA中
[DllImport("setupapi.dll", SetLastError = true)]
private static extern bool SetupDiEnumDeviceInfo(IntPtr DeviceInfoSet, uint MemberIndex, SP_DEVINFO_DATA DeviceInfoData);

3、获取设备的接口
[DllImport("setupapi.dll", SetLastError = true, CharSet = CharSet.Auto)]
private static extern bool SetupDiEnumDeviceInterfaces(IntPtr deviceInfoSet,SP_DEVINFO_DATA deviceInfoData,ref Guid interfaceClassGuid,int memberIndex,SP_DEVICE_INTERFACE_DATA deviceInterfaceData);

4、获取接口的详细信息 必须调用两次 第1次返回长度 第2次获取数据
[DllImport("setupapi.dll", SetLastError = true, CharSet = CharSet.Auto)]
private static extern bool (IntPtr deviceInfoSet,SP_DEVICE_INTERFACE_DATA deviceInterfaceData,IntPtr deviceInterfaceDetailData,int deviceInterfaceDetailDataSize,ref int requiredSize,SP_DEVINFO_DATA deviceInfoData);

5、获取指定设备的属性
[DllImport("setupapi.dll", SetLastError = true)]
private static extern bool (IntPtr DeviceInfoSet, SP_DEVINFO_DATA DeviceInfoData, SPDRP Property, uint PropertyRegDataType, StringBuilder PropertyBuffer, uint PropertyBufferSize, IntPtr RequiredSize);

6、获取USB接口信息
[DllImport("hid.dll")]
private static extern void HidD_GetHidGuid(ref Guid HidGuid);
[DllImport("kernel32.dll", SetLastError = true)]
private static extern SafeFileHandle CreateFileA(string lpFileName, uint dwDesiredAccess, uint dwShareMode, IntPtr lpSecurityAttributes, uint dwCreationDisposition, uint dwFlagsAndAttributes, IntPtr hTemplateFile);

㈣ 如何抓取USB网卡数据

新版wireshark

㈤ C#如何获取USB串口设备的数据

System.IO.Ports中有一个SerialPort 类你可以研究一下
给你个代码看看吧
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Windows;
6 using System.Windows.Controls;
7 using System.Windows.Data;
8 using System.Windows.Documents;
9 using System.Windows.Input;
10 using System.Windows.Media;
11 using System.Windows.Media.Imaging;
12 using System.Windows.Navigation;
13 using System.Windows.Shapes;
14 using System.IO.Ports;
15
16 namespace CsharpComm
17 {
18 /// <summary>
19 /// Window1.xaml 的交互逻辑
20 /// </summary>
21 public partial class Window1 : Window
22 {
23 public Window1()
24 {
25 InitializeComponent();
26 }
27
28 //定义 SerialPort对象
29 SerialPort port1;
30
31 //初始化SerialPort对象方法.PortName为COM口名称,例如"COM1","COM2"等,注意是string类型
32 public void InitCOM(string PortName)
33 {
34 port1 = new SerialPort(PortName);
35 port1.BaudRate = 9600;//波特率
36 port1.Parity = Parity.None;//无奇偶校验位
37 port1.StopBits = StopBits.Two;//两个停止位
38 port1.Handshake = Handshake.RequestToSend;//控制协议
39 port1.ReceivedBytesThreshold = 4;//设置 DataReceived 事件发生前内部输入缓冲区中的字节数
40 port1.DataReceived += new (port1_DataReceived);//DataReceived事件委托
41 }
42
43 //DataReceived事件委托方法
44 private void port1_DataReceived(object sender, SerialDataReceivedEventArgs e)
45 {
46 try
47 {
48 StringBuilder currentline = new StringBuilder();
49 //循环接收数据
50 while (port1.BytesToRead > 0)
51 {
52 char ch = (char)port1.ReadByte();
53 currentline.Append(ch);
54 }
55 //在这里对接收到的数据进行处理
56 //
57 currentline = new StringBuilder();
58 }
59 catch(Exception ex)
60 {
61 Console.WriteLine(ex.Message.ToString());
62 }
63
64 }
65
66 //打开串口的方法
67 public void OpenPort()
68 {
69 try
70 {
71 port1.Open();
72 }
73 catch { }
74 if (port1.IsOpen)
75 {
76 Console.WriteLine("the port is opened!");
77 }
78 else
79 {
80 Console.WriteLine("failure to open the port!");
81 }
82 }
83
84 //关闭串口的方法
85 public void ClosePort()
86 {
87 port1.Close();
88 if (!port1.IsOpen)
89 {
90 Console.WriteLine("the port is already closed!");
91 }
92 }
93
94 //向串口发送数据
95 public void SendCommand(string CommandString)
96 {
97 byte[] WriteBuffer = Encoding.ASCII.GetBytes(CommandString);
98 port1.Write(WriteBuffer, 0, WriteBuffer.Length);
99 }
100
101 //调用实例
102 private void btnOpen_Click(object sender, RoutedEventArgs e)
103 {
104 //我现在用的COM1端口,按需要可改成COM2,COM3
105 InitCOM("COM1");
106 OpenPort();
107 }
108 }
109 }

㈥ 怎么用C++程序提取USB口获取的数据

  1. 首先你的传感器支持吗?有驱动程序不?或者自己写,

  2. 可以用CreateFile来读取USB的数据的,直接读取管道就可以了,但是前提是你的传感器有驱动代码支持,比如主机来要数据了,你往pipe里面填充数据。

  3. windows ddk有usbbluk的例子,可以看看,如果你的sensor支持块pipe,会直接改一下pid_vid就可以用那个exe测试了

㈦ 怎么样采集电脑软件和USB设备之间的传输数据,并且可以对数据进行编写。

关注好几天了,也没人回答,本来想学习下的,帮着抛砖引玉
我说说想法,电脑usb连接iphone,itunes软件通过u口读写,调用苹果公布的API函数,获取手机版本、型号等参数,同步应该也是API调用,里面有存储内容的信息。
如果你查找资料,也许能找到这些API的使用参数(应该是苹果给开发者提供的接口,好像免费吧)
就能开发软件模拟itunes获取信息
不过欺骗,我想itunes是读取u口信息,你除非弄个软件模拟u口,让它误认为你这个就是真实的手机,也许行。
以上都是猜想的,希望高手现身,让大家都学习学习

㈧ 怎么抓USB无线上网卡的包

1、安装wireshark软件(网络搜索至官网下载即可,开源免费的)
2、允许wireshark软件,选择抓取数据包网卡为USB网卡
3、点击开始抓包,即可开始抓包
4、数据包可以按需进行保存或者筛选进行分析
注意安装的时候以管理员身份运行软件,安装好后打开软件的时候以管理员身份打开

阅读全文

与如何抓取电脑usb的数据相关的资料

热点内容
电脑插网线网速与连wifi比较 浏览:875
mac电脑安装linux 浏览:37
笔记本电脑带光驱吗 浏览:71
苹果隐藏自带软件 浏览:714
网络电脑里的打印机 浏览:345
电脑莫名生成个bak文件 浏览:840
索尼笔记本电脑小键盘切换 浏览:843
电脑开机每次都要进行一次自检 浏览:117
魅族用什么电脑软件 浏览:266
云顶串流和云电脑哪个流畅 浏览:117
拼多多商家版手机电脑版怎么安装 浏览:410
手提电脑打不开机 浏览:584
往笔记本电脑里倒茶水的视频 浏览:477
电脑任务栏颜色怎么改 浏览:580
笔记本电脑线多少kg 浏览:352
台式电脑无线网怎么看 浏览:313
电脑虚拟机共享怎么设置的 浏览:241
怎么用电脑给手机打电话 浏览:152
电脑版拼多多买家版如何安装 浏览:879
牛人改造旧笔记本电脑 浏览:906