我想创建具有自己的虚拟地址空间的线程或进程(它可能必须是单独的进程),而不是地址空间中的系统库。我的目标是为外国源代码创建一个执行环境。
我想创建一个没有系统库的线程,只有几个可执行页面,其中用户的代码将被复制和线程入口点将被放置,并与主线程堆栈和数据交换也很少的可读写页面。
是否有可能从应用程序级别完全取消windows (或Linux)上的所有系统库与虚拟内存的映射?
发布于 2012-04-21 19:34:57
取消映射系统库不会阻止二进制文件自己执行系统调用。要捕获您试图阻止的所有操作,需要某种形式的二进制转换。您可能希望了解一下libdetox和fastBT (Google Tech Talk about fastBT)
发布于 2012-04-21 19:52:21
根据您想要实现的目标,在User-Mode Linux、qemu、VMware或其他虚拟化解决方案中运行外来代码可能更容易(每次运行都使用虚拟硬盘的新副本,不提供任何网络接口等)。
https://stackoverflow.com/questions/10258139
复制相似问题