46 lines
2.5 KiB
Python
46 lines
2.5 KiB
Python
from pcapng import FileScanner, blocks
|
|
from pcapng.blocks import EnhancedPacket
|
|
|
|
def printdata(s):
|
|
hex_bytes = [f"{i:02x}" for i in s]
|
|
return str(hex_bytes)
|
|
|
|
with open(r'', 'rb') as fp:
|
|
scanner = FileScanner(fp)
|
|
source="linux"
|
|
if source=="windows":
|
|
out=21
|
|
data_length_start=23
|
|
start_of_data=27
|
|
elif source=="linux":
|
|
out=10
|
|
data_length_start=36
|
|
start_of_data=64
|
|
|
|
for block in scanner:
|
|
if isinstance(block, EnhancedPacket):
|
|
real_length = block.packet_data[data_length_start+3] << 24 | block.packet_data[data_length_start+2] << 16 | block.packet_data[data_length_start+1] << 8 | block.packet_data[data_length_start]
|
|
try:
|
|
#print(block.packet_data[out])
|
|
#if (source=="windows" and block.packet_data[out]==0x02) or (source=="linux" and block.packet_data[out-1]==0x03):
|
|
#print("real_length=" + str(real_length))
|
|
#print("command=" + str(block.packet_data[start_of_data:]))
|
|
if 0xd6 == block.packet_data[start_of_data+12]:
|
|
print("set scan mode=" + printdata(block.packet_data[start_of_data+12+1:start_of_data+12+1 + real_length]))
|
|
elif 0xe5 == block.packet_data[start_of_data+12]:
|
|
print("set scan mode2=" + printdata(block.packet_data[start_of_data+12+1:start_of_data +12+1+ real_length]))
|
|
elif 0x2A == block.packet_data[start_of_data+12]:
|
|
print("send code=" + printdata(block.packet_data[start_of_data+12+1:start_of_data+12 +1+ real_length]))
|
|
elif 0xe1 == block.packet_data[start_of_data+12]:
|
|
print("color cal=" + printdata(block.packet_data[start_of_data+12+1:start_of_data +12+1+ real_length]))
|
|
elif 0xd8 == block.packet_data[start_of_data+12]:
|
|
print("cancel=" + printdata(block.packet_data[start_of_data+12+1:start_of_data+12+1 + real_length]))
|
|
elif 0x03 == block.packet_data[start_of_data+12]:
|
|
print("request sense=" + printdata(block.packet_data[start_of_data+12+1:start_of_data+12+1 + real_length]))
|
|
elif 0x12 == block.packet_data[start_of_data + 12]:
|
|
print("inquery code=" + printdata(
|
|
block.packet_data[start_of_data + 12 + 1:start_of_data + 12 + 1 + real_length]))
|
|
|
|
except Exception as e:
|
|
continue
|