我想在没有地址空间中的系统库的情况下创建具有自己的虚拟地址空间的线程或进程(它可能必须是单独的进程)。我的目标是为外来源代码创建一个执行环境。
我想创建一个没有系统库的线程,只需要几个可复制用户代码的可执行页面,并放置线程入口点,还有几个RW页面用于堆栈和主线程的数据交换。
是否可以从应用程序级别的虚拟内存中完全取消映射Windows(或可能是Linux)上的所有系统库?
答案 0 :(得分:0)
取消映射系统库不会阻止二进制文件本身执行系统调用。要捕获您要阻止的所有操作,需要某种形式的二进制转换。您可能需要查看libdetox和fastBT(Google Tech Talk about fastBT)
答案 1 :(得分:0)
根据您想要实现的目标,在用户模式Linux,qemu,VMware或其他虚拟化解决方案中运行外部代码可能更容易(每次运行时使用虚拟硬盘的新副本,而不是提供任何网络接口等。)。