什么是沙盒

时间:2011-06-03 23:21:43

标签: c++ windows kernel sandbox

当反病毒在称为“沙盒”的虚拟环境中运行某些应用程序时,从Windows内核的角度来看,这个沙箱的工作原理是什么?

写这样的沙箱难吗?

1 个答案:

答案 0 :(得分:13)

在较高的层次上,这样的沙箱是内核驱动程序,它拦截对API的调用,并修改这些API使用挂钩返回的结果。虽然整个沙盒解决方案如何在引擎盖下工作,但很容易填满几本书。

至于困难,这可能是你可能写的更难的事情之一。您不仅必须为操作系统内核提供的大多数内容提供挂钩,而且您必须阻止应用程序访问其他进程的内存空间,您必须有一种方法来保存程序所做的更改的状态。该程序没有意识到它正在沙盒下运行。你必须在内核模式下完成所有这些操作,这有效地限制了你使用C,并迫使你处理不同类型的内存,例如:分页池和非分页池。哦,你必须快速完成所有这些非常,以便用户认为在沙盒中运行应用程序是值得的。大多数用户不会容忍50 +%的性能点击。