Bil*_*eal 13
在较高的层次上,这样的沙箱是内核驱动程序,它拦截对API的调用,并修改这些API使用挂钩返回的结果.虽然整个沙盒解决方案如何在引擎盖下工作,但很容易填满几本书.
至于困难,这可能是你可能写的更难的事情之一.你不仅必须提供操作系统内核提供最一切挂钩,但你必须阻止应用程序访问其他进程的内存空间,你必须有一个方法来拯救方案,使这样的状态改变该程序没有意识到它正在沙盒下运行.您必须在内核模式下执行所有这些操作,这有效地限制了您使用C,并强制您处理不同类型的内存,例如分页池和非分页池.哦,你必须非常快地完成所有这些工作,以便用户觉得在沙盒中运行应用程序是值得的.大多数用户不会容忍50 +%的性能命中率.