沙盘工作原理浅谈

最近在研究游戏多开原理时,发现多种实现多开的方法,其中一种方法:使用沙盘,引起我的注意,而且这种方法应用于实现多开可谓是小牛试刀。

沙盘实际上是一种安全软件,它可以让进程之间被逻辑隔离,在沙盘中执行的程序不实际修改或防止被修改系统的数据内容,如注册表、硬盘数据等。

以下是转载内容,是对沙盘的简单介绍:

因为有人问沙盘是什么,可能有些新人对沙盘还搞不清是什么东西,所以草草写了这篇小文,仅向新人简单介绍一下沙盘。

  沙盘英文名sandbox,也叫沙箱,顾名思义可以看做是一种容器,里面所做的一切都可以推倒重来,军事上常用沙盘来进行一些战争区域的地形模拟,这个你见过吧?不用了可以把沙子推平重来。

  我们所说的沙盘是一种安全软件,可以将一个程序放入沙盘运行,这样它所创建修改删除的所有文件和注册表都会被虚拟化重定向,也就是说所有操作都是虚拟的,真实的文件和注册表不会被改动,这样可以确保病毒无法对系统关键部位进行改动破坏系统。另外现在沙盘一般都有部分或完整的类似HIPS的程序控制功能,程序的一些高危活动会被禁止,如安装驱动,底层磁盘操作等。目前沙盘主要有两大类,一是采用虚拟技术的传统沙盘,另一个就是采用策略限制的沙盘。

  传统沙盘的典型代表之一就是sandboxie。看看它是怎么描述自己的,你就知道什么是沙盘了。

什么是sandboxie?

  当你运行一个程序时,程序会读取硬盘上的数据,这时数据由硬盘流向程序,然后数据经过处理很显示后再由程序写回到硬盘中。

  如果你运行一个游戏程序,它会先读取保存在硬盘中的数据记录,然后在你玩游戏的过程中显示出来,最后再写回硬盘以待下次使用。

  sandboxie的作用就是改变了程序写入数据的地点,不让它写回到硬盘中,而是写到由sandboxie创造的一个虚拟区域。

  上图展示了sandboxie的关键特性:一个虚拟的存储区域,或者称为沙盘。在读取数据时,数据由硬盘穿过沙盘到达程序,这个不受影响。但是在程序写入数据时,这些数据都被保存在沙盘中而不会写入到硬盘。

  如果你在沙盘环境下运行一个游戏,sandboxie会从硬盘读取数据并保存,然后游戏读取沙盘中的数据来满足它的需要。但是当游戏想写入数据时,sandboxie会拦截写入并把数据转移到沙盘中。

sandboxie的应用

  sbie会在一个被称为sandbox(沙盘)的隔离的虚拟区域运行程序。程序在此区域内运行不会受到影响,但是不能对系统做出永久的实际改变,程序所做的所有对文件和注册表的改动都仅仅在沙盘中有效。

  关于sandboxie的详细介绍请参考置顶教程帖中相关文章。

  除了sandboxie这种利用虚拟技术的沙盘,还有另外一种采用策略限制的软件也可以称之为沙盘,因为它也具有可以恢复所有程序所生成的文件和注册表键值的功能,称之为ROLLBACK(回滚),而对于修改和删除操作和传统沙盘不同的是采用的是策略限制。典型代表有defensewall。

  DW这种沙盘没有采用虚拟技术,因为虚拟技术目前还有一些缺陷的地方,如可能造成沙盘内程序的不稳定或资源占用升高等问题。所以在DW中运行的程序所生成的文件和注册表键值都是实机生成,DW会对它们进行追踪,所有这些生成的东西都受到策略限制。如在DW内的一个程序生成了一个可执行文件,当运行这个可执行文件时,这个文件会被DW追踪到自动加入非信任区,受到策略限制,这样一来确保了该文件不会对你的系统造成损害。而对系统重要文件和注册表键值的修改和删除同样会受到策略限制,禁止非信任程序进行操作。而传统沙盘对修改删除的操作是采用的虚拟化重定向技术,也就是说所有的修改删除操作都是在虚拟区域中完成,真正的文件和注册表是没有被修改或删除的。从技术上说DW更接近于传统HIPS,只是增加了对生成项的追踪限制功能,所以它是一个比较另类的沙盘。

  有关defensewall的详细机制的介绍请参考置顶教程帖中相关文章。

  目前比较主流的沙盘有sandboxie, defensewall, safespace, bufferzone, geswall.

文章转自:http://news.sanhaostreet.com/NewsData/2008/3/200834105419516.shtml

时间: 2024-10-13 02:33:21

沙盘工作原理浅谈的相关文章

路由器工作原理浅谈

