盗聴パケットの印刷シーケンス番号
-
20-09-2019 - |
質問
私はパケットスニファを作成するためのpcapを使用しています。
私はこのTCP構造を有するます:
typedef struct TSP_header{
unsigned short int sport;
unsigned short int dport;
unsigned int seqnum;
unsigned int acknum;
unsigned char reserved:4, offset:4;
unsigned int
tcp_res1:4, //little-endian
tcph_hlen:4, //length of tcp header in 32-bit words
tcph_fin:1, //Finish flag "fin"
tcph_syn:1, //Synchronize sequence numbers to start a connection
tcph_rst:1, //Reset flag
tcph_psh:1, //Push, sends data to the application
tcph_ack:1, //acknowledge
tcph_urg:1, //urgent pointer
tcph_res2:2;
unsigned short int tcph_win;
unsigned short int tcph_chksum;
unsigned short int tcph_urgptr;
}TSP_header;
どのように私は、シーケンス番号を印刷することができますか?
私はhtons(SEQUENCE_NUMBER)を使用する必要があります?それはこのように動作していないので!
私の他の質問は、変数宣言の後に番号が何ですか?
4はtcph_hlenにどういう意味:4
解決
プログラミング言語はCです。
の場合は、フィールドのサイズを指定していないので、あなたの構造体が間違っている注意してください。例えば、シーケンス番号は32ビット、「INT」が16または64ビットであってもよいです。 SEQNUMのために、あなたはのuint32_t使用する必要があります。
あなたがネットワークからTCPパケットを読んだことがある場合は、これは言われて、シーケンス番号は、ネットワーク順(ビッグエンディアン)であり、したがって、それを印刷するには、(ホストするネットワーク - ロング)ntohlを呼び出す必要があります。
所属していません StackOverflow