From 79658ee9c7dab86ac2d3c084dcd20c2b14e340b3 Mon Sep 17 00:00:00 2001 From: offhub <6871698+offhub@users.noreply.github.com> Date: Sun, 2 Jun 2024 20:44:43 +0300 Subject: [PATCH 1/6] Update OptionsWindow.ui --- SandboxiePlus/SandMan/Forms/OptionsWindow.ui | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SandboxiePlus/SandMan/Forms/OptionsWindow.ui b/SandboxiePlus/SandMan/Forms/OptionsWindow.ui index 7cde8a5b..427ce451 100644 --- a/SandboxiePlus/SandMan/Forms/OptionsWindow.ui +++ b/SandboxiePlus/SandMan/Forms/OptionsWindow.ui @@ -2449,10 +2449,10 @@ - This can be used to prevent a host malicious program from breaking through by launching a pre-designed malicious program into an unlocked encrypted sandbox. + This setting can be used to prevent programs from running in the sandbox without the user's knowledge or consent. - A pop-up warning before launching a process into the sandbox from an external source. + Display a pop-up warning before starting a process in the sandbox from an external source From e37476b2ca7d280f995d79fc3cfacc0aa2277159 Mon Sep 17 00:00:00 2001 From: offhub <6871698+offhub@users.noreply.github.com> Date: Sun, 2 Jun 2024 20:45:10 +0300 Subject: [PATCH 2/6] Update lang_tr.json --- SandboxiePlus/SandMan/Troubleshooting/lang_tr.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SandboxiePlus/SandMan/Troubleshooting/lang_tr.json b/SandboxiePlus/SandMan/Troubleshooting/lang_tr.json index a1056424..fe739396 100644 --- a/SandboxiePlus/SandMan/Troubleshooting/lang_tr.json +++ b/SandboxiePlus/SandMan/Troubleshooting/lang_tr.json @@ -52,7 +52,7 @@ "Start/Run restrictions are in effect for the sandbox in which the program is running. The program is prohibited from starting or running.": "Programın çalıştığı korumalı alan için Başlat/Çalıştır kısıtlamaları geçerlidir. Programın başlatılması veya çalıştırılması engellenmiş.", -"Failures to load SbieDll.dll when encountered by Chrome, or another software employing app containers, it is often caused by invalid DACL entries for the Sandboxie home directory. This mitigation measure will fix them, for this reason it will prompt for admin privileges which need to be granted for kmdutil.exe.": "Chrome veya uygulama konteynerı kullanan başka bir yazılımla karşılaşıldığında SbieDll.dll dosyasının yüklenememesi, genellikle Sandboxie ana dizini için geçersiz DACL girişlerinden kaynaklanır. Bu hafifletici önlem bunları düzeltecektir, bu nedenle gereken yönetici ayrıcalıkları kmdutil.exe için istenecektir.", +"Failures to load SbieDll.dll when encountered by Chrome, or another software employing app containers, it is often caused by invalid DACL entries for the Sandboxie home directory. This mitigation measure will fix them, for this reason it will prompt for admin privileges which need to be granted for kmdutil.exe.": "Chrome veya uygulama konteyneri kullanan başka bir yazılımla karşılaşıldığında SbieDll.dll dosyasının yüklenememesi, genellikle Sandboxie ana dizini için geçersiz DACL girişlerinden kaynaklanır. Bu hafifletici önlem bunları düzeltecektir, bu nedenle gereken yönetici ayrıcalıkları kmdutil.exe için istenecektir.", "The DACLs have been adjusted, please try to run your application again and indicate if the issue has been resolved.": "DACL'ler ayarlandı. Lütfen uygulamanızı tekrar çalıştırmayı deneyin ve sorunun çözülüp çözülmediğini belirtin.", "DACLs fix did not resolve the issue": "DACL düzeltmesi sorunu çözmedi", From 4fee0e178b840bfb17c26c974e636e04f8cb45e9 Mon Sep 17 00:00:00 2001 From: offhub <6871698+offhub@users.noreply.github.com> Date: Sun, 2 Jun 2024 20:45:42 +0300 Subject: [PATCH 3/6] Update sandman_tr.ts --- SandboxiePlus/SandMan/sandman_tr.ts | 34 ++++++----------------------- 1 file changed, 7 insertions(+), 27 deletions(-) diff --git a/SandboxiePlus/SandMan/sandman_tr.ts b/SandboxiePlus/SandMan/sandman_tr.ts index 3eb28e4d..650cdfa3 100644 --- a/SandboxiePlus/SandMan/sandman_tr.ts +++ b/SandboxiePlus/SandMan/sandman_tr.ts @@ -151,10 +151,6 @@ This feature may reduce compatibility as it also prevents box located processes from writing to host located ones and even starting them. Bu özellik, korumalı alan konumundan çalışan işlemlerin ana sistem konumundan çalışan işlemlere veri yazmasını ve hatta onları başlatmasını da engellediği için uyumluluğu azaltabilir. - - Prevents the sandboxed window from being captured. - Korumalı alandaki pencerelerin yakalanmasını önle - This feature can cause a decline in the user experience because it also prevents normal screenshots. @@ -216,7 +212,7 @@ To disable this template for a sandbox, simply uncheck it in the template list.< Prevent sandboxed windows from being captured - + Korumalı alandaki pencerelerin yakalanmasını önle @@ -5671,7 +5667,7 @@ Lütfen Sandboxie için bir güncelleme olup olmadığını kontrol edin. Only applications with admin rights can change configuration Only applications with administrator token can change ini setting. - Yalnızca yönetici haklarına sahip uygulamalar yapılandırma ayarlarını değiştirebilsin + Yalnızca yönetici haklarına sahip uygulamalar yapılandırmayı değiştirebilsin @@ -5681,11 +5677,7 @@ Lütfen Sandboxie için bir güncelleme olup olmadığını kontrol edin. Enabling this option prevents changes to the Sandboxie.ini configuration from the user interface without admin rights. Be careful, as using Sandboxie Manager with normal user rights may result in a lockout. To make changes to the configuration, you must restart Sandboxie Manager as an admin by clicking 'Restart as Admin' in the 'Sandbox' menu in the main window. - - - - When this option is set, Sandbox Manager with normal user permissions will not be able to modify the configuration, which may result in a lock. You need to open the Sandbox Manager main window, click "Sandbox (s)" in the system menu, and then click "Restart as Admin" in the pop - up context menu to gain control of the configuration. - Bu seçeneğin etkinleştirilmesi, Sandboxie.ini yapılandırmasında yönetici hakları olmadan kullanıcı arayüzünden değişiklik yapılmasını engeller. Sandboxie Yöneticisini normal kullanıcı haklarıyla kullanmak kilitlenmeye neden olabileceğinden dikkatli olun. Yapılandırmada değişiklik yapmak için ana penceredeki 'Sandbox' menüsünde 'Yönetici Olarak Başlat' seçeneğine tıklayarak Sandboxie Yöneticisini yönetici olarak yeniden başlatmalısınız. + Bu seçeneğin etkinleştirilmesi, Sandboxie.ini yapılandırmasında yönetici ayrıcalıkları olmadan kullanıcı arayüzünden değişiklik yapılmasını engeller. Sandboxie Yöneticisini normal kullanıcı haklarıyla kullanmak kilitlenmeye neden olabileceğinden dikkatli olun. Yapılandırmada değişiklik yapmak için ana penceredeki 'Sandbox' menüsünde 'Yönetici Olarak Başlat' seçeneğine tıklayarak Sandboxie Yöneticisini yönetici olarak yeniden başlatmalısınız. @@ -7626,13 +7618,13 @@ Bu, korumalı alan içindeki haydut işlemlerin kendilerinin yeniden adlandırı - This can be used to prevent a host malicious program from breaking through by launching a pre-designed malicious program into an unlocked encrypted sandbox. - + This setting can be used to prevent programs from running in the sandbox without the user's knowledge or consent. + Bu ayar, kullanıcının bilgisi dışında programların korumalı alanda çalışmasını önlemek için kullanılabilir. - A pop-up warning before launching a process into the sandbox from an external source. - + Display a pop-up warning before starting a process in the sandbox from an external source + Harici bir kaynak tarafından korumalı alanda bir işlem başlatılmadan önce uyarı görüntüle @@ -9154,18 +9146,6 @@ The process match level has a higher priority than the specificity and describes Integrate with Host Desktop Ana Sistem Masaüstü ile entegrasyon - - Sandboxed Desktop - Korumalı Alan Masaüstü - - - Switch to sandboxed desktop when starting a process - Bir işlemi başlatırken korumalı alan masaüstüne geç - - - Switch to sandboxed desktop with double click - Çift tıklamayla korumalı masaüstüne geç - System Tray From db81b9f24ff93d8bd38ce31669144645047add3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=88=B1=E7=BC=96=E7=A8=8B=E7=9A=84=E5=8F=B6=E4=B8=80?= =?UTF-8?q?=E7=AC=91?= <92030377+love-code-yeyixiao@users.noreply.github.com> Date: Mon, 3 Jun 2024 21:39:33 +0800 Subject: [PATCH 4/6] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c3a75af9..62b870a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -33,7 +33,7 @@ This project adheres to [Semantic Versioning](http://semver.org/). ### Added - Add option to limit the memory of sandboxed process and the number of process in single sandbox through job object. (thanks Yeyixiao) - - Use "TotalMemoryLimit"(Number,limit whole sandbox,KB) and "ProcessMemoryLimit"(Number,limit single process,KB) to set memory limit. + - Use "TotalMemoryLimit"(Number,limit whole sandbox,Byte) and "ProcessMemoryLimit"(Number,limit single process,Byte) to set memory limit. - Use "ProcessNumberLimit"(Number) to set process number limit. - Add ability to modified sandboxed process logic speed (reduced fixed latency, modified single-player speed, etc.) (thanks Yeyixiao) - Use "UseChangeSpeed=y" to open this feature,use "AddTickSpeed"/"AddSleepSpeed"/"AddTimerSpeed"/"LowTickSpeed"/"LowSleepSpeed"/"LowTimerSpeed"(Number) to set. From 58e35a4c9f97bb32a23ba9e911b6979865d681e2 Mon Sep 17 00:00:00 2001 From: DavidXanatos <3890945+DavidXanatos@users.noreply.github.com> Date: Tue, 4 Jun 2024 08:50:25 +0200 Subject: [PATCH 5/6] Update ipc.c --- Sandboxie/core/drv/ipc.c | 70 ++++++++++++++++++++++------------------ 1 file changed, 38 insertions(+), 32 deletions(-) diff --git a/Sandboxie/core/drv/ipc.c b/Sandboxie/core/drv/ipc.c index 642da0f6..d6bd0d22 100644 --- a/Sandboxie/core/drv/ipc.c +++ b/Sandboxie/core/drv/ipc.c @@ -1402,34 +1402,30 @@ _FX NTSTATUS Ipc_Api_DuplicateObject(PROCESS *proc, ULONG64 *parms) } else if (IS_ARG_CURRENT_PROCESS(TargetProcessHandle)) { - // - // we duplicate the handle into kernel space such that that user - // won't be able to grab it while we are evaluaiting it - // - HANDLE SourceProcessKernelHandle; status = Thread_GetKernelHandleForUserHandle(&SourceProcessKernelHandle, SourceProcessHandle); if (NT_SUCCESS(status)) { HANDLE TargetProcessKernelHandle = ZwCurrentProcess(); // TargetProcessHandle == NtCurrentProcess(); - // - // driver verifier wants us to provide a kernel handle as process handles - // but the source handle must be a user handle and the ZwDuplicateObject - // function creates another user handle hence NtClose - // - - status = ZwDuplicateObject( - SourceProcessKernelHandle, SourceHandle, - TargetProcessKernelHandle, &DuplicatedHandle, - DesiredAccess, HandleAttributes, - Options & ~DUPLICATE_CLOSE_SOURCE); - + HANDLE SourceKernelHandle; + status = Thread_GetKernelHandleForUserHandle(&SourceKernelHandle, SourceHandle); if (NT_SUCCESS(status)) { - status = Ipc_CheckObjectName(DuplicatedHandle, UserMode); + status = ZwDuplicateObject( + SourceProcessKernelHandle, SourceHandle, + TargetProcessKernelHandle, &DuplicatedHandle, + DesiredAccess, HandleAttributes, + Options & ~DUPLICATE_CLOSE_SOURCE); - NtClose(DuplicatedHandle); + if (NT_SUCCESS(status)) { + + status = Ipc_CheckObjectName(DuplicatedHandle, UserMode); + + NtClose(DuplicatedHandle); + } + + ZwClose(SourceKernelHandle); } ZwClose(SourceProcessKernelHandle); @@ -1444,30 +1440,40 @@ _FX NTSTATUS Ipc_Api_DuplicateObject(PROCESS *proc, ULONG64 *parms) if (NT_SUCCESS(status)) { - HANDLE SourceProcessKernelHandle = (HANDLE)-1; - HANDLE TargetProcessKernelHandle = (HANDLE)-1; - + HANDLE SourceProcessKernelHandle = ZwCurrentProcess(); if (!IS_ARG_CURRENT_PROCESS(SourceProcessHandle)) status = Thread_GetKernelHandleForUserHandle(&SourceProcessKernelHandle, SourceProcessHandle); if (NT_SUCCESS(status)) { + HANDLE TargetProcessKernelHandle = ZwCurrentProcess(); if (!IS_ARG_CURRENT_PROCESS(TargetProcessHandle)) status = Thread_GetKernelHandleForUserHandle(&TargetProcessKernelHandle, TargetProcessHandle); if (NT_SUCCESS(status)) { - status = ZwDuplicateObject( - SourceProcessKernelHandle, SourceHandle, - TargetProcessKernelHandle, &DuplicatedHandle, - DesiredAccess, HandleAttributes, Options); + HANDLE SourceKernelHandle; + status = Thread_GetKernelHandleForUserHandle(&SourceKernelHandle, SourceHandle); + if (NT_SUCCESS(status)) { - *TargetHandle = DuplicatedHandle; + status = ZwDuplicateObject( + SourceProcessKernelHandle, SourceKernelHandle, + TargetProcessKernelHandle, &DuplicatedHandle, + DesiredAccess, HandleAttributes, Options & ~DUPLICATE_CLOSE_SOURCE); + + if (Options & DUPLICATE_CLOSE_SOURCE) + NtClose(SourceHandle); + + *TargetHandle = DuplicatedHandle; + + ZwClose(SourceKernelHandle); + } + + if (!IS_ARG_CURRENT_PROCESS(TargetProcessKernelHandle)) + ZwClose(TargetProcessKernelHandle); } - } - if (SourceProcessKernelHandle && !IS_ARG_CURRENT_PROCESS(SourceProcessKernelHandle)) - ZwClose(SourceProcessKernelHandle); - if (TargetProcessKernelHandle && !IS_ARG_CURRENT_PROCESS(TargetProcessKernelHandle)) - ZwClose(TargetProcessKernelHandle); + if (!IS_ARG_CURRENT_PROCESS(SourceProcessKernelHandle)) + ZwClose(SourceProcessKernelHandle); + } } // From d4a7cec48cbc79367f8a1bbe0ac37e5d4f9701a6 Mon Sep 17 00:00:00 2001 From: DavidXanatos <3890945+DavidXanatos@users.noreply.github.com> Date: Tue, 4 Jun 2024 08:51:36 +0200 Subject: [PATCH 6/6] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 62b870a2..9b200b37 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,7 @@ This project adheres to [Semantic Versioning](http://semver.org/). - fixed issue with inconsistent WFP option application [#3900](https://github.com/sandboxie-plus/Sandboxie/issues/3900) - fixed resource leak in buffer hashing function - fixed DLL name corruption when BlockInterferenceControl is enabled [#3945](https://github.com/sandboxie-plus/Sandboxie/issues/3945) +- fixed issue with driver verifier