在文章CAPL使用结构体的方式组装一条DoIP车辆声明消息(方法1)中,我们声明一个结构体DoIPMessage表示完整的DoIP车辆声明消息:

 上半部分是DoIP报头通用部分(也就是所有类型的DoIP消息都有的),而payload是每个类型的DoIP消息独有的部分,对于车辆声明消息来说,用另一个结构体表示它:

 DoIPMessage作为完整的DoIP消息,这意味着VehicleAnnouncement里的字段成员赋值后要转换成byte数组,然后复制到DoIPMessage里的Payload中。然后DoIPMessage里的字段成员赋值后再转换成byte数组,再放入一个UDP报文的Payload中。
这样的组装过程太复杂了。
既然DoIPMessage里的通用部分是每个类型的DoIP消息共有的,那能否把这部分拎出来用一个结构体表示呢?
  _align(1) struct DoIPHeader
  {
    byte        version;
    byte        inVersion;
    word        type;
    dword       length;
  









![[Bugku] web-CTF-POST](https://i-blog.csdnimg.cn/direct/ba58cbb43aeb482e81cfede6bae8aba9.png)
![[240802] 有关 Homebrew 的安全审核 | Running C++ anywhere like a script](https://i-blog.csdnimg.cn/direct/a162c7aaf4b4496eac63056de50c5857.png#pic_center)






