这里就不细将ICMP协议了,随便一搜都是一堆。一个完整ICMP数据包如下结构。
从零构造并发送一个数据包确实不容易,但是我们有更简单的方法。《NDebug》
我们打开NDebug。
它会列出目前正在使用的网卡等一些信息,我们勾选发送数据包(注:不勾选发送数据包 直接点击接口是抓包页面)。如下
而后选择正在使用的网卡 点击,之后我们点击选择协议 选择ICMP下的回显请求包。可以看到它帮我们自动填写了一些参数。长度、首部检验和、ICMP检验和都是自动计算的。并且目光所及都是可以根据自身需要进行修改。
现在我们把参数填写完整。这里我只填写了 目的MAC地址、源IP 、目的IP与数据。这里填的目的MAC是 11.11.11.11 网关的MAC地址。好 点击发送 然后到Wireshark去看看。
可以看到的确成功了,并且收到了网关的应答消息 数据也是刚才我们输入的。其他参数也分毫不差
接下来我们更改ICMP头部类型字段8 -> 0,其他不变 让其从请求消息变成应答消息,点击发送后我们看到真的给网关发送了一个应答消息(reply) 。
此软件如果给到网络专业的老师手里应该嗷嗷的 😄哈哈