Sandboxie编译安装指南
最近针对Sandboxie这一基于Sandboxie的沙盒开发框架展开了深入探究。网络上关于编译安装方面的教程数量较为稀缺性较高,本人在这方面持续两周时间进行了深入研究。
下面整理出了Sandboxie Classic的编译安装步骤。
编译
环境 :Windows11专业版 22H2(VMWware运行),Visual Studio 2019, Windows SDK 10.0.19041.0
了解并遵循以下步骤以确保系统正常运行:1. 验证所有依赖项已正确配置;2. 执行必要的环境变量设置。

在完成WDK的安装后,在Visual Studio中开启Sandboxie项目,并访问其属性对话框。对于该项目的属性设置项(属性设置项),请将软件开发套件(SDK)中的平台工具集字段配置为Windows Kernel Mode Driver版本号为10.0。其余项目的开发环境均配置为Visual Studio 2019版本号为(v142)。开发环境的软件开发套件(SDK)版本设定为... Windows SDK 版本号选择... 10.0.19041.0

制定解决方案方案。采用SbieRelease配置方案,在开发环境中测试发现该驱动程序会导致构建失败问题。建议同时为64位和Windows 32位系统分别编译并验证版本以确保兼容性与稳定性需求得到满足。

64位的程序,生成的目录是Sandboxie\Sandboxie\Bin\x64\SbieRelease。
签名
此时的程序还不能正常运行,需要对文件进行签名 ,打包安装 。
请查看位于Sandboxie/Sandboxie/install目录中的README文件。根据说明完成操作(详细步骤省略了)。

在上一步操作完成后, 我们依照github discussions的指引, 采用ProcessHackers SignTool进行签名, 并将Windows的signature checking功能设置为禁用.

访问上图中的链接,获取或下载至本地使用CustomSignTool.exe。

创建私钥。在终端输入:
CustomSignTool.exe createkeypair <your_privatekeyfilename> <your_publickeyfilename>
代码解读
生成了对应的文件。


下面开始create the Sbie installers的第一步,Sign the binaries。

如果之前已自行安装了Sandboxie,则我们需要比较位于该目录下的所有文件,并最终确定需要进行数字签名的文件共有三个:SbieCtrl.exe, SbieSvc.exe, 和 Start.exe。

在终端输入:
CustomSignTool.exe sign -k <your_privatekeyfilename> -s SbieCtrl.exe.sig SbieCtrl.exe
代码解读
创建了一个名为SbieCtrl.exe(sig)的文件,其长度为64字节。
SbieSvc.exe以及Start.exe执行相同的操作。
该过程中的签名步骤已经完成。

禁用数字签名、打开Test Mode
参照知乎回答,Windows中,在禁用数字签名强制检测或并将其设为已启用的Test Mode情况下,能够正常启动相应的驱动程序。

请参考如何禁用数字签名强制检测一文进行详细阅读
生成安装包
随后只需完成第2至第5个步骤即可(详细操作步骤省略不提)。经过上述操作后,请确认是否已成功生成并运行了SandboxieInstall64.exe文件?如欲实现32及64位环境的兼容性,则需依次完成第6至第7个步骤。

当遇到找不到UpdUtil.exe 的错误时,请您必须进行SandboxieTools项目的编译(参考文件路径为SandboxieTools.sln)。
最后一步是运行SandboxieInstall64.exe。当完成安装后,系统将正常运行Sandboxie Classic。

调试
一般情况下,在修改hook相关功能时仅限于更改SbieDll.dll文件。根据上图,在64位操作系统环境下运行64位程序会导致SbieDll.dll加载x64配置项;而当运行32位程序时,则会导致该DLL加载Win32配置项。

将生成的x64配置的SbieDll.dll放置于C:\Program Files\Sandboxie-Plus目录下,并对Win32版本进行相应的复制操作以确保程序兼容性

这样,无论64位还是32位的程序,都能加载你修改过的SbieDll.dll。
