首页 > 解决方案 > MacOS vm_read API 看起来很不稳定(没有这样的过程)

问题描述

我有一些 C 代码调用 Mach vm_read API 从不同进程的内存中获取一个或多个单词。我有时可以让它工作(使用代码签名编译并在 下运行sudo),但其他时候,即使进程保持不变,我也会收到内核错误“没有这样的进程”。这种脆弱性是一个已知问题吗?

下面的代码片段。这不起作用(vm_read返回 1),但它看起来与过去的代码相同:

size_t PTR_SIZE = sizeof(void*);
size_t size = PTR_SIZE;

char* rbuffer = malloc(size);

vm_offset_t buffer_pointer;
mach_msg_type_number_t data_cnt;

kernret = vm_read(task, (vm_address_t)start_addr, size, &buffer_pointer, &data_cnt);

标签: macosmemorykernelmach

解决方案


推荐阅读