2、使用CAPL的函数自动生成一条完整的ICMPv4 Echo Request报文,然后把数据手动放入两个分片报文中
首先生成一条完整的icmp报文:
ethernetPacket ppkt1;//icmpv4 echo request
byte data[1] = {10};//icmpv4 echo request data
ppkt1.icmpv4.echo.Init();
ppkt1.icmpv4.echo.identifier = 10;
ppkt1.icmpv4.echo.sequence = 20;
ppkt1.icmpv4.SetData(0, data, elcount(data));
ppkt1.CompletePacket();
这里我们为什么不设置IP地址和MAC地址等字段信息?因为我们只是想获取icmpv4 header + data部分的数据,只需要把这部分的该设置的字段设置好,调用CompletePacket()函数就可以自动计算icmp里的checksum字段了,省去我们自己计算填充了。
然后发送出去,在Trace窗口获取到icmpv4 echo request header + data部分的数据:

把这部分的数据手动写入CAPL中的byte数组中,作为两个ipv4分片包报文的payload。
byte bufferFragment1[8] = {0x08, 0x00, 0xED, 0xE1, 0x00, 0x0A, 0x00, 0x14};











![【PyTorch][chapter 20][李宏毅深度学习]【无监督学习][ GAN]【实战】](https://img-blog.csdnimg.cn/direct/2e579d3d409a4150a3417bc00c4a4f82.png)




![[SUCTF 2019]EasyWeb --不会编程的崽](https://img-blog.csdnimg.cn/direct/3630f20ad81d493e8114f13ed0225f34.png)


