我正在研究Linux中的vdso机制。为了找到DSO,我可以解析传递给程序入口点的辅助 vector 。 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
我知道我不能使用十六进制偏移量,之所以这样说,是因为它更易于阅读。
谢谢
最佳答案
skip
必须以bs
为单位给出。