導航:首頁 > 電腦網站 > 如何抓取電腦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的數據相關的資料

熱點內容
電腦windows徽標界面後黑屏 瀏覽:715
高配置的電腦P盤速度慢 瀏覽:271
可以免費發布貸款信息的網站 瀏覽:435
聯想電腦wifi顯示一個紅叉 瀏覽:190
win7電腦拍照快捷鍵 瀏覽:449
電腦藍屏然後打不開機 瀏覽:297
電腦一年不開機 瀏覽:421
烏魯木齊哪個電腦城好 瀏覽:90
電腦開機後更換軟硬體進不去桌面 瀏覽:860
電視電腦互傳文件app 瀏覽:219
電腦連接長虹電視聲音設置 瀏覽:745
電腦防盜系統運行 瀏覽:583
電腦已經開機怎麼注冊id 瀏覽:354
電腦怎麼大寫 瀏覽:51
為什麼代駕軟體沒得蘋果版 瀏覽:408
平板電腦家長管理數字密碼 瀏覽:205
電腦壞啦去哪裡找修理 瀏覽:830
攝像頭的圖像如何在電腦上顯示的 瀏覽:852
筆記本電腦開機後有個風扇聲 瀏覽:76
電腦開機bios設置 瀏覽:444