自家製のスニファー (winpcap に基づく) を実装し、それを使用して、HTTPS Web サイト (gmail および facebook) を閲覧しているときに TCP 接続でポート 443 をスニッフィングしようとしましたが、私のコードはトラフィックを検出できません。
HTTPS セッションの確立に使用するポートを調べたところ、ウィキペディアによると、デフォルトのポートは 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.
}