路由器是构建整个网络最核心的设备.比较著名的品牌为cisco.锐捷.华为.TP-LINK.H3C等等.之前工作中接触的较多的是思科和银河风云,思科的主要是7609,性能十分稳定,基本上全年每天24小时工作不会出问题.银河风云一般,十分笨重,板卡容易坏,2M接口不稳定(进行自环不是loopback状态),软件有bug(一次作业中发现其以太口如果正常工作中,当将网线从以太口中拔出再插上,和对端的路由器之间路由协议的邻居就建立不起来,必须将整个路由器进行重启才正常工作). 路由器其实和我们普通使用的计

SSL和TLS的技术原理浅谈

背景 程序员小明想给隔壁红写信表白,但是又不想让信件内容被其他人看见,希望只有小红才能看见信件内容,迫不及待的小明的大脑飞快运转起来. 预备基础知识 对称密钥加密(Symmetric Key Cryptography):加密与解密使用相同密钥.对称加密算法的特点是算法公开.计算量小.加密速度快.加密效率高.缺点是交易双方都使用同样钥匙,安全性得不到保证. 非对称密钥加密(Asymmetric Key Cryptography):加密与解密使用不同密钥.非对称加密使用一对秘钥,一个用来加密,一个用

CAS+SSO原理浅谈

http://www.cnblogs.com/yonsin/archive/2009/08/29/1556423.htmlSSO 是一个非常大的主题,我对这个主题有着深深的感受,自从广州 UserGroup 的论坛成立以来,无数网友都在尝试使用开源的 CAS , Kerberos 也提供另外一种方式的 SSO ,即基于 Windows 域的 SSO ,还有就是从 2005 年开始一直兴旺不衰的 SAML . 如果将这些免费的 SSO 解决方案与商业的 Tivoli 或 Siteminder 或 

php模板原理PHP模板引擎smarty模板原理浅谈

mvc是开发中的一个伟大的思想,使得开发代码有了更加清晰的层次,让代码分为了三层各施其职.无论是对代码的编写以及后期的阅读和维护,都提供了很大的便利. 我们在php开发中,视图层view是不允许有php代码来操作数据库之类的来获取数据的,我们一般都会在控制器层controller,就已经把视图层要展示的数据准备好,方便视图层直接用来展示. smarty模板技术,可以让数据和视图进行分离,让视图中不能直接出现php代码.这样的话,让前段页面的开发和后台数据的开发,可以双管齐下,同时进行了. sma

提升 工作方式 浅谈

需求理解 对需求理解的不深入, 没有站在用户角度考虑问题,只是单纯的为了开发而开发   -- 解决: 研究市面的APP,分析他们的需求,尤其是细节问题 代码逻辑 多看,多写   -- 解决:github 分析app细节. 思考是必要的,但是动手,才是根本,只有在动手之中,才能发现其中隐藏的需求. 个人积极性 积极调整心态  -- 解决:强迫自己的去做事情,离开舒适区.心态或者说工作状态的改变,自己只有强迫自己才行,整天的口号,不如一次切身的行动. 工作上遇到问题的处理 自我独立思考 时限:30分

java中的异常处理原理浅谈

什么是异常呢: 在现实生活中,总会有一些问题,聚焦在生活上,我们会有工作问题,比如工作不满意,工作薪水低,工作没有发展前景,那么我们会成为这是一个“问题”. 在java的世界中,那么我们相对应的是程序,那么程序也有这样或者那样的问题,那么我们成为“异常”.异常就是程序在运行时出现的不正常现象. java把异常封装成对象的描述,来高度的概括. java中Error我们无能为力.我们还是聊聊Exception Exception的分类: 1.编译时异常 必须进行捕获 2.运行时异常(也就是Runti

Tomcat原理浅谈

1.Tomcat Server的组成原理 (1)- Server 一个服务器代表整个Catalina servlet容器. (2)-Service Service是这样一个集合:它由一个或者多个Connector组成,以及一个Engine,负责处理所有Connector所获取到的客户请求. (3)-Connector 一个Connector将在某个指定端口上侦听客户请求,并将获得的请求交给Engine来处理,从Engine处获得回应并返回给客户. Tomcat有两个典型的Connector,一个

jvm 原理浅谈

jvm 包含了堆栈区.方法区等存储区域.类装载子系统以及执行引擎. jvm执行流程:编译(字节码)-->类装载(加入内存)-->类执行(分配内存执行) jvm 内存机制:堆内存(new出来的所有对象)    栈内存(基础数据类型.形参.new对象的引用) 静态方法区(方法代码.final常量.静态变量) 本地方法栈 类被装载后执行前,会进行链接即初始化,初始化一些方法,先初始化默认值,然后静态初始化函数和静态域的初始化构造方法的执行!

springboot学习总结(九)Spring security原理浅谈

认证是由 AuthenticationManager 来管理的,但是真正进行认证的是 AuthenticationManager 中定义的 AuthenticationProvider.AuthenticationManager 中可以定义有多个 AuthenticationProvider.当我们使用 authentication-provider 元素来定义一个 AuthenticationProvider 时,如果没有指定对应关联的 AuthenticationProvider 对象,Sp