2017-05-14 10 views
0

詳細はsockaddr_in構造体のサイズであることを、私はいくつかの興味深い詳細に出くわしたいくつかのソケットプログラミングをやろうとしているが、それは余分なパディングがIPアドレスの種類を型キャストのためではなく、で使用されていることを私の理解から、サイズは14バイト From Hacking the art of Exploitation pg 202 です理論では、タイプキャストの後にパディングが残っていれば悪意のあるコードに潜入できませんでしたか?インターネットソケットアドレス、余分な埋め込み?

私に余分な詰め物は未使用メモリのようです。

+1

「14ビットのサイズ」 - >>「14バイトのサイズ」 – wildplasser

+3

何かがそのメモリの内容をコードとして解釈して実行しようとしている場合のみ。どちらがバグでしょうか。 –

+0

これは[tag:linux]ではなく、BSD Sockets APIに関するものです。 – EJP

答えて

2

sockaddrおよびsockaddr_in構造は、通常、アプリケーションとカーネル/ランタイム間の通信にのみ使用されます。それらはinet_aton()のような関数で構築され、bind()のような関数に渡されます。一般的にネットワーク経由では送信されず、ファイルに保存されます。このように、「悪意のある」(またはそれ以外の場合は障害のある)値を「潜入」する方法はありません。これが起こったとしても、余分なデータは受信者によって単純に無視されます。

おそらく、IPv4アドレスよりも大きい将来のネットワークアドレス形式をサポートするために、埋め込みが追加されました。皮肉なことに、これは16バイトのIPv6アドレスをサポートするには不十分でした。

関連する問題