Merge branch 'sandboxie-plus:master' into master

This commit is contained in:
爱编程的叶一笑 2024-06-04 22:12:31 +08:00 committed by GitHub
commit b06b07440b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 50 additions and 63 deletions

View File

@ -32,6 +32,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
@ -40,7 +41,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 sandboxKB) and "ProcessMemoryLimit"(Number,limit single process,KB) to set memory limit.
- Use "TotalMemoryLimit"(Number,limit whole sandboxByte) 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.

View File

@ -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);
}
}
//

View File

@ -2508,10 +2508,10 @@
<item row="6" column="0">
<widget class="QCheckBox" name="chkAlertBeforeStart">
<property name="toolTip">
<string>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.</string>
<string>This setting can be used to prevent programs from running in the sandbox without the user's knowledge or consent.</string>
</property>
<property name="text">
<string>A pop-up warning before launching a process into the sandbox from an external source.</string>
<string>Display a pop-up warning before starting a process in the sandbox from an external source</string>
</property>
</widget>
</item>

View File

@ -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",

View File

@ -151,10 +151,6 @@
<source>This feature may reduce compatibility as it also prevents box located processes from writing to host located ones and even starting them.</source>
<translation>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.</translation>
</message>
<message>
<source>Prevents the sandboxed window from being captured.</source>
<translation type="vanished">Korumalı alandaki pencerelerin yakalanmasını önle</translation>
</message>
<message>
<location filename="Wizards/NewBoxWizard.cpp" line="850"/>
<source>This feature can cause a decline in the user experience because it also prevents normal screenshots.</source>
@ -216,7 +212,7 @@ To disable this template for a sandbox, simply uncheck it in the template list.<
<message>
<location filename="Wizards/NewBoxWizard.cpp" line="849"/>
<source>Prevent sandboxed windows from being captured</source>
<translation type="unfinished"></translation>
<translation>Korumalı alandaki pencerelerin yakalanmasını önle</translation>
</message>
<message>
<location filename="Wizards/NewBoxWizard.cpp" line="870"/>
@ -5671,7 +5667,7 @@ Lütfen Sandboxie için bir güncelleme olup olmadığını kontrol edin.</trans
<location filename="Wizards/SetupWizard.cpp" line="527"/>
<source>Only applications with admin rights can change configuration</source>
<oldsource>Only applications with administrator token can change ini setting.</oldsource>
<translation type="unfinished">Yalnızca yönetici haklarına sahip uygulamalar yapılandırma ayarlarını değiştirebilsin</translation>
<translation>Yalnızca yönetici haklarına sahip uygulamalar yapılandırmayı değiştirebilsin</translation>
</message>
<message>
<location filename="Wizards/SetupWizard.cpp" line="539"/>
@ -5681,11 +5677,7 @@ Lütfen Sandboxie için bir güncelleme olup olmadığını kontrol edin.</trans
<message>
<location filename="Wizards/SetupWizard.cpp" line="539"/>
<source>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 &apos;Restart as Admin&apos; in the &apos;Sandbox&apos; menu in the main window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>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 &quot;Sandbox (s)&quot; in the system menu, and then click &quot;Restart as Admin&quot; in the pop - up context menu to gain control of the configuration.</source>
<translation type="vanished">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 &apos;Sandbox&apos; menüsünde &apos;Yönetici Olarak Başlat&apos; seçeneğine tıklayarak Sandboxie Yöneticisini yönetici olarak yeniden başlatmalısınız.</translation>
<translation>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 &apos;Sandbox&apos; menüsünde &apos;Yönetici Olarak Başlat&apos; seçeneğine tıklayarak Sandboxie Yöneticisini yönetici olarak yeniden başlatmalısınız.</translation>
</message>
</context>
<context>
@ -7626,13 +7618,13 @@ Bu, korumalı alan içindeki haydut işlemlerin kendilerinin yeniden adlandırı
</message>
<message>
<location filename="Forms/OptionsWindow.ui" line="2452"/>
<source>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.</source>
<translation type="unfinished"></translation>
<source>This setting can be used to prevent programs from running in the sandbox without the user's knowledge or consent.</source>
<translation>Bu ayar, kullanıcının bilgisi dışında programların korumalı alanda çalışmasını önlemek için kullanılabilir.</translation>
</message>
<message>
<location filename="Forms/OptionsWindow.ui" line="2455"/>
<source>A pop-up warning before launching a process into the sandbox from an external source.</source>
<translation type="unfinished"></translation>
<source>Display a pop-up warning before starting a process in the sandbox from an external source</source>
<translation>Harici bir kaynak tarafından korumalı alanda bir işlem başlatılmadan önce uyarı görüntüle</translation>
</message>
<message>
<location filename="Forms/OptionsWindow.ui" line="2474"/>
@ -9154,18 +9146,6 @@ The process match level has a higher priority than the specificity and describes
<source>Integrate with Host Desktop</source>
<translation>Ana Sistem Masaüstü ile entegrasyon</translation>
</message>
<message>
<source>Sandboxed Desktop</source>
<translation type="vanished">Korumalı Alan Masaüstü</translation>
</message>
<message>
<source>Switch to sandboxed desktop when starting a process</source>
<translation type="vanished">Bir işlemi başlatırken korumalı alan masaüstüne geç</translation>
</message>
<message>
<source>Switch to sandboxed desktop with double click</source>
<translation type="vanished">Çift tıklamayla korumalı masaüstüne geç</translation>
</message>
<message>
<location filename="Forms/SettingsWindow.ui" line="648"/>
<source>System Tray</source>