Linux の vdso メカニズムを研究しています。DSO を見つけるために、プログラムのエントリ ポイントに渡された補助ベクトルを解析できます。AT_SYSINFO_EHDR エントリは vDSO を指します。
私の質問は、 /proc/self/maps に示されているアドレスを使用して vDSO にアクセスできないのはなぜですか? 結果は同じであるべきではありませんか?いくつかの方法でこれらのアドレスを使用して vDSO にアクセスしようとしましたが、常に間違ったメモリ領域が得られました。x86_64 ビットを使用しています。
たとえば、dd を使用してメモリ領域をダンプすると、64 ビット オペレーティング システムでは機能しないのに、32 ビットでは機能するように見える理由がわかりません。何か案が?
dd if=/prcc/self/mem of=vDSO.bin count=1 bs=4096 skip=0xffffffffff600000
16 進数のオフセットを使用できないことはわかっています。読みやすいので、そのようにします。
ありがとう