1

printf( "\ xab")を使用して、値を16進数として解釈するようにCに指示できることを知っています。Cプログラムに「\xab」を入力として入力すると、文字-xabとして解釈されます。printfスタイルのフォーマット情報を生の入力に埋め込む方法はありますか?

4

1 に答える 1

1

いいえ、それはすべて、文字を読み取るコードがそれらをどのように解釈するかに依存します。プログラムにテキストを与えることによって、プログラムに外部から何か他のことを魔法のように強制することはできません。バッファオーバーラン攻撃は少し反例だと思いますが、それはかなり極端です。

strtol()たとえば、自動的にサポート0x(16進数)およびプレフィックスとして使用する多くのプログラム0(ブラウザのアドレスバーは、このかなり予期しない機能の一般的な例の1つです)。たとえば、Windowsでは、次のようにしてこのサイトにpingを実行できます。

C:\>ping 0xc6fcce10

Pinging 198.252.206.16 with 32 bytes of data:

ここで、0xc6fcce10は、単一の32ビット16進数としてのIPアドレスです。

于 2013-03-07T15:21:01.713 に答える