macos - 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);
解决方案
推荐阅读
- presto - Presto 从 Azure Blob 存储读取 parquet 文件
- containers - Google Cloud Run 与 GKE 可移植性
- c# - 如何使用 Windows 窗体在 C# 中将 Listboxtext 打印为 pdf?
- java - 如何处理maven中生成的源
- java - 从java中的单个三元运算符返回多个值
- python - 数据未插入到 python、SQLAlchemy、postgresql 和 pgAdmin4 表中
- html - 如何在不影响按钮的情况下在按钮顶部创建文本
- linux - 无法启动 Dart CLI 隔离 (null)
- elasticsearch - 是否可以自定义从 kibana 发现导出的 CSV 文件?如果是,我该怎么做?
- c++ - 尽管没有错误并且完全执行,但 C++ 程序中没有输出