什么是沙盒

Car*_*s00 13 c++ windows kernel sandbox

当反病毒在称为"沙盒"的虚拟环境中运行某些应用程序时,从Windows内核的角度来看,这个沙箱是如何精确工作的?

写这样的沙箱难吗?

Bil*_*eal 13

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

至于困难,这可能是你可能写的更难的事情之一.你不仅必须提供操作系统内核提供最一切挂钩,但你必须阻止应用程序访问其他进程的内存空间,你必须有一个方法来拯救方案,使这样的状态改变该程序没有意识到它正在沙盒下运行.您必须在内核模式下执行所有这些操作,这有效地限制了您使用C,并强制您处理不同类型的内存,例如分页池和非分页池.哦,你必须非常快地完成所有这些工作,以便用户觉得在沙盒中运行应用程序是值得的.大多数用户不会容忍50 +%的性能命中率.