我需要检测网络流量中的 https 数据包。到目前为止,我将所有“443”标记为 https,但我不想再在这种情况下使用端口信息。
检查客户端问候消息是否足够:
//Check 22 and version info 0300 0301 or 0302
if (packet->payload[0] == 0x16 && packet->payload[1] == 0x03
&& (packet->payload[2] == 0x00 || packet->payload[2] == 0x01 || packet->payload[2] == 0x02)
{
int temp = ntohs(get_u16(packet->payload, 3)) + 5;//Get lenght
//Check lenght is valid and 6th byte is client hello(which is 1)
if (temp < packet->payload_length && temp > 50 && packet->payload[5]) == 1)
MARK AS HTTPS
}
由于我的项目设计,我无法检查多个数据包。您能否告知,像上面这样检查客户问候是否可以?
由于我的项目设计,我无法检查多个包。
请您告知是否可以像上面那样检查客户问候
或不 ?
我假设你的意思是“数据包”而不是“包裹”。鉴于我们在这里使用 TCP,能够重新组装碎片消息至关重要。只要您有一个仅对单个数据包进行操作的工具,您就不能指望能够可靠地(100% 的时间)检测长于单个字节的消息内容。这是因为 TCP 发送方将字节一一传送给您是完全合法的……因此您需要准备好重新组装它们,否则您会错过一些信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)