Sandboxie

在手机上对于沙盒我们再熟悉不够了,我们的每个应用的运行在独立的空间中,避免手机中不同应用的相互影响。

Windows下,如果在处理某些不太确定为安全的程序,可以先在沙盒中独立运行。

Sandboxie 是一款基于沙盒的隔离软件,适用于 32 位和 64 位基于 Windows NT 的操作系统(Windows 7 或更高版本,32 位或 64 位)。它创建了一个类似于沙盒的隔离操作环境,可以在其中运行或安装应用程序,而无需永久修改本地和映射驱动器或 Windows 注册表。隔离的虚拟环境允许对不受信任的程序和网上冲浪进行受控测试。

Sandboxie上,github在这里。


Sandboxie 有两种版本,Plus 和 Classic。它们都共享相同的核心组件,这意味着它们具有相同级别的安全性和兼容性。不同的是用户界面中功能的可用性。

Plus build 有一个基于 Qt 的现代 UI,它支持自项目开源以来添加的所有新功能:

  • 快照管理器 - 此功能需要任何框的副本,以便在需要时恢复
  • 维护模式 - 它允许在需要时卸载/安装/启动/停止 Sandboxie 驱动程序和服务
  • 便携模式 - 您可以运行安装程序并选择将所有文件提取到一个目录
  • 用于阻止访问 Windows 组件(如打印机后台处理程序和剪贴板)的其他 UI 选项
  • 启动/运行和 Internet 访问限制的更多自定义选项
  • 终止所有盒装进程的全局热键
  • 每个沙盒都有一个新的防火墙,支持 Windows 过滤平台 (WFP)

Sandboxie的使用

Sandboxie的使用也比较简单,通过安装包直接安装软件,新建一个沙盒环境启动程序,Sandboxie的使用也比较简单,Sandboxie的一大有点就是他很小,但是功能还是很强的。

源代码分析

Sandboxie 用的是c语言进行编写,代码中中不仅包含着上层的地面,还包括了驱动相关的代码。创建沙盒过程的代码如下:

_FX BOX *Box_CreateEx(POOL *pool, const WCHAR *boxname,const WCHAR *sidstring, ULONG session_id,BOOLEAN init_paths)
{BOX *box;box = Box_Alloc(pool, boxname, session_id);if (! box)return NULL;if (! Box_InitKeys(pool, box, sidstring, session_id)) {Box_Free(box);return NULL;}if (! Box_InitConfExpandArgs(pool, box)) {Box_Free(box);return NULL;}if (init_paths) {BOOLEAN ok;Conf_AdjustUseCount(TRUE);ok = Box_InitPaths(pool, box);Conf_AdjustUseCount(FALSE);if (! ok) {Box_Free(box);return NULL;}}return box;
}

启动驱动的部分 代码:

_FX NTSTATUS DriverEntry(IN  DRIVER_OBJECT  *DriverObject,IN  UNICODE_STRING *RegistryPath)
{BOOLEAN ok = TRUE;ExInitializeDriverRuntime(DrvRtPoolNxOptIn);//// initialize global driver variables//Driver_Object = DriverObject;Driver_Object->DriverUnload = NULL;RtlInitUnicodeString(&Driver_Altitude, Altitude_Str);if (ok)ok = Driver_CheckOsVersion();if (ok) {Driver_Pool = Pool_Create();if (! Driver_Pool) {Log_Msg0(MSG_1104);ok = FALSE;}}if (ok)ok = Driver_InitPublicSecurity();if (ok) {Driver_RegistryPath =Mem_AllocStringEx(Driver_Pool, RegistryPath->Buffer, TRUE);if (! Driver_RegistryPath)ok = FALSE;}if (ok)ok = Driver_FindHomePath(RegistryPath);MyValidateCertificate();//// initialize simple utility modules.  these don't hook anything//if (ok)ok = Obj_Init();if (ok)ok = Conf_Init();if (ok)ok = Dll_Init();if (ok)ok = Syscall_Init();if (ok)ok = Session_Init();if (ok)ok = Driver_FindMissingServices();if (ok)ok = Token_Init();//// initialize modules.  these place hooks into the system.  hooks// become active as soon as installed.  the Process module must be// initialized first, because it initializes the process list//if (ok)ok = Process_Init();if (ok)ok = Thread_Init();if (ok)ok = File_Init();if (ok)ok = Key_Init();if (ok)ok = Ipc_Init();if (ok)ok = Gui_Init();//// create driver device for servicing user mode requests//if (ok)ok = Api_Init();//// initializing Windows Filtering Platform callouts//if (ok)ok = WFP_Init();//// finalize of driver initialization//Dll_Unload();       // released dlls loading during initif (! ok) {Log_Msg1(MSG_DRIVER_ENTRY_FAILED, Driver_Version);SbieDrv_DriverUnload(Driver_Object);return STATUS_UNSUCCESSFUL;}Driver_FullUnload = FALSE;Log_Msg1(MSG_DRIVER_ENTRY_OK, Driver_Version);return STATUS_SUCCESS;
}

