gpt4 book ai didi

c - TCP 标志未通过 nmap Xmas 扫描设置

转载 作者:行者123 更新时间:2023-11-30 16:39:30 25 4
gpt4 key购买 nike

我正在解析数据包上的 TCP header ,并尝试检查标志是否正确显示,但是当使用 nmap 命令运行圣诞节扫描时:nmap -sX localhost,没有设置标志。

这是我用来检查标志的代码:

if(tcp_header->th_flags & TH_URG & TH_PUSH & TH_FIN)
xmasScans++;

我也在执行类似的过程来检查各个标志,只是一一检查。

上面的代码对于检查标志是否正确?谢谢

最佳答案

不,这是不正确的。像 & 这样的位运算符是左关联的,这意味着您可以将其视为每个操作都在左侧的括号中,如下所示:

(((tcp_header->th_flags & TH_URG) & TH_PUSH) & TH_FIN)

想象一下标志是0b00101001,即URG+PUSH+FIN,仅此而已。第一个操作是:

  00101001
& 00100000
= 00100000

所以结果就是TH_URG。那么第二个操作就相当于TH_URG & TH_PUSH:

  00100000
& 00001000
= 00000000

所以结果是0,假,并且条件将始终为假。相反,您需要单独测试每一项,并将它们与逻辑结合起来:

if (tcp_header->th_flags & TH_URG
&& tcp_header->th_flags & TH_PUSH
&& tcp_header->th_flags & TH_FIN)

关于c - TCP 标志未通过 nmap Xmas 扫描设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47012907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com