1. TCP抓包原理
1.1. TCP/IP协议
- 建立连接:三次握手
- 关闭连接:四次挥手
1.2. WireShark使用
下载
https://www.wireshark.org/download.html
https://www.wireshark.org/download/win32/all-versions/
使用
为了更好的理解在整个TCP会话期间,TCP序列号和确认号是如何工作的,我们可以使用Wireshark内置的绘制流功能,选择菜单栏中的 Statistics ->Flow Graph...->TCP flow ->OK
Wireshark会自动创建一个TCP流的图形摘要
每行代表一个单独的TCP包,左边列显示时间,中间列显示包的方向、TCP端口、段长度和设置的标志位,右边列以10进制的方式显示相关序列号/确认号,在这里选中任意行会高亮主窗口中该行所关联的包
注:新版本中 统计 >> 流量图
1.3. 编程实现
WinPcap (windows packet captrue)
很多不同的工具软件使用Winpcap于网络分析,故障排除,网络安全监控等方面。Winpcap特别适用于下面这几个经典领域:
1、网络及协议分析
2、网络监控
3、通信日志记录
4、traffic generators
5、用户级别的桥路和路由
6、网络入侵检测系统(NIDS)
7、网络扫描
8、安全工具
Winpcap有些方面不能做。它不依靠主机的诸如TCP/IP协议去收发数据包。这意味着它不能阻塞,不能处理同一台主机中各程序之间的通信数据。它只能“嗅探”到物理线路上的数据包。因此它不适用于traffic shapers,QoS调度,以及个人防火墙。
https://baike.baidu.com/item/winpcap/11048966?fr=aladdin 介绍
https://www.winpcap.org/install/default.htm 下载
Npcap
Npcap是致力于采用Microsoft Light-Weight Filter (NDIS 6 LWF)技术和Windows Filtering Platform (NDIS 6 WFP)技术对当前最流行的WinPcap工具包进行改进的一个项目。Npcap项目是最初2013年由Nmap网络扫描器项目(创始人Gordon Lyon)和北京大学罗杨博士发起,由Google公司的Summer of Code计划赞助的一个开源项目,遵循MIT协议(与WinPcap一致)。Npcap基于WinPcap 4.1.3源码基础上开发,支持32位和64位架构,在Windows Vista以上版本的系统中,采用NDIS 6技术的Npcap能够比原有的WinPcap数据包(NDIS 5)获得更好的抓包性能,并且稳定性更好。
https://github.com/nmap/npcap/releases
1.4. 干扰
- 漏包
WinPcap抓取的数据有漏数据的情况
- 重包
重复传递某个数据包
- 提前到达
2. 打印机数据解析
2.1. 原理
TSC、Printronix、SATO、Citizen,数据的格式无非是点阵或者pcx,但是打印机一旦做了压缩算法,目前都无法解析
点阵图(TSC)
PCX 数据
2.2. 标签定位及解析
使用ZXing、DataMatrix.Net均会有解析失败的情况,为了捡漏(增加标签的识别率)使用二维码定位在解析的方式。
DataMatic格式的二维码,都有侧边有一个L型的边框,可以根据这个边框在一整张图片上来定位二维码。
3. 分布式
采集的数据先汇总到分厂的数据库,然后再通过数据库同步脚本,同步到中心服务器。
3.1. 集中日志
3.2. 机台运行程序
自动启动
把快捷方式通过vbs脚本添加到startup文件夹下
1 set WshShell=WScript.CreateObject("WScript.Shell") 2 strDesktop=WshShell.SpecialFolders("startup") 3 Msgbox strDesktop 4 currentPath=WshShell.CurrentDirectory 5 set oShellLink=WshShell.CreateShortcut(strDesktop & "\ApplicationName.lnk") 6 oShellLink.TargetPath=currentPath & "\ApplicationName.exe" 7 oShellLink.Arguments="/start" 8 oShellLink.WindowStyle=1 9 'oShellLink.Hotkey="CTRL+SHIFT+E" 10 'oShellLink.IconLocation="c:\mydocumentfolder\icon.ico,0" 11 oShellLink.Description="My Sniffer" 12 oShellLink.WorkingDirectory=currentPath 13 oShellLink.Save