usb-hid的初步認識usb協議的資料部分在leftover capture data域之中,在mac和linux下可以用tshark命令可以將 leftover capture data單獨提取出來 命令如下:從ctf中學usb流量捕獲與解析
tshark -r usb1.pcapng -t fields -e usb.capdata > usbdata.txt
**usbkeyboard的對映表**
根據這個對映表解碼得出資料報的指令碼如下:nums =
keys =
open
('usbdata.txt'
)for line in keys:
if line[0]
!='0'
or line[1]
!='0'
or line[3]
!='0'
or line[4]
!='0'
or line[9]
!='0'
or line[10]
!='0'
or line[12]
!='0'
or line[13]
!='0'
or line[15]
!='0'
or line[16]
!='0'
or line[18]
!='0'
or line[19]
!='0'
or line[21]
!='0'
or line[22]
!='0'
:continue
int(line[6:
8],16
))keys.close(
)output =
""for n in nums:
if n ==0:
continue
else
: output +=
'[unknown]'
'output :\n'
+ output
附滑鼠流量資料報轉換指令碼
nums =
keys =
open
('data.txt'
,'r'
) posx =
0 posy =
0for line in keys:
iflen
(line)
!=12
:continue
x =int
(line[3:
5],16
) y =
int(line[6:
8],16
)if x >
127:
x -=
256if y >
127:
y -=
256
posx += x
posy += y
btn_flag =
int(line[0:
2],16
)# 1 for left , 2 for right , 0 for nothing
if btn_flag ==1:
print posx , posy
keys.close(
)
轉換後會得到一系列座標點,需要輔以gnuplot 或者其他的繪圖工具畫出即可。 記一道USB流量分析CTF題
拿到資料報使用wireshark開啟後看到protocol 為usb協議,搜到了一篇關於usb流量分析的文章 貼鏈結 從ctf中學usb流量捕獲與解析 鍵盤資料報的資料長度為8個位元組,擊鍵資訊集中在第3個位元組,每次key stroke都會產生乙個keyboard event usb packet...
一道有意思的邏輯分析題
題目 我的分析 albert 我不知道cheryl的生日,但是我知道你也不會知道。分析 說明不可能是2月21號 4月22日,所以排除2月和4月,就剩下3月和5月 bernard 一開始我也不知道cheryl的生日,現在我知道了 分析 不可能是15號,因為假設是15號,那麼可能是3月15號,或者5月1...
記一道DP題
給定 n l r 求長度為n的 且元素在 l r 的 且 陣列元素和是3的倍數的 陣列的 個數 dpmod0 表示區間內的數mod 3 0的個數 mod1 mod2 同理 dp i j 表示 長度為i的 陣列元素mod 3 為 j 的陣列的個數 如果 i 1長度的陣列和 mod 3 0 那麼我再加乙...