我实现了一个自制的嗅探器(基于 winpcap)并尝试在浏览 HTTPS 网站(gmail 和 facebook)时使用它来嗅探 TCP 连接上的端口 443,但我的代码无法检测到任何流量。
我研究了用于建立 HTTPS 会话的端口,根据Wikipedia,默认端口为 443。
下面是代码的相关部分,它试图检测我有兴趣嗅探的流量。代码可以编译,但由于某种原因我看不到任何数据包。我无法理解为什么它不起作用。SSL 流量是否可能发生在不同的端口上?代码中有错误吗?
if( ntohs(tcpheader->source_port) == 443 || ntohs(tcpheader->dest_port == 443))
{
printf("\nHTTPS:\n");
for(i=0;i<Size;i++)
{
printf("%.2x",Buffer[i]);
if(i%16==0)
printf("\n");
}
//do some something.
}