2010-08-19 68 views
2

我试图让一些内存可执行文件(在Mac OS 10.6上),并且我怀疑mprotect()在默默地失败。鉴于一页内存的地址,我如何检查它实际上是否标记为可执行文件?如何在给定的内存页面上找到保护?

+0

的可能重复的[检索其自己的进程的存储器映射在OS X 10.5/10.6](http://stackoverflow.com/questions/1627998/检索最内存映射 - - 它-自己 - 处理 - 在-OS-X-10-5-10-6) – duskwuff 2013-06-18 23:32:42

回答

1

使用vmmap得到输出是这样的:

Stack     00007fff6276e000-00007fff62f6d000 [ 8188K  8K  8K] rw-/rwx SM=PRV   thread 0 
Stack     00007fff62f6d000-00007fff62f6e000 [ 4K  4K  4K] rw-/rwx SM=COW   thread 0 
__TEXT     00007fff62f6e000-00007fff62fa3000 [ 212K 212K  0K] r-x/rwx SM=COW   /usr/lib/dyld 
__DATA     00007fff62fa3000-00007fff62fa5000 [ 8K  8K  8K] rw-/rwx SM=COW   /usr/lib/dyld 
__DATA     00007fff62fa5000-00007fff62fdf000 [ 232K 28K 28K] rw-/rwx SM=COW   /usr/lib/dyld