Github每日精选(第7期):Sandboxie Windows下的沙盒相关推荐

  1. Win系统 - Windows下的沙盒运行模式,竟然这么有用?!

    今日份科普: 1.什么是沙盒(Sandbox)环境? 2.将Windows Defender 以沙盒模式运行 提升系统安全的原理是什么? 众所周知,杀毒软件通常需要很高的权限,才能彻底查杀病毒保护系统 ...

  2. Github每日精选(第21期):开源文件同步syncthing

    syncthing syncthing是一个持续的文件同步程序.它在两台或多台计算机之间同步文件.我们努力实现以下目标.目标按重要性顺序列出,最重要的是第一个.这是目标列表的摘要版本 - 如需更多评论 ...

  3. Github每日精选(第40期):为 Windows 带来 macOS “快速查看”功能QuickLook

    QuickLook QucikLook 像macOS 中的Quick Look 快速查看功能,它允许用户通过按键Space以闪电般的速度查看文件内容. 这个功能是非常有用的,特别是对于查找文件的时候, ...

  4. Github每日精选(第56期):支持多语言的文字识别EasyOCR

    EasyOCR EasyOCR一款好用的OCR,支持80多种语言和所有流行的书写脚本,包括拉丁语.汉语.阿拉伯语.德瓦纳加里语.西里尔语等. OCR (Optical Character Recogn ...

  5. Github每日精选(第77期):Go (Golang) 编写的 HTTP Web 框架gin

    Gin Gin 是一个用 Go (Golang) 编写的 Web 框架.由于httprouter,它具有类似 martini 的 API,性能提高了 40 倍.如果您需要性能和良好的生产力,您一定会喜 ...

  6. Github每日精选(第76期):在 Mac 状态栏上显示进程流量的监视器ITraffic-monitor-for-mac

    ITraffic-monitor-for-mac ITraffic-monitor-for-mac 在 Mac 状态栏上显示进程流量的监视器,在windows我们的流量可以通过电脑管家或者360进行显 ...

  7. Github每日精选(第24期):python的浏览器MechanicalSoup

    MechanicalSoup 可能你看到MechanicalSoup,就会想起BeautifulSoup,是的,这两个的功能用起来差不多,只是MechanicalSoup做的更多一点. Mechani ...

  8. Github每日精选(第48期):SQLite下的知识库memos

    memos memos 是一个开源的.自托管的知识库,可与 SQLite db 文件一起使用. 使用SQLite db还是很有必要的,因为有的时候我们需要把我们的日志进行转移,直接把数据库拷走就可以了 ...

  9. Github每日精选(第79期):虚拟数据生成库faker

    faker Faker是一个Python包,可以为你生成假数据.无论您是需要引导您的数据库.创建美观的 XML 文档.填写您的持久性以对其进行压力测试,还是对从生产服务中获取的数据进行匿名化,Fake ...

最新文章

  1. 2022-2028年中国基因工程药物产业市场研究及前瞻分析报告
  2. Matlab数据的可视化 -- 简易表面图
  3. C#静态构造函数总结
  4. hdu 1848(Fibonacci again and again)(SG博弈)
  5. mysql集群从节点无法启动_一次galera cluster集群故障节点无法启动问题排查
  6. java foreach跳出本次循环_Java中提供三种常用的循环语句
  7. 计算机网络计技术段标 实训,计算机网络技术实训报告精选.pdf
  8. 结构体的一些形式理解
  9. 总结几种常用的安全算法
  10. Struts2的输入验证(三)-短路验证与非字段验证
  11. 头条号【编编成程】开通
  12. springboot读取properties(yml)的几种常用方式
  13. 玩客云pc端_移动端灵活弹性云电销平台解决方案
  14. 专业的自建邮件服务器,自己搭建邮件服务器有哪些软硬件需求??
  15. H5 Laya 字体
  16. linux驱动开发期末测试,超星尔雅Linux驱动开发实训期末测试答案
  17. win10下自动运行python程序脚本
  18. 计算机c语言的作用,计算机c语言的特性有哪些
  19. 113种渗透测试工具合集(全网最全)
  20. 《只是为了好玩:Linux之父林纳斯自传》读后感

热门文章

  1. 2.MATLAB利用“基2时间抽选法”实现FFT
  2. java用servlet实现登录注册_Servlet-实现用户的注册功能
  3. windows10版本Linux子系统存放路径
  4. Windows 补丁: GDR 与 QFE 的区别
  5. 【JS】moment.js
  6. 智能汽车之分布式实时通信DDS技术基本概念介绍
  7. html静态页面作业——动漫海贼王(5页) 大学生动漫网页设计作业模板下载 南动漫网页设计作业成品 动漫网页制作下载_网页设计代码
  8. 小学生体测测试环境怎么填_【小学生坐位体前屈】南京中小学生体质测试启动 每个区抽测三所样本学校...
  9. 华为隐私保护通话接入总结
  10. 网易指责九城未退《魔兽》上亿元点卡