互联网套接字地址,额外填充?

时间:2017-05-14 22:52:44

标签: sockets tcp network-programming

在尝试进行一些套接字编程时,我遇到了一些有趣的细节,细节是sockaddr_in结构大小,它的大小为14个字节 From Hacking the art of Exploitation pg 202 根据我的理解,额外的填充用于对不同类型的IP地址进行类型转换,但理论上,如果在类型转换后留下任何填充,你是否可以潜入恶意代码?

对我来说额外填充似乎是未使用的内存。

1 个答案:

答案 0 :(得分:2)

sockaddrsockaddr_in结构通常仅用于应用程序与内核/运行时之间的通信。它们由inet_aton()等函数构造,并传递给bind()等函数。它们通常不通过网络发送,也不存储在文件中。因此,没有办法“潜入”“恶意”(或其他错误的)价值。即使确实发生了这种情况,收件人也会忽略额外的数据。

可能添加了填充以试图支持可能比IPv4地址更大的未来网络地址格式。具有讽刺意味的是,这不足以支持16字节长的IPv6地址。