gamepo 2023-01-27 07:56 采纳率: 75%
浏览 31
已结题

SYN端口扫描回传问题

问题遇到的现象和发生背景

最近在学习TCP3次握手,于是想写一个基于SYN的端口扫描
我的想法是通过循环来改变TCP报文的dest端口来根据回传进行判断

遇到的现象和发生背景,请写出第一个错误信息

可我通过tcpdump抓包时
发现无论发送什么端口,服务器永远只会回传第一个端口SYN+ACK的包
其他发送的都没有收到

用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
void scan_port()
{
    int raw_sock = init_connect();
    init_buf();
    for(int i=24443;i<=24445;i++)
    {
        tHeader->dest=htons(i);//目标端口
        memcpy(sumBuf + sizeof(struct psdHeader), tHeader, TCP_HEADER_LEN);
        printf("%d\n",htons(calcTCPCheckSum(sumBuf)));//校验和
        tHeader->check = htons(calcTCPCheckSum(sumBuf));
        memcpy(buf + IP_HEADER_LEN, tHeader, TCP_HEADER_LEN);
        send(raw_sock,buf,totalLen,0);//发送
    }
    close(raw_sock);
}

我的解答思路和尝试过的方法

刚开始我认为可能是校验和的问题,可我即使每次都计算校验和,结果还是没变

  • 写回答

2条回答 默认 最新

  • gamepo 2023-01-28 01:36
    关注

    是因为校验和没有设置为0
    应该是每循环一次都要设置为0

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 2月4日
  • 已采纳回答 1月28日
  • 修改了问题 1月27日
  • 修改了问题 1月27日
  • 展开全部
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部