diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 95c22cec..2ff9ed71 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,6 +1,8 @@ name: CI on: +# workflow_dispatch: +# branches: [ master ] push: branches: [ master ] pull_request: @@ -8,9 +10,16 @@ on: jobs: build: - strategy: - matrix: - platform: [Win32, x64] + #strategy: + # matrix: + # #platform: [Win32, x64] + # #qt-target: [win32_msvc2019, win64_msvc2019_64] + # include: + # - platform: Win32 + # qt-target: win32_msvc2019 + # - platform: x64 + # qt-target: win64_msvc2019_64 + runs-on: windows-2019 steps: - name: Checkout code @@ -19,36 +28,72 @@ jobs: - name: Setup msbuild uses: microsoft/setup-msbuild@v1 - - name: Build Sandboxie - run: msbuild /t:build Sandboxie\Sandbox.sln /p:Configuration="SbieRelease" /p:Platform=${{ matrix.platform }} + # - name: Build Sandboxie + # run: msbuild /t:build Sandboxie\Sandbox.sln /p:Configuration="SbieRelease" /p:Platform=${{ matrix.platform }} + + - name: Build Sandboxie 32 bit + run: msbuild /t:build Sandboxie\Sandbox.sln /p:Configuration="SbieRelease" /p:Platform=Win32 -maxcpucount:8 + + - name: Build Sandboxie 64 bit + run: msbuild /t:build Sandboxie\Sandbox.sln /p:Configuration="SbieRelease" /p:Platform=x64 -maxcpucount:8 + + - name: Cache Qt id: cache-qt uses: actions/cache@v1 with: path: ../Qt - key: ${{ runner.os }}-QtCache + key: Qt-5.15.1-QtCache - - name: Install Qt + - name: Install Qt 64 bit uses: jurplel/install-qt-action@v2 with: version: '5.15.1' + dir: .. + # arch: ${{ matrix.qt-target }} + arch: 'win64_msvc2019_64' + # tools: 'tools_qtcreator,4.14.0-0-202012170949,qt.tools.qtcreator' cached: ${{ steps.cache-qt.outputs.cache-hit }} + + - name: Install Qt 32 bit + uses: jurplel/install-qt-action@v2 + with: + version: '5.15.1' + dir: .. + # arch: ${{ matrix.qt-target }} + arch: 'win32_msvc2019' + # tools: 'tools_qtcreator,4.14.0-0-202012170949,qt.tools.qtcreator' + cached: ${{ steps.cache-qt.outputs.cache-hit }} + + - name: Installing Jom + if: steps.cache.outputs.cache-hit != 'true' + run: SandboxiePlus\install_jom.cmd + + + + - name: Build Sandboxie-Plus 64 bit + run: SandboxiePlus\qmake_plus.cmd x64 - - name: Build Sandboxie-Plus - run: msbuild /t:build SandboxiePlus\SandboxiePlus.sln /p:Configuration="Release" /p:Platform=${{ matrix.platform }} - - - name: Upload Sandboxie + - name: Build Sandboxie-Plus 32 bit + run: SandboxiePlus\qmake_plus.cmd Win32 + + + + - name: Merging Builds + run: Installer\merge_builds.cmd + + - name: Upload Sandboxie 32 uses: actions/upload-artifact@v2 with: - name: Sandboxie (${{ matrix.platform }}) + name: Sandboxie_x86 path: | - Sandboxie/Bin/${{ matrix.platform }}/SbieRelease - !**/*.pdb - !**/*.ipdb - !**/*.exp - !**/*.ilk - !**/*.iobj - !**/*.lib - !**/*.cer - Sandboxie/Bin/${{ matrix.platform }}/SbieRelease/SbieDrv.pdb + Installer/SbiePlus32/* + + - name: Upload Sandboxie 64 + uses: actions/upload-artifact@v2 + with: + name: Sandboxie_x64 + path: | + Installer/SbiePlus64/* + diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f310a8f..a74557ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,25 +7,58 @@ This project adheres to [Semantic Versioning](http://semver.org/). +## [0.6.5 / 5.47.0] - 2021-01-31 + +### Added +- added detection for waterfox.exe, Palemoon.exe, basilisk.exe and brave.exe firefox forks +- added bluetooth API support, IPC port can be opened with "OpenBluetooth=y" +-- this should resolve issues with many unity games hanging on startup for a long time +- added enhanced RPC/IPC interface tracing +- when DefaultBox is not found by the SandMan UI, it will be recreated +- "Disable Forced Programs" time is now saved and reloaded + +### Changed +- reduced sandman cpu usage +- sandboxie.ini and templates.ini can now be UTF8 encoded +-- this feature is experimental, files without a UTF-8 Signature should be recognized also +-- "ByteOrderMark=yes" is obsolete, sandboxie.ini is now always saved with a BOM/Signature +- legacy language files can now be UTF8 encoded +- reworked file migration behaviour, removed hardcoded lists in favour of templates +-- you can now use "CopyAlways=", "DontCopy=" and "CopyEmpty=" that support the same syntax as "OpenFilePath=" +-- "CopyBlockDenyWrite=program.exe,y" makes a write open call to a file that won't be copied fail instead of turning it read only +- removed hardcoded SkipHook list in favour of templates + +### Fixed +- fixed old memory pool leak in the sbie driver +- fixed issue with item selection in the access restrictions ui +- fixed updater crash in sbiectrl.exe +- fixed issues wih RPC calls introduced in sbie 5.33.1 +- fixed recently broken terminate all command +- fixed a couple minor UI issues with Sandman UI +- fixed IPC issue with windows 7 and 8 resulting in process termination +- fixed "recover to" functionality + + + ## [0.6.0 / 5.46.5] - 2021-01-25 ### Added -- added comfirmation prompts to terminate all commands +- added confirmation prompts to terminate all commands - added window title to boxed process info - added winspy based sandboxed window finder - added option to view disabled boxes and double click on box to enable it ### Changed -- reset columns now resized them to fit the content, also "Reset Columns" can now be localized +- "Reset Columns" now resizes them to fit the content, and it can now be localized - modal windows are now centered to the parent - improved new box window ### Fixed - fixed issues with window modality - fixed issues when main window was set to be always on top -- fixed an driver issue with windows 10 insider build 21286 +- fixed a driver issue with windows 10 insider build 21286 - fixed issues with snapshot dialog -- fixed an issue when writing to a path that aready exist in the napshot but not outside +- fixed an issue when writing to a path that already exist in the snapshot but not outside diff --git a/Installer/copy_build.cmd b/Installer/copy_build.cmd new file mode 100644 index 00000000..406e0315 --- /dev/null +++ b/Installer/copy_build.cmd @@ -0,0 +1,109 @@ +REM @ECHO OFF + + +set archPath=%1 +set sysPath=%windir%\System32 +set qtPath=%~dp0..\..\Qt\5.15.1\msvc2019_64 +set instPath=%~dp0\SbiePlus64 +IF %archPath% == x86 ( + set archPath=Win32 + set instPath=%~dp0\SbiePlus32 + set sysPath=%windir%\SysWOW64 + set qtPath=%~dp0..\..\Qt\5.15.1\msvc2019 +) +set srcPath=%~dp0..\SandboxiePlus\Bin\%archPath%\Release +set sbiePath=%~dp0..\Sandboxie\Bin\%archPath%\SbieRelease + +echo inst: %instPath% +echo arch: %archPath% +echo sys: %sysPath% +echo source: %srcPath% +echo source: %sbiePath% + +mkdir %instPath% + +ECHO Copying VC Runtime +copy %sysPath%\msvcp140.dll %instPath%\ +copy %sysPath%\vcruntime140.dll %instPath%\ +copy %sysPath%\msvcp140_1.dll %instPath%\ +copy %sysPath%\vcruntime140_1.dll %instPath%\ + + +ECHO Copying Qt Librarys + +copy %qtPath%\bin\Qt5Core.dll %instPath%\ +copy %qtPath%\bin\Qt5Gui.dll %instPath%\ +copy %qtPath%\bin\Qt5Network.dll %instPath%\ +copy %qtPath%\bin\Qt5Widgets.dll %instPath%\ +copy %qtPath%\bin\Qt5WinExtras.dll %instPath%\ + +mkdir %instPath%\platforms +copy %qtPath%\plugins\platforms\qdirect2d.dll %instPath%\platforms\ +copy %qtPath%\plugins\platforms\qminimal.dll %instPath%\platforms\ +copy %qtPath%\plugins\platforms\qoffscreen.dll %instPath%\platforms\ +copy %qtPath%\plugins\platforms\qwindows.dll %instPath%\platforms\ + +mkdir %instPath%\styles +copy %qtPath%\plugins\styles\qwindowsvistastyle.dll %instPath%\styles\ + +ECHO Copying OpenSSL libs +rem copy /y %~dp0OpenSSL\%archPath%\libeay32.dll %instPath%\ +rem copy /y %~dp0OpenSSL\%archPath%\ssleay32.dll %instPath%\ +IF %archPath% == Win32 ( + copy /y %~dp0OpenSSL\Win32\libssl-1_1.dll %instPath%\ + copy /y %~dp0OpenSSL\Win32\libcrypto-1_1.dll %instPath%\ +) +IF %archPath% == x64 ( + copy /y %~dp0OpenSSL\x64\libssl-1_1-x64.dll %instPath%\ + copy /y %~dp0OpenSSL\x64\libcrypto-1_1-x64.dll %instPath%\ +) +rem for openssl +copy %sysPath%\msvcr100.dll %instPath%\ + +ECHO Copying Project and Librarys +copy %srcPath%\MiscHelpers.dll %instPath%\ +copy %srcPath%\QSbieAPI.dll %instPath%\ +copy %srcPath%\QtSingleApp.dll %instPath%\ +copy %srcPath%\SandMan.exe %instPath%\ + +ECHO Copying SandMan translations + +mkdir %instPath%\translations\ +rem copy /y %~dp0..\SandboxiePlus\SandMan\sandman_*.qm %instPath%\translations\ +copy /y %~dp0..\SandboxiePlus\Build_SandMan_%archPath%\release\sandman_*.qm %instPath%\translations\ + +ECHO Copying Sandboxie + +copy /y %sbiePath%\SbieSvc.exe %instPath%\ +copy /y %sbiePath%\SbieDll.dll %instPath%\ + +copy /y %sbiePath%\SbieDrv.sys %instPath%\ +copy /y %sbiePath%\SbieDrv.pdb %instPath%\ + +copy /y %sbiePath%\SbieCtrl.exe %instPath%\ +copy /y %sbiePath%\Start.exe %instPath%\ +copy /y %sbiePath%\kmdutil.exe %instPath%\ +copy /y %sbiePath%\SbieIni.exe %instPath%\ +copy /y %sbiePath%\SbieMsg.dll %instPath%\ +copy /y %sbiePath%\SboxHostDll.dll %instPath%\ + +copy /y %sbiePath%\SandboxieBITS.exe %instPath%\ +copy /y %sbiePath%\SandboxieCrypto.exe %instPath%\ +copy /y %sbiePath%\SandboxieDcomLaunch.exe %instPath%\ +copy /y %sbiePath%\SandboxieRpcSs.exe %instPath%\ +copy /y %sbiePath%\SandboxieWUAU.exe %instPath%\ + +IF %archPath% == x64 ( + mkdir %instPath%\32\ + copy /y %~dp0..\Sandboxie\Bin\Win32\SbieRelease\SbieSvc.exe %instPath%\32\ + copy /y %~dp0..\Sandboxie\Bin\Win32\SbieRelease\SbieDll.dll %instPath%\32\ +) + +copy /y %~dp0..\Sandboxie\install\Templates.ini %instPath%\ + +copy /y %~dp0..\Sandboxie\install\Manifest0.txt %instPath%\ +copy /y %~dp0..\Sandboxie\install\Manifest1.txt %instPath%\ +copy /y %~dp0..\Sandboxie\install\Manifest2.txt %instPath%\ + + + diff --git a/Installer/get_openssl.cmd b/Installer/get_openssl.cmd new file mode 100644 index 00000000..65c662ef --- /dev/null +++ b/Installer/get_openssl.cmd @@ -0,0 +1,8 @@ +mkdir %~dp0\OpenSSL + +curl --ssl-no-revoke -L http://wiki.overbyte.eu/arch/openssl-1.1.1i-win64.zip -o %~dp0\OpenSSL\openssl-1.1.1i-win64.zip +"C:\Program Files\7-Zip\7z.exe" x -o%~dp0\OpenSSL\x64\ %~dp0\OpenSSL\openssl-1.1.1i-win64.zip + +curl --ssl-no-revoke -L http://wiki.overbyte.eu/arch/openssl-1.1.1i-win32.zip -o %~dp0\OpenSSL\openssl-1.1.1i-win32.zip +"C:\Program Files\7-Zip\7z.exe" x -o%~dp0\OpenSSL\Win32\ %~dp0\OpenSSL\openssl-1.1.1i-win32.zip + diff --git a/Installer/merge_builds.cmd b/Installer/merge_builds.cmd new file mode 100644 index 00000000..9648f148 --- /dev/null +++ b/Installer/merge_builds.cmd @@ -0,0 +1,15 @@ +REM @ECHO OFF + +call %~dp0get_openssl.cmd + +call %~dp0copy_build.cmd x64 + +call %~dp0copy_build.cmd x86 + + +REM mkdir %rootPath%\SbiePlus64\LogAPI +REM copy /y %~dp0..\LogApiDll\output\amd64\VerboseDebug\logapi64.dll %rootPath%\SbiePlus64\LogAPI\logapi64.dll +REM copy /y %~dp0..\LogApiDll\output\i386\VerboseDebug\logapi32.dll %rootPath%\SbiePlus64\LogAPI\logapi32.dll + +REM mkdir %rootPath%\SbiePlus32\LogAPI +REM copy /y %~dp0..\LogApiDll\output\i386\VerboseDebug\logapi32.dll %rootPath%\SbiePlus32\LogAPI\logapi32.dll \ No newline at end of file diff --git a/README.md b/README.md index 911907fa..43f31835 100644 --- a/README.md +++ b/README.md @@ -26,12 +26,14 @@ Open Source release - mpheath - help with inno setup ### Translators -- yuhao2348732 - ZH -- nkh0472 - CN -- bastik-1001 - DE -- JNylson - PT -- lufog - RU -- xorcan -RT +- yuhao2348732 - Chinese Simplified +- nkh0472 - Chinese Simplified +- bastik-1001 - German +- JNylson - Portuguese +- lufog - Russian +- xorcan - Turkish +- TragicLifeHu - Chinese Traditional + More volunteers welcome ;) diff --git a/Sandboxie/SandboxDrv.sln b/Sandboxie/SandboxDrv.sln index 1ec480b6..af16cc67 100644 --- a/Sandboxie/SandboxDrv.sln +++ b/Sandboxie/SandboxDrv.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.28307.1022 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SboxDrv", "core\drv\SboxDrv.vcxproj", "{4019C5EB-8D1E-40E4-B7D1-5601B4B27288}" ProjectSection(ProjectDependencies) = postProject diff --git a/Sandboxie/SboxHostDll/SboxHostDll.vcxproj b/Sandboxie/SboxHostDll/SboxHostDll.vcxproj index 988d7a9e..8d1540e5 100644 --- a/Sandboxie/SboxHostDll/SboxHostDll.vcxproj +++ b/Sandboxie/SboxHostDll/SboxHostDll.vcxproj @@ -80,6 +80,7 @@ Use Disabled Sync + true SbieDll.lib;psapi.lib;%(AdditionalDependencies) @@ -92,6 +93,7 @@ Use Disabled Sync + true SbieDll.lib;psapi.lib;%(AdditionalDependencies) @@ -105,6 +107,7 @@ Sync + true true @@ -120,6 +123,7 @@ Sync + true true diff --git a/Sandboxie/apps/com/BITS/SandboxBITS.vcxproj b/Sandboxie/apps/com/BITS/SandboxBITS.vcxproj index 0f169ae2..64cb88e4 100644 --- a/Sandboxie/apps/com/BITS/SandboxBITS.vcxproj +++ b/Sandboxie/apps/com/BITS/SandboxBITS.vcxproj @@ -75,6 +75,7 @@ Disabled + true advapi32.lib;kernel32.lib;ntdll.lib;gdi32.lib;user32.lib;secur32.lib;psapi.lib;ole32.lib;wtsapi32.lib;SbieDll.lib;%(AdditionalDependencies) @@ -83,6 +84,7 @@ Disabled + true advapi32.lib;kernel32.lib;ntdll.lib;gdi32.lib;user32.lib;secur32.lib;psapi.lib;ole32.lib;wtsapi32.lib;SbieDll.lib;%(AdditionalDependencies) @@ -93,12 +95,18 @@ advapi32.lib;kernel32.lib;ntdll.lib;gdi32.lib;user32.lib;secur32.lib;psapi.lib;ole32.lib;wtsapi32.lib;SbieDll.lib;%(AdditionalDependencies) + + true + advapi32.lib;kernel32.lib;ntdll.lib;gdi32.lib;user32.lib;secur32.lib;psapi.lib;ole32.lib;wtsapi32.lib;SbieDll.lib;%(AdditionalDependencies) + + true + diff --git a/Sandboxie/apps/com/Crypto/SandboxCrypto.vcxproj b/Sandboxie/apps/com/Crypto/SandboxCrypto.vcxproj index f9b7b6ab..dc993746 100644 --- a/Sandboxie/apps/com/Crypto/SandboxCrypto.vcxproj +++ b/Sandboxie/apps/com/Crypto/SandboxCrypto.vcxproj @@ -79,6 +79,7 @@ Disabled + true SbieDll.lib;ntdll.lib;kernel32.lib;secur32.lib;advapi32.lib;user32.lib;%(AdditionalDependencies) @@ -87,6 +88,7 @@ Disabled + true SbieDll.lib;ntdll.lib;kernel32.lib;secur32.lib;advapi32.lib;user32.lib;%(AdditionalDependencies) @@ -97,12 +99,18 @@ SbieDll.lib;ntdll.lib;kernel32.lib;secur32.lib;advapi32.lib;user32.lib;%(AdditionalDependencies) + + true + SbieDll.lib;ntdll.lib;kernel32.lib;secur32.lib;advapi32.lib;user32.lib;%(AdditionalDependencies) + + true + diff --git a/Sandboxie/apps/com/DcomLaunch/SboxDcomLaunch.vcxproj b/Sandboxie/apps/com/DcomLaunch/SboxDcomLaunch.vcxproj index 132c6683..2758d8ff 100644 --- a/Sandboxie/apps/com/DcomLaunch/SboxDcomLaunch.vcxproj +++ b/Sandboxie/apps/com/DcomLaunch/SboxDcomLaunch.vcxproj @@ -78,6 +78,7 @@ Disabled + true SbieDll.lib;kernel32.lib;secur32.lib;Advapi32.lib;Ntdll.lib;User32.lib @@ -87,6 +88,7 @@ Disabled + true SbieDll.lib;kernel32.lib;secur32.lib;Advapi32.lib;Ntdll.lib;User32.lib @@ -95,6 +97,7 @@ + true SbieDll.lib;kernel32.lib;secur32.lib;Advapi32.lib;Ntdll.lib;User32.lib @@ -103,6 +106,7 @@ + true SbieDll.lib;kernel32.lib;secur32.lib;Advapi32.lib;Ntdll.lib;User32.lib diff --git a/Sandboxie/apps/com/RpcSs/SandboxRpcSs.vcxproj b/Sandboxie/apps/com/RpcSs/SandboxRpcSs.vcxproj index 35d5b343..59ff75d1 100644 --- a/Sandboxie/apps/com/RpcSs/SandboxRpcSs.vcxproj +++ b/Sandboxie/apps/com/RpcSs/SandboxRpcSs.vcxproj @@ -79,6 +79,7 @@ Disabled + true SbieDll.lib;ws2_32.lib;advapi32.lib;kernel32.lib;ntdll.lib;gdi32.lib;user32.lib;secur32.lib;psapi.lib @@ -88,6 +89,7 @@ Disabled + true SbieDll.lib;ws2_32.lib;advapi32.lib;kernel32.lib;ntdll.lib;gdi32.lib;user32.lib;secur32.lib;psapi.lib @@ -96,6 +98,7 @@ + true SbieDll.lib;ws2_32.lib;advapi32.lib;kernel32.lib;ntdll.lib;gdi32.lib;user32.lib;secur32.lib;psapi.lib @@ -104,6 +107,7 @@ + true SbieDll.lib;ws2_32.lib;advapi32.lib;kernel32.lib;ntdll.lib;gdi32.lib;user32.lib;secur32.lib;psapi.lib diff --git a/Sandboxie/apps/com/WUAU/SandboxWUAU.vcxproj b/Sandboxie/apps/com/WUAU/SandboxWUAU.vcxproj index b8a94724..b2105437 100644 --- a/Sandboxie/apps/com/WUAU/SandboxWUAU.vcxproj +++ b/Sandboxie/apps/com/WUAU/SandboxWUAU.vcxproj @@ -83,6 +83,7 @@ Disabled + true SbieDll.lib;secur32.lib;ntdll.lib;psapi.lib;AdvApi32.lib;user32.lib;%(AdditionalDependencies) @@ -92,6 +93,7 @@ Disabled + true SbieDll.lib;secur32.lib;ntdll.lib;psapi.lib;AdvApi32.lib;user32.lib;%(AdditionalDependencies) @@ -102,6 +104,7 @@ + true SbieDll.lib;secur32.lib;ntdll.lib;psapi.lib;AdvApi32.lib;user32.lib;%(AdditionalDependencies) @@ -112,6 +115,7 @@ + true SbieDll.lib;secur32.lib;ntdll.lib;psapi.lib;AdvApi32.lib;user32.lib;%(AdditionalDependencies) diff --git a/Sandboxie/apps/common/Common.vcxproj b/Sandboxie/apps/common/Common.vcxproj index 698d8efc..c7680231 100644 --- a/Sandboxie/apps/common/Common.vcxproj +++ b/Sandboxie/apps/common/Common.vcxproj @@ -67,6 +67,7 @@ Sync + true true @@ -75,6 +76,7 @@ Sync + true true @@ -83,6 +85,7 @@ Sync + true true @@ -91,6 +94,7 @@ Sync + true true diff --git a/Sandboxie/apps/common/RunBrowser.cpp b/Sandboxie/apps/common/RunBrowser.cpp index 6facec22..cd1419e3 100644 --- a/Sandboxie/apps/common/RunBrowser.cpp +++ b/Sandboxie/apps/common/RunBrowser.cpp @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -123,7 +123,7 @@ void CRunBrowser::OnYes() void CRunBrowser::OnNo() { ShellExecute( - m_pParentWnd->m_hWnd, NULL, m_url, NULL, NULL, SW_SHOWNORMAL); + m_pParentWnd ? m_pParentWnd->m_hWnd : NULL , NULL, m_url, NULL, NULL, SW_SHOWNORMAL); EndDialog(0); } diff --git a/Sandboxie/apps/control/AppPage.cpp b/Sandboxie/apps/control/AppPage.cpp index 1d2e9ca2..693e3a70 100644 --- a/Sandboxie/apps/control/AppPage.cpp +++ b/Sandboxie/apps/control/AppPage.cpp @@ -1,5 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -46,13 +47,14 @@ enum { #define MODIF_IEXPLORE 0x0001 #define MODIF_FIREFOX 0x0002 #define MODIF_CHROME 0x0004 +#define MODIF_EDGE 0x0008 #define MODIF_OTHERWB 0x0080 #define MODIF_NONLOCAL 0x2000 #define MODIF_ADDONS 0x4000 #define MODIF_BROWSER \ - (MODIF_IEXPLORE | MODIF_FIREFOX | MODIF_CHROME | MODIF_OTHERWB) + (MODIF_IEXPLORE | MODIF_EDGE | MODIF_FIREFOX | MODIF_CHROME | MODIF_OTHERWB) //--------------------------------------------------------------------------- @@ -145,6 +147,8 @@ CAppPage::CAppPage(TMPL_INFO *info, const CString &BoxName) if (m_tmpl_info.ClassModifier & MODIF_IEXPLORE) m_titleForPage = L"Internet Explorer"; + if (m_tmpl_info.ClassModifier & MODIF_EDGE) + m_titleForPage = "Microsoft Edge"; if (m_tmpl_info.ClassModifier & MODIF_FIREFOX) m_titleForPage = L"Firefox"; if (m_tmpl_info.ClassModifier & MODIF_CHROME) @@ -244,8 +248,7 @@ void CAppPage::Access_OnInitDialog(CBox &box) void CAppPage::Access_OnOK(CBox &box) { - BOOL global = CBoxes::GetInstance().GetBox(0). - IsTemplateEnabled(Template_ScreenReader); + BOOL global = CBoxes::GetInstance().GetBox(0).IsTemplateEnabled(Template_ScreenReader); BOOL wasEnabled = box.IsTemplateEnabled(Template_ScreenReader); if (! wasEnabled) @@ -538,24 +541,32 @@ void CAppPage::Template_Filter() POSITION old_pos = pos; CString name = m_tmpl_sections.GetNext(pos); BOOL ie = (name.Find(L"IExplore_") != -1); + BOOL edge = (name.Find(L"Edge_") != -1); BOOL ff = (name.Find(L"Firefox_") != -1) || (name.Find(L"Waterfox_") != -1) - || (name.Find(L"PaleMoon_") != -1); - BOOL ch = (name.Find(L"Chrome_") != -1) - || (name.Find(L"Iron_") != -1) - || (name.Find(L"Dragon_") != -1) - || (name.Find(L"Vivaldi_") != -1) - || (name.Find(L"Neon_") != -1); + || (name.Find(L"PaleMoon_") != -1) + || (name.Find(L"SeaMonkey_") != -1); + BOOL ch = (name.Find(L"Chrome_") != -1); + BOOL other = (name.Find(L"Dragon_") != -1) + || (name.Find(L"Iron_") != -1) + || (name.Find(L"Ungoogled_") != -1) + || (name.Find(L"Vivaldi_") != -1) + || (name.Find(L"Brave_") != -1) + || (name.Find(L"Maxthon_6_") != -1) + || (name.Find(L"Opera_") != -1) + || (name.Find(L"Yandex_") != -1); BOOL keep = FALSE; if ((modif & MODIF_IEXPLORE) && ie) keep = TRUE; + else if ((modif & MODIF_EDGE) && edge) + keep = TRUE; else if ((modif & MODIF_FIREFOX) && ff) keep = TRUE; else if ((modif & MODIF_CHROME) && ch) keep = TRUE; - else if ((modif & MODIF_OTHERWB) && (! ie) && (! ff) && (! ch)) + else if ((modif & MODIF_OTHERWB) && other) keep = TRUE; if (modif & MODIF_NONLOCAL) { @@ -989,6 +1000,8 @@ void CAppPage::AddPages(CPropertySheet &sheet, const CString &BoxName) info.WithCreate = FALSE; info.ClassModifier = MODIF_IEXPLORE; // IExplore m_app_pages.AddTail(new CAppPage(&info, BoxName)); + info.ClassModifier = MODIF_EDGE; // Microsoft Edge + m_app_pages.AddTail(new CAppPage(&info, BoxName)); info.ClassModifier = MODIF_FIREFOX; // Firefox m_app_pages.AddTail(new CAppPage(&info, BoxName)); info.WithLink = TRUE; @@ -1162,19 +1175,19 @@ void CAppPage::UpdateWebTemplates(CBox &box) // replace with: Template=SeaMonkey_Bookmarks_DirectAccess // - const CString &SeaMonkeyTemplate(L"SeaMonkey_Bookmarks_DirectAccess"); - const CString &SeaMonkeyPath1( - L"%AppData%\\Mozilla\\Profiles\\*\\bookmark*"); - const CString &SeaMonkeyPath2( - L"%AppData%\\Mozilla\\Profiles\\*\\places*"); + //const CString &SeaMonkeyTemplate(L"SeaMonkey_Bookmarks_DirectAccess"); + //const CString &SeaMonkeyPath1( + // L"%AppData%\\Mozilla\\Profiles\\*\\bookmark*"); + //const CString &SeaMonkeyPath2( + // L"%AppData%\\Mozilla\\Profiles\\*\\places*"); - UpdateTemplates2( - box, L"seamonkey.exe", SeaMonkeyTemplate, - SeaMonkeyPath1, SeaMonkeyPath2); + //UpdateTemplates2( + // box, L"seamonkey.exe", SeaMonkeyTemplate, + // SeaMonkeyPath1, SeaMonkeyPath2); - UpdateTemplates2( - box, L"seamon~1.exe", SeaMonkeyTemplate, - SeaMonkeyPath1, SeaMonkeyPath2); + //UpdateTemplates2( + // box, L"seamon~1.exe", SeaMonkeyTemplate, + // SeaMonkeyPath1, SeaMonkeyPath2); // // find and remove: @@ -1184,10 +1197,10 @@ void CAppPage::UpdateWebTemplates(CBox &box) // replace with: Template=SeaMonkey_Bookmarks_DirectAccess // - UpdateTemplates2( - box, L"opera.exe", L"Opera_Bookmarks_DirectAccess", - L"%AppData%\\Opera\\Opera\\Profile\\opera6.adr", - L"%AppData%\\Opera\\Opera\\Profile\\notes.adr"); + //UpdateTemplates2( + // box, L"opera.exe", L"Opera_Bookmarks_DirectAccess", + // L"%AppData%\\Opera\\Opera\\Profile\\opera6.adr", + // L"%AppData%\\Opera\\Opera\\Profile\\notes.adr"); } @@ -1220,28 +1233,28 @@ void CAppPage::UpdateEmailTemplates(CBox &box) // Outlook Express // - CStringList _OutlookExpressFiles; - CStringList _OutlookExpressKeys; + //CStringList _OutlookExpressFiles; + //CStringList _OutlookExpressKeys; - _OutlookExpressFiles.AddTail(L"%AppData%\\Identities"); - _OutlookExpressFiles.AddTail(L"%Local AppData%\\Identities"); - _OutlookExpressFiles.AddTail(L"%AppData%\\Microsoft\\Address Book"); - _OutlookExpressFiles.AddTail(L"*.eml"); + //_OutlookExpressFiles.AddTail(L"%AppData%\\Identities"); + //_OutlookExpressFiles.AddTail(L"%Local AppData%\\Identities"); + //_OutlookExpressFiles.AddTail(L"%AppData%\\Microsoft\\Address Book"); + //_OutlookExpressFiles.AddTail(L"*.eml"); - _OutlookExpressKeys.AddTail(L"HKEY_CURRENT_USER\\Identities"); - _OutlookExpressKeys.AddTail( - L"HKEY_CURRENT_USER\\Software\\Microsoft\\Outlook Express"); - _OutlookExpressKeys.AddTail( - L"HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Account Manager"); - _OutlookExpressKeys.AddTail( - L"HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Outlook Express"); - _OutlookExpressKeys.AddTail( - L"HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\" - L"Microsoft\\Outlook Express"); + //_OutlookExpressKeys.AddTail(L"HKEY_CURRENT_USER\\Identities"); + //_OutlookExpressKeys.AddTail( + // L"HKEY_CURRENT_USER\\Software\\Microsoft\\Outlook Express"); + //_OutlookExpressKeys.AddTail( + // L"HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Account Manager"); + //_OutlookExpressKeys.AddTail( + // L"HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Outlook Express"); + //_OutlookExpressKeys.AddTail( + // L"HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\" + // L"Microsoft\\Outlook Express"); - UpdateTemplates3( - box, L"msimn.exe", L"Outlook_Express", - _OutlookExpressFiles, _OutlookExpressKeys); + //UpdateTemplates3( + // box, L"msimn.exe", L"Outlook_Express", + // _OutlookExpressFiles, _OutlookExpressKeys); // // find and remove: @@ -1370,9 +1383,9 @@ void CAppPage::UpdateEmailTemplates(CBox &box) box, L"thunderbird.exe", _Thunderbird, _ThunderbirdFiles, _ThunderbirdKeys); - UpdateTemplates3( - box, L"thunde~1.exe", _Thunderbird, - _ThunderbirdFiles, _ThunderbirdKeys); + //UpdateTemplates3( + // box, L"thunde~1.exe", _Thunderbird, + // _ThunderbirdFiles, _ThunderbirdKeys); // // find and remove: @@ -1410,9 +1423,9 @@ void CAppPage::UpdateEmailTemplates(CBox &box) box, L"seamonkey.exe", _SeaMonkey, _SeaMonkeyFiles, _SeaMonkeyKeys); - UpdateTemplates3( - box, L"seamon~1.exe", _SeaMonkey, - _SeaMonkeyFiles, _SeaMonkeyKeys); + //UpdateTemplates3( + // box, L"seamon~1.exe", _SeaMonkey, + // _SeaMonkeyFiles, _SeaMonkeyKeys); // // find and remove: @@ -1557,5 +1570,18 @@ void CAppPage::SetDefaultTemplates6(CBox &box) void CAppPage::SetDefaultTemplates7(CBox &box) { box.EnableTemplate(L"BlockPorts", TRUE); + //box.EnableTemplate(L"WindowsFontCache", TRUE); // since 5.46.3 open by driver box.EnableTemplate(L"qWave", TRUE); + SetDefaultTemplates8(box); +} + +//--------------------------------------------------------------------------- +// SetDefaultTemplates8 +//--------------------------------------------------------------------------- + + +void CAppPage::SetDefaultTemplates8(CBox& box) +{ + box.EnableTemplate(L"FileCppy", TRUE); + box.EnableTemplate(L"SkipHook", TRUE); } diff --git a/Sandboxie/apps/control/AppPage.h b/Sandboxie/apps/control/AppPage.h index fd03e5c6..eb24aca3 100644 --- a/Sandboxie/apps/control/AppPage.h +++ b/Sandboxie/apps/control/AppPage.h @@ -126,6 +126,7 @@ public: static void SetDefaultTemplates6(CBox &box); static void SetDefaultTemplates7(CBox &box); + static void SetDefaultTemplates8(CBox& box); }; diff --git a/Sandboxie/apps/control/Box.cpp b/Sandboxie/apps/control/Box.cpp index 0952fdeb..6a5ff0f4 100644 --- a/Sandboxie/apps/control/Box.cpp +++ b/Sandboxie/apps/control/Box.cpp @@ -226,18 +226,23 @@ void CBox::SetDefaultSettings() int cfglvl; ini.GetNum(m_name, _ConfigLevel, cfglvl); - if (cfglvl >= 7) + if (cfglvl >= 8) return; BOOL ok = TRUE; if (cfglvl >= 1) { - ok = ini.SetNum(m_name, _ConfigLevel, 7); + ok = ini.SetNum(m_name, _ConfigLevel, 8); if (ok) { - if (cfglvl == 6) { + if (cfglvl == 7) { + + CAppPage::SetDefaultTemplates8(*this); + + } + else if (cfglvl == 6) { CAppPage::SetDefaultTemplates7(*this); @@ -250,7 +255,7 @@ void CBox::SetDefaultSettings() goto done; } - ok = ini.SetNum(m_name, _ConfigLevel, 7); + ok = ini.SetNum(m_name, _ConfigLevel, 8); if (ok) { diff --git a/Sandboxie/apps/control/Control.vcxproj b/Sandboxie/apps/control/Control.vcxproj index 1ce920f0..2e2556ca 100644 --- a/Sandboxie/apps/control/Control.vcxproj +++ b/Sandboxie/apps/control/Control.vcxproj @@ -106,6 +106,7 @@ false Use + true uafxcw.lib;common.lib;SbieDll.lib;ntdll.lib;psapi.lib;wininet.lib;winhttp.lib @@ -124,6 +125,7 @@ Sync Use + true uafxcw.lib;common.lib;SbieDll.lib;ntdll.lib;psapi.lib;wininet.lib;winhttp.lib @@ -141,6 +143,7 @@ Sync Use + true uafxcw.lib;common.lib;SbieDll.lib;ntdll.lib;psapi.lib;wininet.lib;winhttp.lib @@ -156,6 +159,7 @@ Sync Use + true uafxcw.lib;common.lib;SbieDll.lib;ntdll.lib;psapi.lib;wininet.lib;winhttp.lib diff --git a/Sandboxie/apps/control/Control.vcxproj.filters b/Sandboxie/apps/control/Control.vcxproj.filters index 75ad0d53..681db065 100644 --- a/Sandboxie/apps/control/Control.vcxproj.filters +++ b/Sandboxie/apps/control/Control.vcxproj.filters @@ -82,6 +82,7 @@ common\json + @@ -164,6 +165,7 @@ common\json + diff --git a/Sandboxie/apps/control/MonitorDialog.cpp b/Sandboxie/apps/control/MonitorDialog.cpp index dad18351..94554f16 100644 --- a/Sandboxie/apps/control/MonitorDialog.cpp +++ b/Sandboxie/apps/control/MonitorDialog.cpp @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Sandboxie/apps/control/Updater.cpp b/Sandboxie/apps/control/Updater.cpp index 63e84e72..cdab6561 100644 --- a/Sandboxie/apps/control/Updater.cpp +++ b/Sandboxie/apps/control/Updater.cpp @@ -402,8 +402,19 @@ ULONG CUpdater::UpdaterServiceThread(void *lpParameter) } - if (!pContext->version.IsEmpty() && pContext->version.Compare(_T(MY_VERSION_STRING)) != 0) + + if (!pContext->version.IsEmpty()) // && pContext->version.Compare(_T(MY_VERSION_STRING)) != 0) { + UCHAR myVersion[4] = { MY_VERSION_BINARY, 0 }; + ULONG MyVersion = ntohl(*(ULONG*)&myVersion); + + ULONG Version = 0; + for (int Position = 0, Bits = 24; Position < pContext->version.GetLength() && Bits >= 0; Bits -= 8) { + CString Num = pContext->version.Tokenize(L".", Position); + Version |= (_wtoi(Num) & 0xFF) << Bits; + } + + if (Version > MyVersion) if (pContext->Manual || IgnoredUpdates.Find(pContext->version) == NULL) { bNothing = false; diff --git a/Sandboxie/apps/ini/SbieIni.vcxproj b/Sandboxie/apps/ini/SbieIni.vcxproj index 724fac54..4f686c80 100644 --- a/Sandboxie/apps/ini/SbieIni.vcxproj +++ b/Sandboxie/apps/ini/SbieIni.vcxproj @@ -101,6 +101,7 @@ Disabled + true Console @@ -113,6 +114,7 @@ Disabled + true Console @@ -126,6 +128,7 @@ + true Console @@ -139,6 +142,7 @@ + true Console diff --git a/Sandboxie/apps/ldr/SbieLdr.vcxproj b/Sandboxie/apps/ldr/SbieLdr.vcxproj index 4916c3d9..27ad24b2 100644 --- a/Sandboxie/apps/ldr/SbieLdr.vcxproj +++ b/Sandboxie/apps/ldr/SbieLdr.vcxproj @@ -98,6 +98,7 @@ Disabled + true Console @@ -111,6 +112,7 @@ Disabled + true Console @@ -125,6 +127,7 @@ + true Console @@ -139,6 +142,7 @@ + true Console diff --git a/Sandboxie/apps/start/Start.vcxproj b/Sandboxie/apps/start/Start.vcxproj index f8673155..47273ea5 100644 --- a/Sandboxie/apps/start/Start.vcxproj +++ b/Sandboxie/apps/start/Start.vcxproj @@ -79,6 +79,7 @@ Sync + true libvcruntime.lib;libucrt.lib;ntdll.lib;User32.lib;Shell32.lib;Shlwapi.lib;Kernel32.lib;Gdi32.lib;SbieDll.lib;Ole32.lib;Common.lib;Advapi32.lib;Comctl32.lib;Comdlg32.lib;uuid.lib @@ -93,6 +94,7 @@ Sync + true libvcruntime.lib;libucrt.lib;ntdll.lib;User32.lib;Shell32.lib;Shlwapi.lib;Kernel32.lib;Gdi32.lib;SbieDll.lib;Ole32.lib;Common.lib;Advapi32.lib;Comctl32.lib;Comdlg32.lib;uuid.lib @@ -117,6 +119,7 @@ Sync + true @@ -133,6 +136,7 @@ Sync + true diff --git a/Sandboxie/common/defines.h b/Sandboxie/common/defines.h index fa2ccccb..04d525e7 100644 --- a/Sandboxie/common/defines.h +++ b/Sandboxie/common/defines.h @@ -1,5 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -90,6 +91,7 @@ typedef enum { WPAD_PORT, GAME_CONFIG_STORE_PORT, SMART_CARD_PORT, + BT_PORT, NUM_DYNAMIC_PORTS } ENUM_DYNAMIC_PORT_TYPE; diff --git a/Sandboxie/common/my_version.h b/Sandboxie/common/my_version.h index df3480d0..6b0fad5d 100644 --- a/Sandboxie/common/my_version.h +++ b/Sandboxie/common/my_version.h @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,8 +21,8 @@ #ifndef _MY_VERSION_H #define _MY_VERSION_H -#define MY_VERSION_BINARY 5,46,5 -#define MY_VERSION_STRING "5.46.5" +#define MY_VERSION_BINARY 5,47,0 +#define MY_VERSION_STRING "5.47.0" #define MY_VERSION_COMPAT "5.46.0" // this refers to the driver ABI compatibility // These #defines are used by either Resource Compiler, or by NSIC installer diff --git a/Sandboxie/common/stream.c b/Sandboxie/common/stream.c index 8567fbb7..2316f6b3 100644 --- a/Sandboxie/common/stream.c +++ b/Sandboxie/common/stream.c @@ -1,5 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -35,6 +36,7 @@ struct STREAM { HANDLE handle; UCHAR *data_ptr; ULONG data_len; + ULONG encoding; __declspec(align(8)) UCHAR data[0]; }; @@ -71,6 +73,7 @@ __declspec(align(16)) NTSTATUS Stream_Open( stream->data_len = 0; stream->data_ptr = &stream->data[0]; + stream->encoding = 0; *out_stream = stream; return STATUS_SUCCESS; @@ -145,6 +148,7 @@ __declspec(align(16)) NTSTATUS Stream_Open( stream->data_len = 0; stream->data_ptr = &stream->data[0]; + stream->encoding = 0; *out_stream = stream; return status; @@ -351,3 +355,203 @@ NTSTATUS Stream_Write_Long( STREAM_PUT_BYTE(b[3]); return STATUS_SUCCESS; } + +//--------------------------------------------------------------------------- +// Stream_Read_BOM +//--------------------------------------------------------------------------- + +NTSTATUS Stream_Read_BOM( + IN STREAM* stream, + ULONG* encoding) +{ + if (stream->data_len == 0) + { + NTSTATUS status = Stream_Read_More(stream); + if (!NT_SUCCESS(status)) + return status; + } + + if (stream->data_len >= 3 && stream->data[0] == 0xEF && stream->data[1] == 0xBB && stream->data[2] == 0xBF) + { + stream->data_ptr += 3; + stream->data_len -= 3; + + stream->encoding = 1; + //DbgPrint("sbie read ini, found UTF-8 Signature\n"); + } + else if (stream->data_len >= 2 && stream->data[0] == 0xFF && stream->data[1] == 0xFE) + { + stream->data_ptr += 2; + stream->data_len -= 2; + + stream->encoding = 0; + //DbgPrint("sbie read ini, found Unicode (UTF-16 LE) BOM\n"); + } + else if (stream->data_len >= 2 && stream->data[0] == 0xFE && stream->data[1] == 0xFF) + { + stream->data_ptr += 2; + stream->data_len -= 2; + + stream->encoding = 2; + //DbgPrint("sbie read ini, found Unicode (UTF-16 BE) BOM\n"); + } + else + { + // If there is no BOM/Signature try to detect the file type + // Unicode Litle Endian (windows wchar_t) will have the n*2+1 bytes 0 as long, as no higher unicode chrakters are used + BOOLEAN LooksUnicodeLE = TRUE; + // similrly Unicode Big Endian (byte swaped) will have the n*2 bytes 0 as long + BOOLEAN LooksUnicodeBE = TRUE; + // UTF-8 shouldn't have null bytes + for (ULONG pos = 0; (pos + 1) < min(stream->data_len, 16); pos += 2) // check first 8 char16's + { + if (stream->data[pos] != 0) + LooksUnicodeBE = FALSE; + if (stream->data[pos + 1] != 0) + LooksUnicodeLE = FALSE; + } + + if (!LooksUnicodeLE && !LooksUnicodeBE) + { + stream->encoding = 1; + //DbgPrint("sbie read ini, looks UTF-8 encoded\n"); + } + else if (!LooksUnicodeLE && LooksUnicodeBE) + { + stream->encoding = 2; + //DbgPrint("sbie read ini, looks Unicode (UTF-16 BE) encoded\n"); + } + else + { + stream->encoding = 0; + //if (LooksUnicodeLE && !LooksUnicodeBE) + // DbgPrint("sbie read ini, looks Unicode (UTF-16 LE) encoded\n"); + //else + // DbgPrint("sbie read ini, encoding looks broken, assuming (UTF-16 LE)\n"); + } + } + + if (encoding) *encoding = stream->encoding; + + return STATUS_SUCCESS; +} + +//--------------------------------------------------------------------------- +// Stream_Read_Wchar +//--------------------------------------------------------------------------- + +NTSTATUS Stream_Read_Wchar( + IN STREAM* stream, + OUT USHORT* v) +{ + if (stream->encoding == 0) // Unicode Litle Endian + { + UCHAR* b = (UCHAR*)v; + STREAM_GET_BYTE(b[0]); + STREAM_GET_BYTE(b[1]); + } + else if (stream->encoding == 2) // Unicode Big Endian + { + UCHAR* b = (UCHAR*)v; + STREAM_GET_BYTE(b[1]); + STREAM_GET_BYTE(b[0]); + } + else if (stream->encoding == 1) // utf 8 + { + UCHAR cur_byte; + + read_next: + STREAM_GET_BYTE(cur_byte); + + //Figure out the current code unit to determine the range. It is split into 6 main groups, each of which handles the data + //differently from one another. + if (cur_byte < 0x80) { + //0..127, the ASCII range. + + //We directly plug in the values to the UTF-16 code unit. + *v = (wchar_t)(cur_byte); + } + else if (cur_byte < 0xC0) { + //0x80..0xBF, we ignore. These are reserved for UTF-8 encoding. + goto read_next; + } + else if (cur_byte < 0xE0) { + //128..2047, the extended ASCII range, and into the Basic Multilingual Plane. + + //Work on the first code unit. + wchar_t highShort = (wchar_t)(cur_byte & 0x1F); + //Increment the current code unit pointer to the next code unit + STREAM_GET_BYTE(cur_byte); + //Work on the second code unit. + wchar_t lowShort = (wchar_t)(cur_byte & 0x3F); + + //Create the UTF-16 code unit, then increment the iterator + int unicode = (highShort << 8) | lowShort; + + //Check to make sure the "unicode" is in the range [0..D7FF] and [E000..FFFF]. + if ((0 <= unicode && unicode <= 0xD7FF) || (0xE000 <= unicode && unicode <= 0xFFFF)) { + //Directly set the value to the UTF-16 code unit. + *v = (wchar_t)unicode; + } + } + else if (cur_byte < 0xF0) { + //2048..65535, the remaining Basic Multilingual Plane. + + //Work on the UTF-8 code units one by one. + //If drawn out, it would be 1110aaaa 10bbbbcc 10ccdddd + //Where a is 4th byte, b is 3rd byte, c is 2nd byte, and d is 1st byte. + wchar_t fourthChar = (wchar_t)(cur_byte & 0xF); + STREAM_GET_BYTE(cur_byte); + wchar_t thirdChar = (wchar_t)(cur_byte & 0x3C) >> 2; + wchar_t secondCharHigh = (wchar_t)(cur_byte & 0x3); + STREAM_GET_BYTE(cur_byte); + wchar_t secondCharLow = (wchar_t)(cur_byte & 0x30) >> 4; + wchar_t firstChar = (wchar_t)(cur_byte & 0xF); + + //Create the resulting UTF-16 code unit, then increment the iterator. + int unicode = (fourthChar << 12) | (thirdChar << 8) | (secondCharHigh << 6) | (secondCharLow << 4) | firstChar; + + //Check to make sure the "unicode" is in the range [0..D7FF] and [E000..FFFF]. + //According to math, UTF-8 encoded "unicode" should always fall within these two ranges. + if ((0 <= unicode && unicode <= 0xD7FF) || (0xE000 <= unicode && unicode <= 0xFFFF)) { + //Directly set the value to the UTF-16 code unit. + *v = (wchar_t)unicode; + } + } + else if (cur_byte < 0xF8) { + //65536..10FFFF, the Unicode UTF range + + //Work on the UTF-8 code units one by one. + //If drawn out, it would be 11110abb 10bbcccc 10ddddee 10eeffff + //Where a is 6th byte, b is 5th byte, c is 4th byte, and so on. + wchar_t sixthChar = (wchar_t)(cur_byte & 0x4) >> 2; + wchar_t fifthCharHigh = (wchar_t)(cur_byte & 0x3); + STREAM_GET_BYTE(cur_byte); + wchar_t fifthCharLow = (wchar_t)(cur_byte & 0x30) >> 4; + wchar_t fourthChar = (wchar_t)(cur_byte & 0xF); + STREAM_GET_BYTE(cur_byte); + wchar_t thirdChar = (wchar_t)(cur_byte & 0x3C) >> 2; + wchar_t secondCharHigh = (wchar_t)(cur_byte & 0x3); + STREAM_GET_BYTE(cur_byte); + wchar_t secondCharLow = (wchar_t)(cur_byte & 0x30) >> 4; + wchar_t firstChar = (wchar_t)(cur_byte & 0xF); + + int unicode = (sixthChar << 4) | (fifthCharHigh << 2) | fifthCharLow | (fourthChar << 12) | (thirdChar << 8) | (secondCharHigh << 6) | (secondCharLow << 4) | firstChar; + wchar_t highSurrogate = (unicode - 0x10000) / 0x400 + 0xD800; + wchar_t lowSurrogate = (unicode - 0x10000) % 0x400 + 0xDC00; + + //Set the UTF-16 code units + //*v1 = lowSurrogate; + //*v2 = highSurrogate; + + *v = L'_'; + } + else { + goto read_next; + } + } + else + return STATUS_INVALID_PARAMETER; + + return STATUS_SUCCESS; +} \ No newline at end of file diff --git a/Sandboxie/common/stream.h b/Sandboxie/common/stream.h index e01ab76b..a300bdac 100644 --- a/Sandboxie/common/stream.h +++ b/Sandboxie/common/stream.h @@ -1,5 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -83,6 +84,14 @@ NTSTATUS Stream_Write_Long( IN STREAM *stream, IN ULONG v); +NTSTATUS Stream_Read_BOM( + IN STREAM* stream, + ULONG* encoding); + +NTSTATUS Stream_Read_Wchar( + IN STREAM* stream, + OUT USHORT* v); + //--------------------------------------------------------------------------- #endif // _MY_STREAM_H diff --git a/Sandboxie/core/dll/SboxDll.vcxproj b/Sandboxie/core/dll/SboxDll.vcxproj index 87b57bde..59d827eb 100644 --- a/Sandboxie/core/dll/SboxDll.vcxproj +++ b/Sandboxie/core/dll/SboxDll.vcxproj @@ -94,6 +94,7 @@ false Default + true ntdll.lib;uuid.lib;kernel32.lib @@ -113,6 +114,7 @@ Disabled false Default + true ntdll.lib;uuid.lib;kernel32.lib @@ -133,6 +135,7 @@ Default MaxSpeed + true ntdll.lib;uuid.lib;kernel32.lib @@ -151,6 +154,7 @@ false Default + true ntdll.lib;uuid.lib;kernel32.lib @@ -182,6 +186,12 @@ true true + + true + true + true + true + false @@ -191,6 +201,7 @@ + @@ -225,6 +236,12 @@ true true + + true + true + true + true + true true @@ -350,7 +367,9 @@ + + diff --git a/Sandboxie/core/dll/SboxDll.vcxproj.filters b/Sandboxie/core/dll/SboxDll.vcxproj.filters index cff79e26..600f1444 100644 --- a/Sandboxie/core/dll/SboxDll.vcxproj.filters +++ b/Sandboxie/core/dll/SboxDll.vcxproj.filters @@ -173,6 +173,13 @@ ipc + + common + + + + file + @@ -215,6 +222,12 @@ com + + common + + + common + diff --git a/Sandboxie/core/dll/com.c b/Sandboxie/core/dll/com.c index 212e55c2..254907ab 100644 --- a/Sandboxie/core/dll/com.c +++ b/Sandboxie/core/dll/com.c @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Sandboxie/core/dll/config.c b/Sandboxie/core/dll/config.c new file mode 100644 index 00000000..49f3ff7d --- /dev/null +++ b/Sandboxie/core/dll/config.c @@ -0,0 +1,331 @@ +/* + * Copyright 2004-2020 Sandboxie Holdings, LLC + * Copyright 2020-2021 David Xanatos, xanasoft.com + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + //--------------------------------------------------------------------------- + // Config + //--------------------------------------------------------------------------- + +#define NOGDI +#include "dll.h" +#include "common/pool.h" +#include "common\pattern.h" + +//--------------------------------------------------------------------------- +// Functions +//--------------------------------------------------------------------------- + + + +//--------------------------------------------------------------------------- +// Variables +//--------------------------------------------------------------------------- + +extern POOL* Dll_Pool; +extern POOL* Dll_PoolTemp; + +static BOOLEAN Config_MatchImageGroup( + const WCHAR* group, ULONG group_len, const WCHAR* test_str, + ULONG depth); + +static BOOLEAN Config_MatchImage( + const WCHAR* pat_str, ULONG pat_len, const WCHAR* test_str, + ULONG depth); + + +//--------------------------------------------------------------------------- +// Config_MatchImage +//--------------------------------------------------------------------------- + + +_FX BOOLEAN Config_MatchImage( + const WCHAR* pat_str, ULONG pat_len, const WCHAR* test_str, + ULONG depth) +{ + PATTERN* pat; + WCHAR* tmp; + ULONG tmp_len; + BOOLEAN ok; + + // + // if pat_len was specified, we should create the match pattern + // using only the first pat_len characters of pat_str + // + + if (pat_len) { + + tmp_len = (pat_len + 1) * sizeof(WCHAR); + tmp = Dll_AllocTemp(tmp_len); + if (!tmp) + return FALSE; + + wcsncpy(tmp, pat_str, pat_len); + tmp[pat_len] = L'\0'; + + pat = Pattern_Create(Dll_PoolTemp, tmp, TRUE); + + Dll_Free(tmp); + + } + else { + + pat = Pattern_Create(Dll_PoolTemp, pat_str, TRUE); + } + + if (!pat) + return FALSE; + + // + // + // + + if (*pat_str == L'<') { + + ok = Config_MatchImageGroup( + Pattern_Source(pat), 0, test_str, depth + 1); + + Pattern_Free(pat); + + return ok; + } + + // + // create a lower-case copy of test_str + // + + ok = FALSE; + + tmp_len = (wcslen(test_str) + 1) * sizeof(WCHAR); + tmp = Dll_AllocTemp(tmp_len); + if (tmp) { + + memcpy(tmp, test_str, tmp_len); + _wcslwr(tmp); + + ok = Pattern_Match(pat, tmp, wcslen(tmp)); + + Dll_Free(tmp); + } + + Pattern_Free(pat); + + return ok; +} + + +//--------------------------------------------------------------------------- +// Config_MatchImageGroup +//--------------------------------------------------------------------------- + + +_FX BOOLEAN Config_MatchImageGroup( + const WCHAR* group, ULONG group_len, const WCHAR* test_str, + ULONG depth) +{ + ULONG index; + BOOLEAN match = FALSE; + WCHAR conf_buf[2048]; + + if (!group_len) + group_len = wcslen(group); + + for (index = 0; (!match); ++index) { + + // + // get next process group setting, compare to passed group name. + // if the setting is = then we accept it. + // + + NTSTATUS status = SbieApi_QueryConf( + NULL, L"ProcessGroup", index, conf_buf, sizeof(conf_buf) - 16 * sizeof(WCHAR)); + if (!NT_SUCCESS(status)) + break; + + ULONG value_len; + const WCHAR* value = conf_buf; + + value_len = wcslen(value); + if (value_len <= group_len + 1) + continue; + if (_wcsnicmp(value, group, group_len) != 0) + continue; + + value += group_len; + if (*value != L',') + continue; + ++value; + + // + // value now points at the comma-separated + // list of processes in this process group + // + + while (*value) { + WCHAR* ptr = wcschr(value, L','); + if (ptr) + value_len = (ULONG)(ULONG_PTR)(ptr - value); + else + value_len = wcslen(value); + + if (value_len) { + if (*value != L'<') { + match = Config_MatchImage( + value, value_len, test_str, depth + 1); + } + else if (depth < 6) { + match = Config_MatchImageGroup( + value, value_len, test_str, depth + 1); + } + if (match) + break; + } + + value += value_len; + while (*value == L',') + ++value; + } + } + + return match; +} + + +//--------------------------------------------------------------------------- +// Config_MatchImageAndGetValue +//--------------------------------------------------------------------------- + + +_FX WCHAR* Config_MatchImageAndGetValue(WCHAR* value) +{ + ULONG image_len = (wcslen(Dll_ImageName) + 1) * sizeof(WCHAR); + WCHAR* image_lwr = Dll_AllocTemp(image_len); + if (!image_lwr) { + SbieApi_Log(2305, NULL); + return NULL; + } + memcpy(image_lwr, Dll_ImageName, image_len); + _wcslwr(image_lwr); + //image_len = wcslen(image_lwr); + + // + // if the setting indicates an image name followed by a comma, + // then match the image name against the executing process. + // + + WCHAR* tmp = wcschr(value, L','); + if (tmp) { + + BOOLEAN inv, match; + + // + // exclamation marks negates the matching + // + + if (*value == L'!') { + inv = TRUE; + ++value; + } + else + inv = FALSE; + + ULONG len = (ULONG)(tmp - value); + if (len) { + match = Config_MatchImage(value, len, image_lwr, 1); + if (inv) + match = !match; + if (!match) + tmp = NULL; + } + + value = tmp ? tmp + 1 : NULL; + } + + Dll_Free(image_lwr); + + return value; +} + + +//--------------------------------------------------------------------------- +// Config_InitPatternList +//--------------------------------------------------------------------------- + + +_FX BOOLEAN Config_InitPatternList(const WCHAR* setting, LIST* list) +{ + WCHAR conf_buf[2048]; + + PATTERN* pat; + + ULONG index = 0; + while (1) { + + NTSTATUS status = SbieApi_QueryConf( + NULL, setting, index, conf_buf, sizeof(conf_buf) - 16 * sizeof(WCHAR)); + if (!NT_SUCCESS(status)) + break; + ++index; + + WCHAR* value = Config_MatchImageAndGetValue(conf_buf); + if (value) + { + pat = Pattern_Create(Dll_Pool, value, TRUE); + + List_Insert_After(list, NULL, pat); + } + } + + return TRUE; +} + + +//--------------------------------------------------------------------------- +// Config_GetSettingsForImageName +//--------------------------------------------------------------------------- + + +_FX NTSTATUS Config_GetSettingsForImageName( + const WCHAR* setting, WCHAR* value, ULONG value_size, const WCHAR* deftext) +{ + WCHAR conf_buf[2048]; + WCHAR* found_value = NULL; + + ULONG index = 0; + while (1) { + + NTSTATUS status = SbieApi_QueryConf( + NULL, setting, index, conf_buf, sizeof(conf_buf) - 16 * sizeof(WCHAR)); + if (!NT_SUCCESS(status)) + break; + ++index; + + WCHAR* value = Config_MatchImageAndGetValue(conf_buf); + if (!value) + continue; + if (found_value) { + SbieApi_Log(2302, L"%S - %S [%S]", setting, Dll_ImageName, Dll_BoxName); + break; + } + found_value = value; + } + + if (found_value) wcscpy_s(value, value_size / sizeof(WCHAR), found_value); + else if (deftext) wcscpy_s(value, value_size / sizeof(WCHAR), deftext); + else value[0] = L'\0'; + + return STATUS_SUCCESS; +} \ No newline at end of file diff --git a/Sandboxie/core/dll/custom.c b/Sandboxie/core/dll/custom.c index 48b9abd3..22ac4c03 100644 --- a/Sandboxie/core/dll/custom.c +++ b/Sandboxie/core/dll/custom.c @@ -1,5 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Sandboxie/core/dll/dll.h b/Sandboxie/core/dll/dll.h index e947fed2..6339ee7b 100644 --- a/Sandboxie/core/dll/dll.h +++ b/Sandboxie/core/dll/dll.h @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -371,6 +371,8 @@ NTSTATUS Dll_GetCurrentSidString(UNICODE_STRING *SidString); // Functions (dllhook) //--------------------------------------------------------------------------- +NTSTATUS Dll_GetSettingsForImageName( + const WCHAR* setting, WCHAR* value, ULONG value_size, const WCHAR* deftext); BOOLEAN Dll_SkipHook(const WCHAR *HookName); @@ -733,6 +735,20 @@ BOOLEAN DigitalGuardian_Init(HMODULE); BOOLEAN ComDlg32_Init(HMODULE); + +//--------------------------------------------------------------------------- +// Functions (Config) +//--------------------------------------------------------------------------- + + +WCHAR* Config_MatchImageAndGetValue(WCHAR* value); + +BOOLEAN Config_InitPatternList(const WCHAR* setting, LIST* list); + +NTSTATUS Config_GetSettingsForImageName( + const WCHAR* setting, WCHAR* value, ULONG value_size, const WCHAR* deftext); + + //--------------------------------------------------------------------------- diff --git a/Sandboxie/core/dll/dllhook.c b/Sandboxie/core/dll/dllhook.c index 97773400..d70be133 100644 --- a/Sandboxie/core/dll/dllhook.c +++ b/Sandboxie/core/dll/dllhook.c @@ -37,9 +37,6 @@ static void *SbieDll_Hook_CheckChromeHook(void *SourceFunc); -static WCHAR *Dll_GetSettingsForImageName( - const WCHAR *setting, const WCHAR *deftext); - ULONG_PTR DLL_FindWow64Target(ULONG_PTR address); //--------------------------------------------------------------------------- @@ -585,13 +582,14 @@ _FX void *SbieDll_Hook_CheckChromeHook(void *SourceFunc) //--------------------------------------------------------------------------- -_FX WCHAR *Dll_GetSettingsForImageName( - const WCHAR *setting, const WCHAR *deftext) +_FX NTSTATUS Dll_GetSettingsForImageName( + const WCHAR *setting, WCHAR* value, ULONG value_size, const WCHAR *deftext) { POOL *pool; WCHAR *text, *image_lwr, *buf; ULONG text_len, image_len; ULONG index; + BOOLEAN match = FALSE; // // @@ -648,8 +646,10 @@ _FX WCHAR *Dll_GetSettingsForImageName( ++index; ptr = wcschr(buf, L','); - if (! ptr) - continue; + if (!ptr) { + ptr = buf; + goto skip_match; // if there is no L',' it means any image + } *ptr = L'\0'; if (buf[0] == L'/' && buf[1] == L'/' && @@ -663,42 +663,51 @@ _FX WCHAR *Dll_GetSettingsForImageName( image_pat = Pattern_Create(pool, buf_ptr, TRUE); if (Pattern_Match(image_pat, image_lwr, image_len)) { + match = TRUE; + } + + Pattern_Free(image_pat); + + if (!match) + continue; + + if (text_len) + *ptr = L','; // restore comma if text is not empty + else + ++ptr; // or skip comma if text is empty + + skip_match: + { ULONG ptr_len; - WCHAR *new_text; - if (text_len) - *ptr = L','; // restore comma if text is not empty - else - ++ptr; // or skip comma if text is empty + WCHAR* new_text; ptr_len = wcslen(ptr); new_text = Pool_Alloc(pool, - (text_len + ptr_len + 1) * sizeof(WCHAR)); - if (! new_text) + (text_len + ptr_len + 1) * sizeof(WCHAR)); + if (!new_text) goto outofmem; wmemcpy(new_text, text, text_len); wmemcpy(new_text + text_len, ptr, ptr_len + 1); text = new_text; text_len = text_len + ptr_len; } - - Pattern_Free(image_pat); + break; } // // finish // - buf = Dll_Alloc((text_len + 1) * sizeof(WCHAR)); - wmemcpy(buf, text, text_len + 1); + wcscpy_s(value, value_size / sizeof(WCHAR), text); Pool_Delete(pool); - return buf; + return STATUS_SUCCESS; outofmem: SbieApi_Log(2305, NULL); ExitProcess(-1); - return NULL; + return STATUS_INSUFFICIENT_RESOURCES; } @@ -709,37 +718,26 @@ outofmem: _FX BOOLEAN Dll_SkipHook(const WCHAR *HookName) { - static WCHAR *HookText = NULL; + static WCHAR HookText[256]; + static BOOLEAN HookTextInit = TRUE; BOOLEAN found = FALSE; // // initialize hook text based on image name // - if (! HookName) { + if (HookTextInit) { - const WCHAR *deftext = NULL; - - if (_wcsicmp(Dll_ImageName, L"DragonSaga.exe") == 0) - deftext = L"ntqsi,enumwin,findwin"; - - if (_wcsicmp(Dll_ImageName, L"BatmanAC.exe") == 0) - deftext = L"enumwin,findwin"; - - if (_wcsicmp(Dll_ImageName, L"PotPlayer64.exe") == 0 || - _wcsicmp(Dll_ImageName, L"PotPlayerMini64.exe") == 0 || - _wcsicmp(Dll_ImageName, L"mpc-hc64.exe") == 0) { - - deftext = L"cocreate"; - } - - HookText = Dll_GetSettingsForImageName(L"SkipHook", deftext); + HookTextInit = FALSE; + Dll_GetSettingsForImageName(L"SkipHook", HookText, sizeof(HookText), NULL); + } + // // query for a specific hook // - } else if (HookText) { + if (HookName && *HookText) { ULONG len = wcslen(HookName); WCHAR *ptr = HookText; diff --git a/Sandboxie/core/dll/dllmain.c b/Sandboxie/core/dll/dllmain.c index 294230a7..8b6ac8ee 100644 --- a/Sandboxie/core/dll/dllmain.c +++ b/Sandboxie/core/dll/dllmain.c @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -554,7 +554,12 @@ _FX void Dll_SelectImageType(void) L"dllhost.exe", (WCHAR *)DLL_IMAGE_DLLHOST, L"iexplore.exe", (WCHAR *)DLL_IMAGE_INTERNET_EXPLORER, + L"firefox.exe", (WCHAR *)DLL_IMAGE_MOZILLA_FIREFOX, + L"waterfox.exe", (WCHAR *)DLL_IMAGE_MOZILLA_FIREFOX, + L"palemoon.exe", (WCHAR *)DLL_IMAGE_MOZILLA_FIREFOX, + L"basilisk.exe", (WCHAR *)DLL_IMAGE_MOZILLA_FIREFOX, + L"brave.exe", (WCHAR *)DLL_IMAGE_MOZILLA_FIREFOX, L"wmplayer.exe", (WCHAR *)DLL_IMAGE_WINDOWS_MEDIA_PLAYER, L"winamp.exe", (WCHAR *)DLL_IMAGE_NULLSOFT_WINAMP, diff --git a/Sandboxie/core/dll/dllmem.c b/Sandboxie/core/dll/dllmem.c index 8a9b219d..072d05cf 100644 --- a/Sandboxie/core/dll/dllmem.c +++ b/Sandboxie/core/dll/dllmem.c @@ -47,9 +47,9 @@ static void *Dll_AllocFromPool(POOL *pool, ULONG size); //--------------------------------------------------------------------------- -static POOL *Dll_Pool = NULL; -static POOL *Dll_PoolTemp = NULL; -static POOL *Dll_PoolCode = NULL; +POOL *Dll_Pool = NULL; +POOL *Dll_PoolTemp = NULL; +POOL *Dll_PoolCode = NULL; static ULONG Dll_TlsIndex = TLS_OUT_OF_INDEXES; diff --git a/Sandboxie/core/dll/file.c b/Sandboxie/core/dll/file.c index e5c8156c..44ddc794 100644 --- a/Sandboxie/core/dll/file.c +++ b/Sandboxie/core/dll/file.c @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -20,7 +20,7 @@ // File //--------------------------------------------------------------------------- - +#define NOGDI #include "dll.h" #include "obj.h" #include @@ -201,9 +201,8 @@ static NTSTATUS File_MigrateFile( const WCHAR *TruePath, const WCHAR *CopyPath, BOOLEAN IsWritePath, BOOLEAN WithContents); -static const BOOLEAN File_MigrateFile_ManualBypass(const WCHAR *TruePath, ULONGLONG file_size); - -static const WCHAR *File_MigrateFile_ShouldBypass(const WCHAR *TruePath); +static const BOOLEAN File_MigrateFile_ManualBypass( + const WCHAR *TruePath, ULONGLONG file_size); static NTSTATUS File_CopyShortName( const WCHAR *TruePath, const WCHAR *CopyPath); @@ -352,9 +351,6 @@ static ULONG File_PublicUserLen = 0; static WCHAR *File_HomeNtPath = NULL; static ULONG File_HomeNtPathLen = 0; -static ULONG File_CopyLimitKb = (80 * 1024); // 80 MB -static BOOLEAN File_CopyLimitSilent = FALSE; - static BOOLEAN File_Windows2000 = FALSE; static WCHAR *File_AltBoxPath = NULL; @@ -375,6 +371,7 @@ static ULONG File_Snapshot_Count = 0; #include "file_pipe.c" #include "file_dir.c" #include "file_misc.c" +#include "file_copy.c" #include "file_init.c" @@ -2864,39 +2861,6 @@ ReparseLoop: status = STATUS_SUCCESS; } - // - // Internet Shortcuts (.url files) are consistently overwritten - // as part of their usage. If the shortcut exists only as a - // TruePath, then we pretend it's a read-only file - // - // apply similar handling to media files - // - - if (FileType & TYPE_FILE) { - - WCHAR *dot = wcsrchr(TruePath, L'.'); - if (dot) { - - static const WCHAR *_ReadOnlyFileTypes = - L".url.avi.wma.wmv.mpg.mp3.mp4"; - const WCHAR *ptr = _ReadOnlyFileTypes; - - WCHAR dot1 = towlower(dot[1]); - WCHAR dot2 = towlower(dot[2]); - WCHAR dot3 = towlower(dot[3]); - - while (*ptr) { - - if (dot1 == ptr[1] && dot2 == ptr[2] && dot3 == ptr[3]) { - FileType |= TYPE_READ_ONLY | TYPE_SYSTEM; - break; - } - - ptr += 4; - } - } - } - // // we don't have CopyPath, but if we did find TruePath, and this // is a read-only operation, then let the system handle it @@ -3158,34 +3122,6 @@ ReparseLoop: } } - if (WithContents) { - - // - // don't copy contents of Windows Explorer thumbcache - // (note that name was chaged to iconcache on Windows 8) - // - - WCHAR *dot = wcsrchr(TruePath, L'.'); - if (dot && _wcsicmp(dot + 1, L"db") == 0) { - - WCHAR *ptr; - ULONG len = wcslen(TruePath) + 1; - WCHAR *TempPath = Dll_AllocTemp(len * sizeof(WCHAR)); - wmemcpy(TempPath, TruePath, len); - _wcslwr(TempPath); - - ptr = wcsstr(TempPath, - L"\\microsoft\\windows\\explorer\\"); - if (ptr && ( wcsncmp(ptr + 28, L"thumbcache_", 11) == 0 - || wcsncmp(ptr + 28, L"iconcache_", 10) == 0)) { - - WithContents = FALSE; - } - - Dll_Free(TempPath); - } - } - } else { WithContents = FALSE; @@ -3990,296 +3926,6 @@ _FX NTSTATUS File_CreatePath(WCHAR *TruePath, WCHAR *CopyPath) } -//--------------------------------------------------------------------------- -// File_MigrateFile -//--------------------------------------------------------------------------- - - -_FX NTSTATUS File_MigrateFile( - const WCHAR *TruePath, const WCHAR *CopyPath, - BOOLEAN IsWritePath, BOOLEAN WithContents) -{ - NTSTATUS status; - HANDLE TrueHandle, CopyHandle; - OBJECT_ATTRIBUTES objattrs; - UNICODE_STRING objname; - IO_STATUS_BLOCK IoStatusBlock; - FILE_NETWORK_OPEN_INFORMATION open_info; - ULONGLONG file_size; - ACCESS_MASK DesiredAccess; - ULONG CreateOptions; - - InitializeObjectAttributes( - &objattrs, &objname, OBJ_CASE_INSENSITIVE, NULL, Secure_NormalSD); - - // - // open TruePath. if we get a sharing violation trying to open it, - // try to get the driver to open it bypassing share access. if even - // this fails, then we can't copy the data, but can still create an - // empty file - // - - RtlInitUnicodeString(&objname, TruePath); - - status = __sys_NtCreateFile( - &TrueHandle, FILE_GENERIC_READ, &objattrs, &IoStatusBlock, - NULL, 0, FILE_SHARE_VALID_FLAGS, - FILE_OPEN, FILE_SYNCHRONOUS_IO_NONALERT, NULL, 0); - - if (IsWritePath && status == STATUS_ACCESS_DENIED) - status = STATUS_SHARING_VIOLATION; - - if (status == STATUS_SHARING_VIOLATION) { - - status = SbieApi_OpenFile(&TrueHandle, TruePath); - - if (! NT_SUCCESS(status)) { - - WithContents = FALSE; - - status = __sys_NtCreateFile( - &TrueHandle, FILE_READ_ATTRIBUTES | SYNCHRONIZE, - &objattrs, &IoStatusBlock, NULL, 0, FILE_SHARE_VALID_FLAGS, - FILE_OPEN, FILE_SYNCHRONOUS_IO_NONALERT, NULL, 0); - } - } - - if (! NT_SUCCESS(status)) - return status; - - // - // query attributes and size of the TruePath file - // - - status = __sys_NtQueryInformationFile( - TrueHandle, &IoStatusBlock, &open_info, - sizeof(FILE_NETWORK_OPEN_INFORMATION), FileNetworkOpenInformation); - - if (! NT_SUCCESS(status)) { - NtClose(TrueHandle); - return status; - } - - if (WithContents) { - - static BOOLEAN _ReinitCopyLimit = FALSE; - if (_ReinitCopyLimit) { - _ReinitCopyLimit = FALSE; - File_InitCopyLimit(); - } - - file_size = open_info.EndOfFile.QuadPart; - - if (File_CopyLimitKb != -1 && file_size > (File_CopyLimitKb * 1024)) { - - const WCHAR *TruePathName = - File_MigrateFile_ShouldBypass(TruePath); - - if (TruePathName && !File_MigrateFile_ManualBypass(TruePath, file_size)) { - - NtClose(TrueHandle); - - if (! File_CopyLimitSilent) { - - ULONG TruePathNameLen = wcslen(TruePathName); - WCHAR *text = Dll_AllocTemp( - (TruePathNameLen + 64) * sizeof(WCHAR)); - Sbie_snwprintf(text, (TruePathNameLen + 64), L"%s [%s / %I64u]", - TruePathName, Dll_BoxName, file_size); - - SbieApi_Log(2102, text); - - Dll_Free(text); - - _ReinitCopyLimit = TRUE; - } - - return STATUS_BAD_INITIAL_PC; - } - } - - } else - - file_size = 0; - - // - // create the CopyPath file - // - - RtlInitUnicodeString(&objname, CopyPath); - - if (open_info.FileAttributes & FILE_ATTRIBUTE_DIRECTORY) { - DesiredAccess = FILE_GENERIC_READ; - CreateOptions = FILE_DIRECTORY_FILE; - } else { - DesiredAccess = FILE_GENERIC_WRITE; - CreateOptions = FILE_NON_DIRECTORY_FILE; - } - - status = __sys_NtCreateFile( - &CopyHandle, DesiredAccess, &objattrs, &IoStatusBlock, - NULL, FILE_ATTRIBUTE_NORMAL, FILE_SHARE_VALID_FLAGS, - FILE_CREATE, FILE_SYNCHRONOUS_IO_NONALERT | CreateOptions, - NULL, 0); - - if (! NT_SUCCESS(status)) { - NtClose(TrueHandle); - return status; - } - - // - // copy the file, if so desired - // - - if (file_size) { - - ULONG Next_Status = GetTickCount() + 3000; // wait 3 seconds - - void *buffer = Dll_AllocTemp(PAGE_SIZE); - if (! buffer) { - status = STATUS_INSUFFICIENT_RESOURCES; - file_size = 0; - } - - while (file_size > 0) { - - ULONG buffer_size = - (file_size > PAGE_SIZE) ? PAGE_SIZE : (ULONG)file_size; - - status = NtReadFile( - TrueHandle, NULL, NULL, NULL, &IoStatusBlock, - buffer, buffer_size, NULL, NULL); - - if (NT_SUCCESS(status)) { - - buffer_size = (ULONG)IoStatusBlock.Information; - file_size -= (ULONGLONG)buffer_size; - - status = NtWriteFile( - CopyHandle, NULL, NULL, NULL, &IoStatusBlock, - buffer, buffer_size, NULL, NULL); - } - - if (! NT_SUCCESS(status)) - break; - - ULONG Cur_Ticks = GetTickCount(); - if (Next_Status < Cur_Ticks) { - Next_Status = Cur_Ticks + 1000; // update prgress every second - - WCHAR size_str[32]; - Sbie_snwprintf(size_str, 32, L"%I64u", file_size); - const WCHAR* strings[] = { Dll_BoxName, TruePath, size_str, NULL }; - SbieApi_LogMsgExt(2198, strings); - } - } - - if (buffer) - Dll_Free(buffer); - } - - // - // set the short name on the file. we must do this before we copy - // its attributes, as this may make the file read-only - // - - if (NT_SUCCESS(status)) { - - status = File_CopyShortName(TruePath, CopyPath); - - if (IsWritePath && status == STATUS_ACCESS_DENIED) - status = STATUS_SUCCESS; - } - - // - // set information on the CopyPath file - // - - if (NT_SUCCESS(status)) { - - FILE_BASIC_INFORMATION info; - - info.CreationTime.QuadPart = open_info.CreationTime.QuadPart; - info.LastAccessTime.QuadPart = open_info.LastAccessTime.QuadPart; - info.LastWriteTime.QuadPart = open_info.LastWriteTime.QuadPart; - info.ChangeTime.QuadPart = open_info.ChangeTime.QuadPart; - info.FileAttributes = open_info.FileAttributes; - - status = File_SetAttributes(CopyHandle, CopyPath, &info); - } - - NtClose(TrueHandle); - NtClose(CopyHandle); - - return status; -} - - -//--------------------------------------------------------------------------- -// File_MigrateFile_ManualBypass -//--------------------------------------------------------------------------- - - -_FX const BOOLEAN File_MigrateFile_ManualBypass(const WCHAR *TruePath, ULONGLONG file_size) -{ - MAN_FILE_MIGRATION_REQ req; - MAN_FILE_MIGRATION_RPL *rpl = NULL; - BOOLEAN ok = FALSE; - - req.msgid = MAN_FILE_MIGRATION; - req.file_size = file_size; - wcscpy(req.file_path, TruePath); - - rpl = SbieDll_CallServerQueue(INTERACTIVE_QUEUE_NAME, &req, sizeof(req), sizeof(*rpl)); - if (rpl) - { - ok = rpl->retval != 0; - Dll_Free(rpl); - } - - return ok; -} - - -//--------------------------------------------------------------------------- -// File_MigrateFile_ShouldBypass -//--------------------------------------------------------------------------- - - -_FX const WCHAR *File_MigrateFile_ShouldBypass(const WCHAR *TruePath) -{ - // todo: load this list from file - static const WCHAR *_names[] = { - // firefox - L"places.sqlite", L"xul.mfl", - // windows installer etc - L"qmgr0.dat", L"qmgr1.dat", L"infcache.1", L"cbs.log", - // explorer - L"thumbcache_32.db", L"thumbcache_96.db", L"thumbcache_256.db", - L"thumbcache_1024.db", L"thumbcache_idx.db", L"thumbcache_sr.db", - // internet explorer 10 web cache - L"webcachev01.dat", L"webcachev01.tmp", - L"webcachev24.dat", L"webcachev24.tmp", - // end of list - NULL - }; - - const WCHAR **nameptr; - - const WCHAR *name = wcsrchr(TruePath, L'\\'); - if (name) - ++name; - else - name = TruePath; - - for (nameptr = _names; *nameptr; ++nameptr) - if (_wcsicmp(name, *nameptr) == 0) - return NULL; - - return name; -} - - //--------------------------------------------------------------------------- // File_CopyShortName //--------------------------------------------------------------------------- diff --git a/Sandboxie/core/dll/file_copy.c b/Sandboxie/core/dll/file_copy.c new file mode 100644 index 00000000..8575ee0e --- /dev/null +++ b/Sandboxie/core/dll/file_copy.c @@ -0,0 +1,442 @@ +/* + * Copyright 2004-2020 Sandboxie Holdings, LLC + * Copyright 2020-2021 David Xanatos, xanasoft.com + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + + //--------------------------------------------------------------------------- + // File (Copy) + //--------------------------------------------------------------------------- + +#include "common\pattern.h" + + //--------------------------------------------------------------------------- + // Functions + //--------------------------------------------------------------------------- + +static void File_InitCopyLimit(void); + +static BOOLEAN File_InitFileMigration(void); + +//--------------------------------------------------------------------------- +// Variables +//--------------------------------------------------------------------------- + +extern POOL* Dll_Pool; +extern POOL* Dll_PoolTemp; + +typedef enum { // Note: thisorder defines the config priority + FILE_DONT_COPY, + FILE_COPY_CONTENT, + FILE_COPY_EMPTY, + NUM_COPY_MODES +} ENUM_COPY_MODES; + +static LIST File_MigrationOptions[NUM_COPY_MODES]; + +static BOOLEAN File_MigrationDenyWrite = FALSE; + +static ULONG File_CopyLimitKb = (80 * 1024); // 80 MB +static BOOLEAN File_CopyLimitSilent = FALSE; + +//--------------------------------------------------------------------------- +// File_InitFileMigration +//--------------------------------------------------------------------------- + + +_FX BOOLEAN File_InitFileMigration(void) +{ + //File_PathPool = Pool_Create(); + //if (!File_PathPool) { + // SbieApi_Log(2305, NULL); + // return FALSE; + //} + + for(ULONG i=0; i < NUM_COPY_MODES; i++) + List_Init(&File_MigrationOptions[i]); + + Config_InitPatternList(L"CopyEmpty", &File_MigrationOptions[FILE_COPY_EMPTY]); + Config_InitPatternList(L"CopyAlways", &File_MigrationOptions[FILE_COPY_CONTENT]); + Config_InitPatternList(L"DontCopy", &File_MigrationOptions[FILE_DONT_COPY]); + + WCHAR conf[16]; + Config_GetSettingsForImageName(L"CopyBlockDenyWrite", conf, sizeof(conf), NULL); + if (*conf == L'y' || *conf == L'Y') + File_MigrationDenyWrite = TRUE; + + File_InitCopyLimit(); + + return TRUE; +} + + +//--------------------------------------------------------------------------- +// File_MigrateFile_GetMode +//--------------------------------------------------------------------------- + + +_FX ULONG File_MigrateFile_GetMode(const WCHAR* TruePath, ULONGLONG file_size) +{ + ULONG mode = NUM_COPY_MODES; + + ULONG path_len = (wcslen(TruePath) + 1) * sizeof(WCHAR); + WCHAR* path_lwr = Dll_AllocTemp(path_len); + if (!path_lwr) { + SbieApi_Log(2305, NULL); + return FILE_DONT_COPY; + } + memcpy(path_lwr, TruePath, path_len); + _wcslwr(path_lwr); + path_len = wcslen(path_lwr); + + // + // Check what preset applyes to this file type/path + // + + for (ULONG i = 0; i < NUM_COPY_MODES; i++) + { + PATTERN* pat = List_Head(&File_MigrationOptions[i]); + while (pat) + { + if (Pattern_Match(pat, path_lwr, path_len)) + { + mode = i; + goto found_match; + } + pat = List_Next(pat); + } + } + +found_match: + + Dll_Free(path_lwr); + + if (mode != NUM_COPY_MODES) + return mode; + + // + // if tere is no configuration for this file type/path decide based on the file size + // + + if (File_CopyLimitKb == -1 || file_size < (File_CopyLimitKb * 1024)) + return FILE_COPY_CONTENT; + + // + // ask the user to decide if the large file should be coped into the sandbox + // + + MAN_FILE_MIGRATION_REQ req; + MAN_FILE_MIGRATION_RPL* rpl = NULL; + BOOLEAN ok = FALSE; + + req.msgid = MAN_FILE_MIGRATION; + req.file_size = file_size; + wcscpy(req.file_path, TruePath); + + rpl = SbieDll_CallServerQueue(INTERACTIVE_QUEUE_NAME, &req, sizeof(req), sizeof(*rpl)); + if (rpl) + { + ok = rpl->retval != 0; + Dll_Free(rpl); + + if(ok) + return FILE_COPY_CONTENT; + } + + // + // issue apropriate message if so configured, and user wasn't asked + // + + else if (!File_CopyLimitSilent) + { + const WCHAR* name = wcsrchr(TruePath, L'\\'); + if (name) + ++name; + else + name = TruePath; + + ULONG TruePathNameLen = wcslen(name); + WCHAR* text = Dll_AllocTemp( + (TruePathNameLen + 64) * sizeof(WCHAR)); + Sbie_snwprintf(text, (TruePathNameLen + 64), L"%s [%s / %I64u]", + name, Dll_BoxName, file_size); + + SbieApi_Log(2102, text); + + Dll_Free(text); + } + + return FILE_DONT_COPY; +} + + +//--------------------------------------------------------------------------- +// File_InitCopyLimit +//--------------------------------------------------------------------------- + + +_FX void File_InitCopyLimit(void) +{ + static const WCHAR* _CopyLimitKb = L"CopyLimitKb"; + static const WCHAR* _CopyLimitSilent = L"CopyLimitSilent"; + NTSTATUS status; + WCHAR str[32]; + + // + // if this is one of SandboxieCrypto, SandboxieWUAU or WUAUCLT, + // or TrustedInstaller, then we don't impose a CopyLimit + // + + BOOLEAN SetMaxCopyLimit = FALSE; + + if (Dll_ImageType == DLL_IMAGE_SANDBOXIE_CRYPTO || + Dll_ImageType == DLL_IMAGE_SANDBOXIE_WUAU || + Dll_ImageType == DLL_IMAGE_WUAUCLT || + Dll_ImageType == DLL_IMAGE_TRUSTED_INSTALLER) { + + SetMaxCopyLimit = TRUE; + } + + if (SetMaxCopyLimit) { + + File_CopyLimitKb = -1; + File_CopyLimitSilent = FALSE; + return; + } + + // + // get configuration settings for CopyLimitKb and CopyLimitSilent + // + + status = SbieApi_QueryConfAsIs( + NULL, _CopyLimitKb, 0, str, sizeof(str) - sizeof(WCHAR)); + if (NT_SUCCESS(status)) { + ULONGLONG num = _wtoi64(str); + if (num) + File_CopyLimitKb = (num > 0x000000007fffffff) ? -1 : (ULONG)num; + else + SbieApi_Log(2207, _CopyLimitKb); + } + + File_CopyLimitSilent = + SbieApi_QueryConfBool(NULL, _CopyLimitSilent, FALSE); +} + + +//--------------------------------------------------------------------------- +// File_MigrateFile +//--------------------------------------------------------------------------- + + +_FX NTSTATUS File_MigrateFile( + const WCHAR* TruePath, const WCHAR* CopyPath, + BOOLEAN IsWritePath, BOOLEAN WithContents) +{ + NTSTATUS status; + HANDLE TrueHandle, CopyHandle; + OBJECT_ATTRIBUTES objattrs; + UNICODE_STRING objname; + IO_STATUS_BLOCK IoStatusBlock; + FILE_NETWORK_OPEN_INFORMATION open_info; + ULONGLONG file_size; + ACCESS_MASK DesiredAccess; + ULONG CreateOptions; + + InitializeObjectAttributes( + &objattrs, &objname, OBJ_CASE_INSENSITIVE, NULL, Secure_NormalSD); + + // + // open TruePath. if we get a sharing violation trying to open it, + // try to get the driver to open it bypassing share access. if even + // this fails, then we can't copy the data, but can still create an + // empty file + // + + RtlInitUnicodeString(&objname, TruePath); + + status = __sys_NtCreateFile( + &TrueHandle, FILE_GENERIC_READ, &objattrs, &IoStatusBlock, + NULL, 0, FILE_SHARE_VALID_FLAGS, + FILE_OPEN, FILE_SYNCHRONOUS_IO_NONALERT, NULL, 0); + + if (IsWritePath && status == STATUS_ACCESS_DENIED) + status = STATUS_SHARING_VIOLATION; + + if (status == STATUS_SHARING_VIOLATION) { + + status = SbieApi_OpenFile(&TrueHandle, TruePath); + + if (!NT_SUCCESS(status)) { + + WithContents = FALSE; + + status = __sys_NtCreateFile( + &TrueHandle, FILE_READ_ATTRIBUTES | SYNCHRONIZE, + &objattrs, &IoStatusBlock, NULL, 0, FILE_SHARE_VALID_FLAGS, + FILE_OPEN, FILE_SYNCHRONOUS_IO_NONALERT, NULL, 0); + } + } + + if (!NT_SUCCESS(status)) + return status; + + // + // query attributes and size of the TruePath file + // + + status = __sys_NtQueryInformationFile( + TrueHandle, &IoStatusBlock, &open_info, + sizeof(FILE_NETWORK_OPEN_INFORMATION), FileNetworkOpenInformation); + + if (!NT_SUCCESS(status)) { + NtClose(TrueHandle); + return status; + } + + if (WithContents) { + + file_size = open_info.EndOfFile.QuadPart; + + ULONG mode = File_MigrateFile_GetMode(TruePath, file_size); + + if (mode == FILE_COPY_EMPTY) + file_size = 0; + else if (mode == FILE_DONT_COPY) + { + NtClose(TrueHandle); + + if (File_MigrationDenyWrite) + return STATUS_ACCESS_DENIED; + else + return STATUS_BAD_INITIAL_PC; + } + + } + else + file_size = 0; + + // + // create the CopyPath file + // + + RtlInitUnicodeString(&objname, CopyPath); + + if (open_info.FileAttributes & FILE_ATTRIBUTE_DIRECTORY) { + DesiredAccess = FILE_GENERIC_READ; + CreateOptions = FILE_DIRECTORY_FILE; + } + else { + DesiredAccess = FILE_GENERIC_WRITE; + CreateOptions = FILE_NON_DIRECTORY_FILE; + } + + status = __sys_NtCreateFile( + &CopyHandle, DesiredAccess, &objattrs, &IoStatusBlock, + NULL, FILE_ATTRIBUTE_NORMAL, FILE_SHARE_VALID_FLAGS, + FILE_CREATE, FILE_SYNCHRONOUS_IO_NONALERT | CreateOptions, + NULL, 0); + + if (!NT_SUCCESS(status)) { + NtClose(TrueHandle); + return status; + } + + // + // copy the file, if so desired + // + + if (file_size) { + + ULONG Next_Status = GetTickCount() + 3000; // wait 3 seconds + + void* buffer = Dll_AllocTemp(PAGE_SIZE); + if (!buffer) { + status = STATUS_INSUFFICIENT_RESOURCES; + file_size = 0; + } + + while (file_size > 0) { + + ULONG buffer_size = + (file_size > PAGE_SIZE) ? PAGE_SIZE : (ULONG)file_size; + + status = NtReadFile( + TrueHandle, NULL, NULL, NULL, &IoStatusBlock, + buffer, buffer_size, NULL, NULL); + + if (NT_SUCCESS(status)) { + + buffer_size = (ULONG)IoStatusBlock.Information; + file_size -= (ULONGLONG)buffer_size; + + status = NtWriteFile( + CopyHandle, NULL, NULL, NULL, &IoStatusBlock, + buffer, buffer_size, NULL, NULL); + } + + if (!NT_SUCCESS(status)) + break; + + ULONG Cur_Ticks = GetTickCount(); + if (Next_Status < Cur_Ticks) { + Next_Status = Cur_Ticks + 1000; // update prgress every second + + WCHAR size_str[32]; + Sbie_snwprintf(size_str, 32, L"%I64u", file_size); + const WCHAR* strings[] = { Dll_BoxName, TruePath, size_str, NULL }; + SbieApi_LogMsgExt(2198, strings); + } + } + + if (buffer) + Dll_Free(buffer); + } + + // + // set the short name on the file. we must do this before we copy + // its attributes, as this may make the file read-only + // + + if (NT_SUCCESS(status)) { + + status = File_CopyShortName(TruePath, CopyPath); + + if (IsWritePath && status == STATUS_ACCESS_DENIED) + status = STATUS_SUCCESS; + } + + // + // set information on the CopyPath file + // + + if (NT_SUCCESS(status)) { + + FILE_BASIC_INFORMATION info; + + info.CreationTime.QuadPart = open_info.CreationTime.QuadPart; + info.LastAccessTime.QuadPart = open_info.LastAccessTime.QuadPart; + info.LastWriteTime.QuadPart = open_info.LastWriteTime.QuadPart; + info.ChangeTime.QuadPart = open_info.ChangeTime.QuadPart; + info.FileAttributes = open_info.FileAttributes; + + status = File_SetAttributes(CopyHandle, CopyPath, &info); + } + + NtClose(TrueHandle); + NtClose(CopyHandle); + + return status; +} diff --git a/Sandboxie/core/dll/file_init.c b/Sandboxie/core/dll/file_init.c index e10d8bfe..dcef95a9 100644 --- a/Sandboxie/core/dll/file_init.c +++ b/Sandboxie/core/dll/file_init.c @@ -106,8 +106,6 @@ static WCHAR *File_AllocAndInitEnvironment_2( static void File_AdjustDrives( ULONG path_drive_index, BOOLEAN subst, const WCHAR *path); -static void File_InitCopyLimit(void); - static void File_InitSnapshots(void); @@ -156,7 +154,7 @@ _FX BOOLEAN File_Init(void) File_InitRecoverFolders(); - File_InitCopyLimit(); + File_InitFileMigration(); // // intercept NTDLL entry points @@ -1489,59 +1487,6 @@ _FX WCHAR *File_AllocAndInitEnvironment_2( } -//--------------------------------------------------------------------------- -// File_InitCopyLimit -//--------------------------------------------------------------------------- - - -_FX void File_InitCopyLimit(void) -{ - static const WCHAR *_CopyLimitKb = L"CopyLimitKb"; - static const WCHAR *_CopyLimitSilent = L"CopyLimitSilent"; - NTSTATUS status; - WCHAR str[32]; - - // - // if this is one of SandboxieCrypto, SandboxieWUAU or WUAUCLT, - // or TrustedInstaller, then we don't impose a CopyLimit - // - - BOOLEAN SetMaxCopyLimit = FALSE; - - if (Dll_ImageType == DLL_IMAGE_SANDBOXIE_CRYPTO || - Dll_ImageType == DLL_IMAGE_SANDBOXIE_WUAU || - Dll_ImageType == DLL_IMAGE_WUAUCLT || - Dll_ImageType == DLL_IMAGE_TRUSTED_INSTALLER) { - - SetMaxCopyLimit = TRUE; - } - - if (SetMaxCopyLimit) { - - File_CopyLimitKb = -1; - File_CopyLimitSilent = FALSE; - return; - } - - // - // get configuration settings for CopyLimitKb and CopyLimitSilent - // - - status = SbieApi_QueryConfAsIs( - NULL, _CopyLimitKb, 0, str, sizeof(str) - sizeof(WCHAR)); - if (NT_SUCCESS(status)) { - ULONGLONG num = _wtoi64(str); - if (num) - File_CopyLimitKb = (num > 0x000000007fffffff) ? -1 : (ULONG)num; - else - SbieApi_Log(2207, _CopyLimitKb); - } - - File_CopyLimitSilent = - SbieApi_QueryConfBool(NULL, _CopyLimitSilent, FALSE); -} - - //--------------------------------------------------------------------------- // File_TranslateDosToNtPath //--------------------------------------------------------------------------- @@ -1750,11 +1695,10 @@ _FX void File_GetSetDeviceMap(WCHAR *DeviceMap96) //--------------------------------------------------------------------------- -// File_InitCopyLimit +// File_InitSnapshots //--------------------------------------------------------------------------- -/* CRC */ - +// CRC #define CRC_WITH_ADLERTZUK64 #include "common/crc.c" diff --git a/Sandboxie/core/dll/ipc.c b/Sandboxie/core/dll/ipc.c index 5e980f7f..89a73c6b 100644 --- a/Sandboxie/core/dll/ipc.c +++ b/Sandboxie/core/dll/ipc.c @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -370,11 +370,12 @@ _FX BOOLEAN Ipc_Init(void) Ipc_CreateObjects(); - if (Dll_OsBuild >= 9600) - g_Ipc_DynamicPortNames[SPOOLER_PORT] = Dll_Alloc(DYNAMIC_PORT_NAME_CHARS * sizeof(WCHAR)); + g_Ipc_DynamicPortNames[SPOOLER_PORT] = Dll_Alloc(DYNAMIC_PORT_NAME_CHARS * sizeof(WCHAR)); g_Ipc_DynamicPortNames[WPAD_PORT] = Dll_Alloc(DYNAMIC_PORT_NAME_CHARS * sizeof(WCHAR)); g_Ipc_DynamicPortNames[SMART_CARD_PORT] = Dll_Alloc(DYNAMIC_PORT_NAME_CHARS * sizeof(WCHAR)); + g_Ipc_DynamicPortNames[BT_PORT] = Dll_Alloc(DYNAMIC_PORT_NAME_CHARS * sizeof(WCHAR)); + g_Ipc_DynamicPortNames[GAME_CONFIG_STORE_PORT] = Dll_Alloc(DYNAMIC_PORT_NAME_CHARS * sizeof(WCHAR)); return TRUE; diff --git a/Sandboxie/core/dll/ipc_start.c b/Sandboxie/core/dll/ipc_start.c index f39dcd48..51b10f5e 100644 --- a/Sandboxie/core/dll/ipc_start.c +++ b/Sandboxie/core/dll/ipc_start.c @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Sandboxie/core/dll/ipstore_enum.cpp b/Sandboxie/core/dll/ipstore_enum.cpp index 19558cab..4790f2c2 100644 --- a/Sandboxie/core/dll/ipstore_enum.cpp +++ b/Sandboxie/core/dll/ipstore_enum.cpp @@ -1,5 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -280,8 +281,9 @@ IEnumPStoreTypesImpl::~IEnumPStoreTypesImpl(void) // IEnumPStoreTypesImpl::StringFromGUID //--------------------------------------------------------------------------- - -void IEnumPStoreTypesImpl::StringFromGUID(const GUID *guid, WCHAR *str) +extern "C" +{ +void Sbie_StringFromGUID(const GUID* guid, WCHAR* str) { struct _s { ULONG a; @@ -301,7 +303,7 @@ void IEnumPStoreTypesImpl::StringFromGUID(const GUID *guid, WCHAR *str) s->x1, s->x2, s->y1, s->y2, s->y3, s->y4, s->y5, s->y6); } - +} //--------------------------------------------------------------------------- // IEnumPStoreTypesImpl::InsertSorted @@ -312,11 +314,11 @@ void IEnumPStoreTypesImpl::InsertSorted(GUID *guid) { WCHAR guidL[48], guidR[48]; - StringFromGUID(guid, guidR); + Sbie_StringFromGUID(guid, guidR); IEnumPStoreListElem *elem = (IEnumPStoreListElem *)List_Head(&m_list->list); while (elem) { - StringFromGUID(&elem->v.guid, guidL); + Sbie_StringFromGUID(&elem->v.guid, guidL); int c = wcscmp(guidL, guidR); if (c == 0) return; diff --git a/Sandboxie/core/dll/ipstore_enum.h b/Sandboxie/core/dll/ipstore_enum.h index dc802b18..1135b457 100644 --- a/Sandboxie/core/dll/ipstore_enum.h +++ b/Sandboxie/core/dll/ipstore_enum.h @@ -1,5 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -80,8 +81,6 @@ protected: IEnumPStoreTypesImpl(const IEnumPStoreTypesImpl *model); ~IEnumPStoreTypesImpl(); - void StringFromGUID(const GUID *guid, WCHAR *str); - void InsertSorted(GUID *guid); // IUnknown @@ -158,3 +157,4 @@ protected: IEnumPStoreItems **ppenum); }; + diff --git a/Sandboxie/core/dll/proc.c b/Sandboxie/core/dll/proc.c index 7de26629..d76fcf8f 100644 --- a/Sandboxie/core/dll/proc.c +++ b/Sandboxie/core/dll/proc.c @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Sandboxie/core/dll/rpcrt.c b/Sandboxie/core/dll/rpcrt.c index 22605a7b..13c79f68 100644 --- a/Sandboxie/core/dll/rpcrt.c +++ b/Sandboxie/core/dll/rpcrt.c @@ -1,5 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -56,6 +57,24 @@ void *Scm_QueryServiceByName( ULONG with_service_status, ULONG with_service_config); int Scm_Start_Sppsvc(); + + +#ifdef _WIN64 + +extern ULONG_PTR __cdecl RpcRt_NdrClientCall3( + MIDL_STUBLESS_PROXY_INFO* pProxyInfo, ULONG nProcNum, void* pReturnValue, ...); + +#else + +//extern ULONG_PTR __cdecl RpcRt_NdrClientCall3( +// MIDL_STUBLESS_PROXY_INFO* pProxyInfo, ULONG nProcNum, void* pReturnValue, ULONG_PTR* Args); + +extern ULONG_PTR __cdecl RpcRt_NdrClientCall2( + PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, ULONG_PTR* Args); + +#endif _WIN64 + + //--------------------------------------------------------------------------- @@ -91,6 +110,17 @@ typedef RPC_STATUS(RPC_ENTRY *P_RpcStringFreeW)(RPC_WSTR *String); typedef RPC_STATUS (*P_RpcMgmtSetComTimeout)(RPC_BINDING_HANDLE Binding, unsigned int __RPC_FAR Timeout); +typedef BOOL(WINAPI* P_GetModuleInformation)(_In_ HANDLE hProcess, _In_ HMODULE hModule, _Out_ LPMODULEINFO lpmodinfo, _In_ DWORD cb); + +typedef ULONG_PTR(__cdecl* P_NdrClientCall3)( + MIDL_STUBLESS_PROXY_INFO* pProxyInfo, ULONG nProcNum, void* pReturnValue, ...); + +typedef ULONG_PTR(__cdecl* P_NdrClientCall2)( + PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, ...); + +//--------------------------------------------------------------------------- + + P_RpcStringBindingComposeW __sys_RpcStringBindingComposeW = NULL; P_RpcBindingInqAuthClientEx __sys_RpcBindingInqAuthClientEx = NULL; @@ -108,12 +138,17 @@ P_UuidToStringW __sys_UuidToStringW = NULL; P_RpcStringFreeW __sys_RpcStringFreeW = NULL; -extern WCHAR *g_Ipc_DynamicPortNames[NUM_DYNAMIC_PORTS]; - - -typedef BOOL (WINAPI *P_GetModuleInformation)(_In_ HANDLE hProcess, _In_ HMODULE hModule, _Out_ LPMODULEINFO lpmodinfo, _In_ DWORD cb); P_GetModuleInformation __sys_GetModuleInformation = NULL; +#ifdef _WIN64 +P_NdrClientCall3 __sys_NdrClientCall3 = NULL; +#else +P_NdrClientCall2 __sys_NdrClientCall2 = NULL; +#endif + +extern WCHAR* g_Ipc_DynamicPortNames[NUM_DYNAMIC_PORTS]; + + //--------------------------------------------------------------------------- // RpcRt_Init //--------------------------------------------------------------------------- @@ -156,6 +191,24 @@ _FX BOOLEAN RpcRt_Init(HMODULE module) __sys_RpcMgmtSetComTimeout = (P_RpcMgmtSetComTimeout)Ldr_GetProcAddrNew(DllName_rpcrt4, L"RpcMgmtSetComTimeout", "RpcMgmtSetComTimeout"); } + WCHAR wsTraceOptions[4]; + if (SbieApi_QueryConf(NULL, L"IpcTrace", 0, wsTraceOptions, sizeof(wsTraceOptions)) == STATUS_SUCCESS && wsTraceOptions[0] != L'\0') + { +#ifdef _WIN64 + + P_NdrClientCall3 NdrClientCall3; + NdrClientCall3 = (P_NdrClientCall3)Ldr_GetProcAddrNew(DllName_rpcrt4, L"NdrClientCall3", "NdrClientCall3"); + SBIEDLL_HOOK(RpcRt_, NdrClientCall3); + +#else + + P_NdrClientCall2 NdrClientCall2; + NdrClientCall2 = (P_NdrClientCall2)Ldr_GetProcAddrNew(DllName_rpcrt4, L"NdrClientCall2", "NdrClientCall2"); + SBIEDLL_HOOK(RpcRt_, NdrClientCall2); + +#endif + } + return Secure_Init_Elevation(module); } @@ -352,35 +405,47 @@ _FX ULONG RpcRt_RpcBindingFromStringBindingW( WCHAR* pwszTempPortName = GetDynamicLpcPortName(SPOOLER_PORT); - if (pwszTempPortName) { + if (pwszTempPortName == NULL) + return RPC_S_ACCESS_DENIED; - wcscpy(wstrPortName, L"ncalrpc:["); - wcscpy(wstrPortName + 9, pwszTempPortName); - wcscat(wstrPortName, _old + 9); - } + wcscpy(wstrPortName, L"ncalrpc:["); + wcscpy(wstrPortName + 9, pwszTempPortName); + wcscat(wstrPortName, _old + 9); } } - // WPAD (Windows Proxy Auto Discovery) uses dynamic RPC endpoints starting in Win 10 Anniv. - else if (_wcsicmp(StringBinding, L"ncalrpc:") == 0) { - + + WCHAR pwszEmpty[] = L""; + WCHAR* pwszTempPortName = pwszEmpty; + ULONG_PTR hWinHttp = (ULONG_PTR)GetModuleHandle(L"WinHttp.dll"); + ULONG_PTR hBtApi = (ULONG_PTR)GetModuleHandle(L"BluetoothApis.dll"); ULONG_PTR pRetAddr = (ULONG_PTR)_ReturnAddress(); + + if (RpcRt_TestCallingModule(pRetAddr, hWinHttp)) + { + // WPAD (Windows Proxy Auto Discovery) uses dynamic RPC endpoints starting in Win 10 Anniv. + pwszTempPortName = GetDynamicLpcPortName(WPAD_PORT); + } + else if (RpcRt_TestCallingModule(pRetAddr, hBtApi)) + { + // Bluetooth support service + pwszTempPortName = GetDynamicLpcPortName(BT_PORT); + } - if (RpcRt_TestCallingModule(pRetAddr, hWinHttp)) { + if (pwszTempPortName != pwszEmpty) { - WCHAR* pwszTempPortName = GetDynamicLpcPortName(WPAD_PORT); + if (pwszTempPortName == NULL) + return RPC_S_ACCESS_DENIED; - if (pwszTempPortName) { - - wcscpy(wstrPortName, L"ncalrpc:["); - wcscpy(wstrPortName + 9, pwszTempPortName); - wcscat(wstrPortName, L"]"); - } + wcscpy(wstrPortName, L"ncalrpc:["); + wcscpy(wstrPortName + 9, pwszTempPortName); + wcscat(wstrPortName, L"]"); } } + RPC_STATUS status; status = __sys_RpcBindingFromStringBindingW(*wstrPortName ? wstrPortName : StringBinding, OutBinding); // If there are any IpcTrace options set, then output this debug string @@ -396,7 +461,7 @@ _FX ULONG RpcRt_RpcBindingFromStringBindingW( //OutputDebugString(msg); SbieApi_MonitorPut2(MONITOR_IPC | MONITOR_TRACE, msg, FALSE); } - __sys_RpcMgmtSetComTimeout(*OutBinding, RPC_C_BINDING_TIMEOUT); + //__sys_RpcMgmtSetComTimeout(*OutBinding, RPC_C_BINDING_TIMEOUT); // this breaks things return status; } @@ -460,7 +525,7 @@ _FX RPC_STATUS RpcRt_RpcBindingCreateW( //OutputDebugString(msg); SbieApi_MonitorPut2(MONITOR_IPC | MONITOR_TRACE, msg, FALSE); } - __sys_RpcMgmtSetComTimeout(*Binding, RPC_C_BINDING_TIMEOUT); + //__sys_RpcMgmtSetComTimeout(*Binding, RPC_C_BINDING_TIMEOUT); // this breaks things return status; } @@ -483,3 +548,62 @@ RPC_STATUS RPC_ENTRY RpcRt_RpcStringBindingComposeW(TCHAR *ObjUuid,TCHAR *ProtSe } return __sys_RpcStringBindingComposeW(ObjUuid,ProtSeq,NetworkAddr,EndPoint,Options,StringBinding); } + +void Sbie_StringFromGUID(const GUID* guid, WCHAR* str); + +#ifdef _WIN64 + +ULONG_PTR RpcRt_NdrClientCall3_x64( + MIDL_STUBLESS_PROXY_INFO* pProxyInfo, ULONG nProcNum, void* pReturnValue, va_list vl +) +{ + void* ReturnAddress = (void*)*(__int64*)(vl - (4 * 8)); + + __try + { + PRPC_CLIENT_INTERFACE rpcInterface = (PRPC_CLIENT_INTERFACE)pProxyInfo->pStubDesc->RpcInterfaceInformation; + + WCHAR interfaceID[48]; + Sbie_StringFromGUID(&rpcInterface->InterfaceId.SyntaxGUID, interfaceID); + + WCHAR text[130]; + Sbie_snwprintf(text, 130, L"Calling NdrClientCall3 for interface %s}, %d.%d", interfaceID, + rpcInterface->InterfaceId.SyntaxVersion.MajorVersion, rpcInterface->InterfaceId.SyntaxVersion.MinorVersion); + + SbieApi_MonitorPut2(MONITOR_IPC | MONITOR_TRACE, text, FALSE); + } + __except (EXCEPTION_EXECUTE_HANDLER) {} + + return FALSE; // return TRUE to not call the trampoline upon return +} + +#else + +ULONG_PTR __cdecl RpcRt_NdrClientCall2_x86( + void* ReturnAddress, + PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, ...) +{ + //va_list vl; + //va_start(vl, pFormat); + + __try + { + PRPC_CLIENT_INTERFACE rpcInterface = (PRPC_CLIENT_INTERFACE)pStubDescriptor->RpcInterfaceInformation; + + WCHAR interfaceID[48]; + Sbie_StringFromGUID(&rpcInterface->InterfaceId.SyntaxGUID, interfaceID); + + WCHAR text[130]; + Sbie_snwprintf(text, 130, L"Calling NdrClientCall2 for interface %s}, %d.%d", interfaceID, + rpcInterface->InterfaceId.SyntaxVersion.MajorVersion, rpcInterface->InterfaceId.SyntaxVersion.MinorVersion); + + SbieApi_MonitorPut2(MONITOR_IPC | MONITOR_TRACE, text, FALSE); + } + __except (EXCEPTION_EXECUTE_HANDLER) {} + + //va_end(vl); + + return FALSE; // return TRUE to not call the trampoline upon return +} + +#endif _WIN64 \ No newline at end of file diff --git a/Sandboxie/core/dll/sbieapi.c b/Sandboxie/core/dll/sbieapi.c index b7dd5f2b..67bb7f80 100644 --- a/Sandboxie/core/dll/sbieapi.c +++ b/Sandboxie/core/dll/sbieapi.c @@ -1285,9 +1285,9 @@ _FX BOOLEAN SbieApi_QueryConfBool( *value = L'\0'; SbieApi_QueryConfAsIs( section_name, setting_name, 0, value, sizeof(value)); - if (*value == 'y' || *value == 'Y') + if (*value == L'y' || *value == L'Y') return TRUE; - if (*value == 'n' || *value == 'N') + if (*value == L'n' || *value == L'N') return FALSE; return def; } diff --git a/Sandboxie/core/dll/sbiedll.h b/Sandboxie/core/dll/sbiedll.h index df6c9579..4cf69313 100644 --- a/Sandboxie/core/dll/sbiedll.h +++ b/Sandboxie/core/dll/sbiedll.h @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Sandboxie/core/dll/scm.c b/Sandboxie/core/dll/scm.c index 8811cc73..d7e0cea5 100644 --- a/Sandboxie/core/dll/scm.c +++ b/Sandboxie/core/dll/scm.c @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Sandboxie/core/dll/scm_create.c b/Sandboxie/core/dll/scm_create.c index d27502c4..3d5d045e 100644 --- a/Sandboxie/core/dll/scm_create.c +++ b/Sandboxie/core/dll/scm_create.c @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Sandboxie/core/dll/sysinfo.c b/Sandboxie/core/dll/sysinfo.c index 1fcd7072..e15ec55f 100644 --- a/Sandboxie/core/dll/sysinfo.c +++ b/Sandboxie/core/dll/sysinfo.c @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Sandboxie/core/dll/util_32.asm b/Sandboxie/core/dll/util_32.asm index 06fc67be..bbe374bd 100644 --- a/Sandboxie/core/dll/util_32.asm +++ b/Sandboxie/core/dll/util_32.asm @@ -222,3 +222,31 @@ l04: dec esp Gui_MsgWaitForMultipleObjects@20 ENDP PUBLIC C Gui_MsgWaitForMultipleObjects@20 + + +;---------------------------------------------------------------------------- +; RpcRt_NdrClientCall2 +;---------------------------------------------------------------------------- + + +EXTERN C RpcRt_NdrClientCall2_x86 : PROC +;EXTERN C RpcRt_NdrClientCall2_... : PROC +EXTERN C __sys_NdrClientCall2 : DWORD + +RpcRt_NdrClientCall2 PROC C PUBLIC + + call RpcRt_NdrClientCall2_x86 + test al,al + jnz CancelCall + + jmp dword ptr [__sys_NdrClientCall2] + +CancelCall: + +; jmp RpcRt_NdrClientCall2_... + ret + +RpcRt_NdrClientCall2 ENDP + +PUBLIC C RpcRt_NdrClientCall2 + diff --git a/Sandboxie/core/dll/util_64.asm b/Sandboxie/core/dll/util_64.asm index 95ef8955..f98fd82d 100644 --- a/Sandboxie/core/dll/util_64.asm +++ b/Sandboxie/core/dll/util_64.asm @@ -189,3 +189,55 @@ l01: mov eax,dword ptr [rdx] l02: ret Gui_FixupCallbackPointers ENDP + + +;---------------------------------------------------------------------------- +; RpcRt_NdrClientCall3 +;---------------------------------------------------------------------------- + + +EXTERN RpcRt_NdrClientCall3_x64 : PROC +;EXTERN RpcRt_NdrClientCall3_... : PROC +EXTERN __sys_NdrClientCall3 : QWORD + +RpcRt_NdrClientCall3 PROC + + mov rax,rsp + mov [rax+1*8],rcx ; spill pProxyInfo + mov [rax+2*8],rdx ; spill nProcNum + mov [rax+3*8],r8 ; spill pReturnValue + mov [rax+4*8],r9 ; spill first variadic parameter + sub rsp,8+(4*8) + +;; xor rcx,rcx ; clear pProxyInfo +;; xor rdx,rdx ; clear nProcNum +;; xor r8,r8 ; clear pReturnValue +; mov r8,[rsp + 8+(4*8)] ; return poitner + lea r9,[rsp + 8+(4*8) + 4*8] ; Args + call RpcRt_NdrClientCall3_x64 + test al,al + jnz CancelCall + + lea rax,[rsp+8+(4*8)] + mov rcx,[rax+1*8] ; restore pProxyInfo + mov rdx,[rax+2*8] ; restore nProcNum + mov r8,[rax+3*8] ; restore pReturnValue + mov r9,[rax+4*8] ; restore first variadic parameter + + add rsp,8+(4*8) + jmp [__sys_NdrClientCall3] + +CancelCall: + +;;; xor rcx,rcx ; clear pProxyInfo +;;; xor rdx,rdx ; clear nProcNum +;;; xor r8,r8 ; clear pReturnValue +;; mov r8,[rsp + 8+(4*8)] ; return poitner +; lea r9,[rsp + 8+(4*8) + 4*8] ; Args +; call RpcRt_NdrClientCall3_... + + add rsp,8+(4*8) + ret + +RpcRt_NdrClientCall3 ENDP + diff --git a/Sandboxie/core/drv/SboxDrv.vcxproj b/Sandboxie/core/drv/SboxDrv.vcxproj index dfa725a5..865f6cda 100644 --- a/Sandboxie/core/drv/SboxDrv.vcxproj +++ b/Sandboxie/core/drv/SboxDrv.vcxproj @@ -109,6 +109,7 @@ POOL_NX_OPTIN=1;%(PreprocessorDefinitions) + true Native @@ -140,6 +141,7 @@ /Wv:18 %(AdditionalOptions) POOL_NX_OPTIN=1;%(PreprocessorDefinitions) + true Native @@ -179,6 +181,7 @@ POOL_NX_OPTIN=1;%(PreprocessorDefinitions) + true Native @@ -208,6 +211,7 @@ POOL_NX_OPTIN=1;%(PreprocessorDefinitions) + true Native @@ -255,6 +259,12 @@ true true + + true + true + true + true + true true @@ -419,6 +429,12 @@ true true + + true + true + true + true + true true diff --git a/Sandboxie/core/drv/SboxDrv.vcxproj.filters b/Sandboxie/core/drv/SboxDrv.vcxproj.filters index 70e5bc54..28706649 100644 --- a/Sandboxie/core/drv/SboxDrv.vcxproj.filters +++ b/Sandboxie/core/drv/SboxDrv.vcxproj.filters @@ -115,6 +115,9 @@ syscall + + common + @@ -172,6 +175,9 @@ syscall + + common + diff --git a/Sandboxie/core/drv/api_flags.h b/Sandboxie/core/drv/api_flags.h index 8fe72691..11c857b2 100644 --- a/Sandboxie/core/drv/api_flags.h +++ b/Sandboxie/core/drv/api_flags.h @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Sandboxie/core/drv/conf.c b/Sandboxie/core/drv/conf.c index 66b6b251..be465c76 100644 --- a/Sandboxie/core/drv/conf.c +++ b/Sandboxie/core/drv/conf.c @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -51,6 +51,7 @@ typedef struct _CONF_DATA { POOL *pool; LIST sections; // CONF_SECTION BOOLEAN home; // TRUE if configuration read from Driver_Home_Path + ULONG encoding; // 0 - unicode, 1 - utf8, 2 - unicode (byte swaped) volatile ULONG use_count; } CONF_DATA; @@ -140,6 +141,9 @@ static const WCHAR *Conf_Template = L"Template"; static const WCHAR *Conf_H = L"H"; static const WCHAR *Conf_W = L"W"; +static const WCHAR* Conf_Unicode = L"U"; +static const WCHAR* Conf_UTF8 = L"8"; + //--------------------------------------------------------------------------- // Conf_AdjustUseCount @@ -249,6 +253,8 @@ _FX NTSTATUS Conf_Read(ULONG session_id) data.home = path_home; data.use_count = 0; + status = Stream_Read_BOM(stream, &data.encoding); + linenum = 1; while (NT_SUCCESS(status)) status = Conf_Read_Sections(stream, &data, &linenum); @@ -277,6 +283,8 @@ _FX NTSTATUS Conf_Read(ULONG session_id) } else { + status = Stream_Read_BOM(stream, NULL); + linenum = 1 + CONF_TMPL_LINE_BASE; while (NT_SUCCESS(status)) @@ -581,7 +589,7 @@ _FX NTSTATUS Conf_Read_Line(STREAM *stream, WCHAR *line, int *linenum) // skip leading control and whitespace characters while (1) { - status = Stream_Read_Short(stream, &ch); + status = Stream_Read_Wchar(stream, &ch); if ((! NT_SUCCESS(status)) || (ch > 32 && ch < 0xFE00)) break; if (ch == L'\r') @@ -609,7 +617,7 @@ _FX NTSTATUS Conf_Read_Line(STREAM *stream, WCHAR *line, int *linenum) if (ptr - line == CONF_LINE_LEN) status = STATUS_BUFFER_OVERFLOW; else - status = Stream_Read_Short(stream, &ch); + status = Stream_Read_Wchar(stream, &ch); if ((! NT_SUCCESS(status)) || ch == L'\n' || ch == L'\r') break; } @@ -1060,11 +1068,20 @@ _FX const WCHAR *Conf_Get( _wcsicmp(setting, L"IniLocation") == 0) { // return "H" if configuration file was found in the Sandboxie - // home directory, or "S" if it was found in Windows directory + // home directory, or "W" if it was found in Windows directory value = (Conf_Data.home) ? Conf_H : Conf_W; - } else if (have_setting) { + } else if ((!have_section) && have_setting && + _wcsicmp(setting, L"IniEncoding") == 0) { + + // return "U" if configuration file was Unicode encoded, + // or "8" if it was UTF-8 encoded + + value = (Conf_Data.encoding == 1) ? Conf_UTF8 : Conf_Unicode; + + } + else if (have_setting) { check_global = ((index & CONF_GET_NO_GLOBAL) == 0); index &= 0xFFFF; @@ -1232,6 +1249,7 @@ _FX NTSTATUS Conf_Api_Reload(PROCESS *proc, ULONG64 *parms) Conf_Data.pool = NULL; List_Init(&Conf_Data.sections); Conf_Data.home = FALSE; + Conf_Data.encoding = 0; ExReleaseResourceLite(Conf_Lock); KeLowerIrql(irql); @@ -1373,6 +1391,7 @@ _FX BOOLEAN Conf_Init(void) Conf_Data.pool = NULL; List_Init(&Conf_Data.sections); Conf_Data.home = FALSE; + Conf_Data.encoding = 0; if (! Mem_GetLockResource(&Conf_Lock, TRUE)) return FALSE; diff --git a/Sandboxie/core/drv/file.c b/Sandboxie/core/drv/file.c index ec7bf57e..c75702dc 100644 --- a/Sandboxie/core/drv/file.c +++ b/Sandboxie/core/drv/file.c @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Sandboxie/core/drv/gui_xp.c b/Sandboxie/core/drv/gui_xp.c index d3153e6a..e28109fd 100644 --- a/Sandboxie/core/drv/gui_xp.c +++ b/Sandboxie/core/drv/gui_xp.c @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Sandboxie/core/drv/ipc.c b/Sandboxie/core/drv/ipc.c index 578e64c8..244a2f06 100644 --- a/Sandboxie/core/drv/ipc.c +++ b/Sandboxie/core/drv/ipc.c @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -204,20 +204,16 @@ _FX BOOLEAN Ipc_Init(void) Api_SetFunction(API_GET_DYNAMIC_PORT_FROM_PID, Ipc_Api_GetDynamicPortFromPid); Api_SetFunction(API_OPEN_DYNAMIC_PORT, Ipc_Api_OpenDynamicPort); - if (Driver_OsVersion >= DRIVER_WINDOWS_81) { - - if (!Mem_GetLockResource(&Ipc_Dynamic_Ports[SPOOLER_PORT].pPortLock, TRUE)) - return FALSE; - } - - if (Driver_OsVersion >= DRIVER_WINDOWS_10) { + // prepare dynamic ports + if (!Mem_GetLockResource(&Ipc_Dynamic_Ports[WPAD_PORT].pPortLock, TRUE) + || !Mem_GetLockResource(&Ipc_Dynamic_Ports[SMART_CARD_PORT].pPortLock, TRUE) + || !Mem_GetLockResource(&Ipc_Dynamic_Ports[BT_PORT].pPortLock, TRUE) + // since Windows 8 + || !Mem_GetLockResource(&Ipc_Dynamic_Ports[SPOOLER_PORT].pPortLock, TRUE) + // since Windows 10 + || !Mem_GetLockResource(&Ipc_Dynamic_Ports[GAME_CONFIG_STORE_PORT].pPortLock, TRUE) + ) return FALSE; - if(!Mem_GetLockResource(&Ipc_Dynamic_Ports[WPAD_PORT].pPortLock, TRUE) - || !Mem_GetLockResource(&Ipc_Dynamic_Ports[GAME_CONFIG_STORE_PORT].pPortLock, TRUE) - || !Mem_GetLockResource(&Ipc_Dynamic_Ports[SMART_CARD_PORT].pPortLock, TRUE) - ) return FALSE; - } - // // finish // diff --git a/Sandboxie/core/drv/ipc_lsa.c b/Sandboxie/core/drv/ipc_lsa.c index 0019d67e..15d3a93c 100644 --- a/Sandboxie/core/drv/ipc_lsa.c +++ b/Sandboxie/core/drv/ipc_lsa.c @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Sandboxie/core/drv/ipc_port.c b/Sandboxie/core/drv/ipc_port.c index 4c4a07a3..bb0647d8 100644 --- a/Sandboxie/core/drv/ipc_port.c +++ b/Sandboxie/core/drv/ipc_port.c @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Sandboxie/core/drv/ipc_spl.c b/Sandboxie/core/drv/ipc_spl.c index e602a828..82063fdd 100644 --- a/Sandboxie/core/drv/ipc_spl.c +++ b/Sandboxie/core/drv/ipc_spl.c @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Sandboxie/core/drv/key.c b/Sandboxie/core/drv/key.c index c6d3fdb9..71ffaca3 100644 --- a/Sandboxie/core/drv/key.c +++ b/Sandboxie/core/drv/key.c @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Sandboxie/core/drv/key_flt.c b/Sandboxie/core/drv/key_flt.c index 96e71f70..8056ca10 100644 --- a/Sandboxie/core/drv/key_flt.c +++ b/Sandboxie/core/drv/key_flt.c @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Sandboxie/core/drv/log.c b/Sandboxie/core/drv/log.c index f7a1a16f..1b7b3051 100644 --- a/Sandboxie/core/drv/log.c +++ b/Sandboxie/core/drv/log.c @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Sandboxie/core/drv/process.c b/Sandboxie/core/drv/process.c index 06b4a33e..32e44933 100644 --- a/Sandboxie/core/drv/process.c +++ b/Sandboxie/core/drv/process.c @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Sandboxie/core/drv/process.h b/Sandboxie/core/drv/process.h index 5502ffb7..61a9b000 100644 --- a/Sandboxie/core/drv/process.h +++ b/Sandboxie/core/drv/process.h @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Sandboxie/core/drv/session.c b/Sandboxie/core/drv/session.c index 981ce077..fb81552e 100644 --- a/Sandboxie/core/drv/session.c +++ b/Sandboxie/core/drv/session.c @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Sandboxie/core/drv/session.h b/Sandboxie/core/drv/session.h index c4e893d8..2c190a13 100644 --- a/Sandboxie/core/drv/session.h +++ b/Sandboxie/core/drv/session.h @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Sandboxie/core/drv/syscall.c b/Sandboxie/core/drv/syscall.c index c9a5f2b4..01b34917 100644 --- a/Sandboxie/core/drv/syscall.c +++ b/Sandboxie/core/drv/syscall.c @@ -1,5 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Sandboxie/core/drv/syscall_open.c b/Sandboxie/core/drv/syscall_open.c index 2994dd37..86541950 100644 --- a/Sandboxie/core/drv/syscall_open.c +++ b/Sandboxie/core/drv/syscall_open.c @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Sandboxie/core/drv/thread.c b/Sandboxie/core/drv/thread.c index 2f7ed789..4fc5c30e 100644 --- a/Sandboxie/core/drv/thread.c +++ b/Sandboxie/core/drv/thread.c @@ -1,5 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Sandboxie/core/drv/token.c b/Sandboxie/core/drv/token.c index 4edabd2a..df2e0e09 100644 --- a/Sandboxie/core/drv/token.c +++ b/Sandboxie/core/drv/token.c @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Sandboxie/core/drv/util.c b/Sandboxie/core/drv/util.c index 12f9d6f5..23a984b8 100644 --- a/Sandboxie/core/drv/util.c +++ b/Sandboxie/core/drv/util.c @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -231,34 +231,13 @@ BOOLEAN UnicodeStringEndsWith(PCUNICODE_STRING pString1, PWCHAR pString2, BOOLEA return (RtlCompareUnicodeString(&usStr, &usSearch, boolCaseInSensitive) == 0); } - BOOLEAN DoesRegValueExist(ULONG RelativeTo, WCHAR *Path, WCHAR *ValueName) { - NTSTATUS status; - RTL_QUERY_REGISTRY_TABLE qrt[2]; - UNICODE_STRING uni; - - // we don't care about the value, but we have to give it a NULL object - uni.Length = 0; - uni.MaximumLength = 0; - uni.Buffer = NULL; - - memzero(qrt, sizeof(qrt)); - qrt[0].Flags = RTL_QUERY_REGISTRY_REQUIRED | - RTL_QUERY_REGISTRY_DIRECT | - RTL_QUERY_REGISTRY_NOVALUE | - RTL_QUERY_REGISTRY_NOEXPAND; - qrt[0].Name = ValueName; - qrt[0].EntryContext = &uni; - qrt[0].DefaultType = REG_NONE; - - status = RtlQueryRegistryValues( - RelativeTo, Path, qrt, NULL, NULL); - - return (status == STATUS_SUCCESS); + WCHAR DummyBuffer[1] = {0}; // if we provide a NULL buffer this wil cause a memory pool leak someware in the kernel + UNICODE_STRING Dummy = { 0, sizeof(DummyBuffer), DummyBuffer }; + return GetRegString(RelativeTo, Path, ValueName, &Dummy); } - BOOLEAN GetRegString(ULONG RelativeTo, WCHAR *Path, WCHAR *ValueName, UNICODE_STRING* pData) { NTSTATUS status; diff --git a/Sandboxie/core/svc/EpMapperServer.cpp b/Sandboxie/core/svc/EpMapperServer.cpp index 0f877cc1..04ef48a0 100644 --- a/Sandboxie/core/svc/EpMapperServer.cpp +++ b/Sandboxie/core/svc/EpMapperServer.cpp @@ -1,5 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -72,8 +73,10 @@ MSG_HEADER *EpMapperServer::EpmapperGetPortNameHandler(MSG_HEADER *msg) const WCHAR* wstrSpooler = L"Spooler"; const WCHAR* wstrWPAD = L"WinHttpAutoProxySvc"; + //const WCHAR* wstrBT = L"bthserv"; RPC_IF_ID ifidGCS = { {0x88abcbc3, 0x34EA, 0x76AE, { 0x82, 0x15, 0x76, 0x75, 0x20, 0x65, 0x5A, 0x23 }}, 0, 0 }; RPC_IF_ID ifidSmartCard = { {0xC6B5235A, 0xE413, 0x481D, { 0x9A, 0xC8, 0x31, 0x68, 0x1B, 0x1F, 0xAA, 0xF5 }}, 1, 1 }; + RPC_IF_ID ifidBluetooth = { {0x2ACB9D68, 0xB434, 0x4B3E, { 0xB9, 0x66, 0xE0, 0x6B, 0x4B, 0x3A, 0x84, 0xCB }}, 1, 0 }; RPC_IF_ID ifidRequest; const WCHAR* pwszServiceName = NULL; @@ -81,10 +84,18 @@ MSG_HEADER *EpMapperServer::EpmapperGetPortNameHandler(MSG_HEADER *msg) { case SPOOLER_PORT: if (SbieApi_QueryConfBool(boxname, L"ClosePrintSpooler", FALSE)) return SHORT_REPLY(E_ACCESSDENIED); pwszServiceName = wstrSpooler; break; + case WPAD_PORT: pwszServiceName = wstrWPAD; break; + + case BT_PORT: if (!SbieApi_QueryConfBool(boxname, L"OpenBluetooth", FALSE)) return SHORT_REPLY(E_ACCESSDENIED); + //pwszServiceName = wstrBT; break; + memcpy(&ifidRequest, &ifidBluetooth, sizeof(RPC_IF_ID)); break; + case GAME_CONFIG_STORE_PORT: memcpy(&ifidRequest, &ifidGCS, sizeof(RPC_IF_ID)); break; + case SMART_CARD_PORT: if (!SbieApi_QueryConfBool(boxname, L"OpenSmartCard", TRUE)) return SHORT_REPLY(E_ACCESSDENIED); memcpy(&ifidRequest, &ifidSmartCard, sizeof(RPC_IF_ID)); break; + default: return SHORT_REPLY(E_INVALIDARG); } diff --git a/Sandboxie/core/svc/ProcessServer.cpp b/Sandboxie/core/svc/ProcessServer.cpp index 331fcf3f..f9f08b6e 100644 --- a/Sandboxie/core/svc/ProcessServer.cpp +++ b/Sandboxie/core/svc/ProcessServer.cpp @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Sandboxie/core/svc/SboxSvc.vcxproj b/Sandboxie/core/svc/SboxSvc.vcxproj index d5a92415..151b046c 100644 --- a/Sandboxie/core/svc/SboxSvc.vcxproj +++ b/Sandboxie/core/svc/SboxSvc.vcxproj @@ -97,6 +97,7 @@ %(PreprocessorDefinitions) Disabled Use + true SbieDll.lib;ntdll.lib;kernel32.lib;user32.lib;Advapi32.lib;psapi.lib;Ole32.lib;crypt32.lib;Secur32.lib;Userenv.lib;Gdi32.lib;Netapi32.lib;wtsapi32.lib;rpcrt4.lib @@ -112,6 +113,7 @@ %(PreprocessorDefinitions) Disabled Use + true SbieDll.lib;ntdll.lib;kernel32.lib;user32.lib;Advapi32.lib;psapi.lib;Ole32.lib;crypt32.lib;Secur32.lib;Userenv.lib;Gdi32.lib;Netapi32.lib;wtsapi32.lib;rpcrt4.lib @@ -126,6 +128,7 @@ %(PreprocessorDefinitions) Use + true SbieDll.lib;ntdll.lib;kernel32.lib;user32.lib;Advapi32.lib;psapi.lib;Ole32.lib;crypt32.lib;Secur32.lib;Userenv.lib;Gdi32.lib;Netapi32.lib;wtsapi32.lib;rpcrt4.lib @@ -140,6 +143,7 @@ %(PreprocessorDefinitions) Use + true SbieDll.lib;ntdll.lib;kernel32.lib;user32.lib;Advapi32.lib;psapi.lib;Ole32.lib;crypt32.lib;Secur32.lib;Userenv.lib;Gdi32.lib;Netapi32.lib;wtsapi32.lib;rpcrt4.lib diff --git a/Sandboxie/core/svc/sbieiniserver.cpp b/Sandboxie/core/svc/sbieiniserver.cpp index 3ed96a20..3a6cee4c 100644 --- a/Sandboxie/core/svc/sbieiniserver.cpp +++ b/Sandboxie/core/svc/sbieiniserver.cpp @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -66,7 +66,7 @@ MSG_HEADER *SbieIniServer::Handler(void *_this, MSG_HEADER *msg) pThis->m_text = NULL; pThis->m_text_base = NULL; pThis->m_text_max_len = 0; - pThis->m_insertbom = FALSE; + //pThis->m_insertbom = FALSE; MSG_HEADER *rpl = pThis->Handler2(msg); @@ -1278,8 +1278,8 @@ ULONG SbieIniServer::CallSetSetting(WCHAR *text, MSG_HEADER *msg) bool SbieIniServer::AddText(const WCHAR *line) { - static const WCHAR *_ByteOrderMark = L"ByteOrderMark="; - static ULONG _ByteOrderMarkLen = 0; + //static const WCHAR *_ByteOrderMark = L"ByteOrderMark="; + //static ULONG _ByteOrderMarkLen = 0; ULONG line_len = wcslen(line); @@ -1309,13 +1309,13 @@ bool SbieIniServer::AddText(const WCHAR *line) m_text[2] = L'\0'; m_text += 2; - if (! _ByteOrderMarkLen) - _ByteOrderMarkLen = wcslen(_ByteOrderMark); - if (_wcsnicmp(line, _ByteOrderMark, _ByteOrderMarkLen) == 0) { - const WCHAR ch = line[_ByteOrderMarkLen]; - if (ch == L'y' || ch == L'Y') - m_insertbom = TRUE; - } + //if (! _ByteOrderMarkLen) + // _ByteOrderMarkLen = wcslen(_ByteOrderMark); + //if (_wcsnicmp(line, _ByteOrderMark, _ByteOrderMarkLen) == 0) { + // const WCHAR ch = line[_ByteOrderMarkLen]; + // if (ch == L'y' || ch == L'Y') + // m_insertbom = TRUE; + //} return true; } @@ -1366,7 +1366,8 @@ bool SbieIniServer::AddCallerText(WCHAR *setting, WCHAR *value) ULONG SbieIniServer::RefreshConf() { WCHAR *IniPath, *TmpPath; - if (! GetIniPath(&IniPath, &TmpPath)) + BOOLEAN IsUTF8 = FALSE; + if (! GetIniPath(&IniPath, &TmpPath, NULL, &IsUTF8)) return STATUS_INSUFFICIENT_RESOURCES; HANDLE hFile = INVALID_HANDLE_VALUE; @@ -1440,7 +1441,16 @@ ULONG SbieIniServer::RefreshConf() goto finish; } - if (m_insertbom) { + if (IsUTF8) + { + // UTF-8 Signature + static const UCHAR bom[3] = { 0xEF, 0xBB, 0xBF }; + ULONG lenDummy; + WriteFile(hFile, bom, sizeof(bom), &lenDummy, NULL); + } + else + //if (m_insertbom) + { // UNICODE Byte Order Mark (little endian) static const UCHAR bom[2] = { 0xFF, 0xFE }; ULONG lenDummy; @@ -1448,9 +1458,21 @@ ULONG SbieIniServer::RefreshConf() } ULONG lenToWrite = wcslen(m_text_base) * sizeof(WCHAR); + + char* text_utf8 = NULL; + if (IsUTF8) + { + text_utf8 = (char*)HeapAlloc(GetProcessHeap(), 0, lenToWrite + 16); + lenToWrite = WideCharToMultiByte(CP_UTF8, 0, m_text_base, lenToWrite / sizeof(WCHAR), text_utf8, lenToWrite + 16, NULL, NULL); + } + ULONG lenWritten = 0; - if (! WriteFile(hFile, m_text_base, lenToWrite, &lenWritten, NULL)) + if (! WriteFile(hFile, text_utf8 ? (void*)text_utf8 : (void*)m_text_base, lenToWrite, &lenWritten, NULL)) lenWritten = -1; + + if(text_utf8) + HeapFree(GetProcessHeap(), 0, text_utf8); + if (lenWritten != lenToWrite) SbieApi_LogEx(m_session_id, 2322, L"[16 / %d]", GetLastError()); else { @@ -1500,7 +1522,7 @@ finish: bool SbieIniServer::GetIniPath(WCHAR **IniPath, WCHAR **TmpPath, - BOOLEAN *IsHomePath) + BOOLEAN *IsHomePath, BOOLEAN* IsUTF8) { static const WCHAR *_ini = SANDBOXIE_INI; WCHAR *path = (WCHAR *)HeapAlloc(GetProcessHeap(), 0, 2048); @@ -1516,6 +1538,12 @@ bool SbieIniServer::GetIniPath(WCHAR **IniPath, WCHAR **TmpPath, // program home directory or from the Windows directory, and // we use that information to select the output path + if (IsUTF8 != NULL) { + LONG rc = SbieApi_QueryConfAsIs(NULL, L"IniEncoding", 0, path, 8); + if (rc == 0 && *path == L'8') + *IsUTF8 = TRUE; + } + LONG rc = SbieApi_QueryConfAsIs(NULL, L"IniLocation", 0, path, 8); if (rc == 0 && *path == L'H') { diff --git a/Sandboxie/core/svc/sbieiniserver.h b/Sandboxie/core/svc/sbieiniserver.h index 2c724f98..4543a58b 100644 --- a/Sandboxie/core/svc/sbieiniserver.h +++ b/Sandboxie/core/svc/sbieiniserver.h @@ -1,5 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -75,7 +76,7 @@ protected: ULONG RefreshConf(); bool GetIniPath(WCHAR **IniPath, WCHAR **TmpPath, - BOOLEAN *IsHomePath = NULL); + BOOLEAN *IsHomePath = NULL, BOOLEAN* IsUTF8 = NULL); bool TokenIsAdmin(HANDLE hToken); @@ -97,7 +98,7 @@ protected: WCHAR *m_text, *m_text_base; ULONG m_text_max_len; WCHAR m_line[1500]; - BOOLEAN m_insertbom; + //BOOLEAN m_insertbom; BOOLEAN m_admin; HANDLE m_hLockFile; ULONG m_session_id; diff --git a/Sandboxie/core/svc/serviceserver.h b/Sandboxie/core/svc/serviceserver.h index a1365b5e..c50eebcd 100644 --- a/Sandboxie/core/svc/serviceserver.h +++ b/Sandboxie/core/svc/serviceserver.h @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Sandboxie/core/svc/serviceserver2.cpp b/Sandboxie/core/svc/serviceserver2.cpp index 28244eea..be24612b 100644 --- a/Sandboxie/core/svc/serviceserver2.cpp +++ b/Sandboxie/core/svc/serviceserver2.cpp @@ -1,6 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC - * Copyright 2020 David Xanatos, xanasoft.com + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Sandboxie/install/Templates.ini b/Sandboxie/install/Templates.ini index 0b395c98..2f08ec48 100644 Binary files a/Sandboxie/install/Templates.ini and b/Sandboxie/install/Templates.ini differ diff --git a/Sandboxie/install/kmdutil/kmdutil.vcxproj b/Sandboxie/install/kmdutil/kmdutil.vcxproj index 80b2e285..45f6b432 100644 --- a/Sandboxie/install/kmdutil/kmdutil.vcxproj +++ b/Sandboxie/install/kmdutil/kmdutil.vcxproj @@ -77,6 +77,7 @@ Use Disabled + true libucrt.lib;libvcruntime.lib;ntdll.lib;psapi.lib;SbieDll.lib;%(AdditionalDependencies) @@ -88,6 +89,7 @@ Use Disabled + true libucrt.lib;libvcruntime.lib;ntdll.lib;psapi.lib;SbieDll.lib;%(AdditionalDependencies) @@ -101,6 +103,7 @@ + true libucrt.lib;libvcruntime.lib;ntdll.lib;psapi.lib;SbieDll.lib;%(AdditionalDependencies) @@ -114,6 +117,7 @@ MaxSpeed + true libucrt.lib;libvcruntime.lib;ntdll.lib;psapi.lib;SbieDll.lib;%(AdditionalDependencies) diff --git a/Sandboxie/msgs/Old-PortuguesePt-2070.text b/Sandboxie/msgs/Old-PortuguesePt-2070.text deleted file mode 100644 index 800d4d29..00000000 Binary files a/Sandboxie/msgs/Old-PortuguesePt-2070.text and /dev/null differ diff --git a/Sandboxie/msgs/Sbie-English-1033.txt b/Sandboxie/msgs/Sbie-English-1033.txt index c48ea711..46513cd5 100644 Binary files a/Sandboxie/msgs/Sbie-English-1033.txt and b/Sandboxie/msgs/Sbie-English-1033.txt differ diff --git a/Sandboxie/msgs/Text-Albanian-1052.txt b/Sandboxie/msgs/Text-Albanian-1052.txt index 59cbaaaa..e9cc1fe8 100644 Binary files a/Sandboxie/msgs/Text-Albanian-1052.txt and b/Sandboxie/msgs/Text-Albanian-1052.txt differ diff --git a/Sandboxie/msgs/Text-Arabic-1025.txt b/Sandboxie/msgs/Text-Arabic-1025.txt index 35b2c913..601e5a87 100644 Binary files a/Sandboxie/msgs/Text-Arabic-1025.txt and b/Sandboxie/msgs/Text-Arabic-1025.txt differ diff --git a/Sandboxie/msgs/Text-Bulgarian-1026.txt b/Sandboxie/msgs/Text-Bulgarian-1026.txt index 79eea91e..a86c9d30 100644 Binary files a/Sandboxie/msgs/Text-Bulgarian-1026.txt and b/Sandboxie/msgs/Text-Bulgarian-1026.txt differ diff --git a/Sandboxie/msgs/Text-Croatian-1050.txt b/Sandboxie/msgs/Text-Croatian-1050.txt index 31e2f8f2..474bbe9c 100644 Binary files a/Sandboxie/msgs/Text-Croatian-1050.txt and b/Sandboxie/msgs/Text-Croatian-1050.txt differ diff --git a/Sandboxie/msgs/Text-Czech-1029.txt b/Sandboxie/msgs/Text-Czech-1029.txt index 678a864e..b2a1514e 100644 Binary files a/Sandboxie/msgs/Text-Czech-1029.txt and b/Sandboxie/msgs/Text-Czech-1029.txt differ diff --git a/Sandboxie/msgs/Text-Danish-1030.txt b/Sandboxie/msgs/Text-Danish-1030.txt index 70c46fc6..7d2d6690 100644 Binary files a/Sandboxie/msgs/Text-Danish-1030.txt and b/Sandboxie/msgs/Text-Danish-1030.txt differ diff --git a/Sandboxie/msgs/Text-Dutch-1043.txt b/Sandboxie/msgs/Text-Dutch-1043.txt index 589c422b..a2f86fb3 100644 Binary files a/Sandboxie/msgs/Text-Dutch-1043.txt and b/Sandboxie/msgs/Text-Dutch-1043.txt differ diff --git a/Sandboxie/msgs/Text-Estonian-1061.txt b/Sandboxie/msgs/Text-Estonian-1061.txt index 977cba37..4c4d14fb 100644 Binary files a/Sandboxie/msgs/Text-Estonian-1061.txt and b/Sandboxie/msgs/Text-Estonian-1061.txt differ diff --git a/Sandboxie/msgs/Text-Farsi-1065.txt b/Sandboxie/msgs/Text-Farsi-1065.txt index 60456218..242adf59 100644 Binary files a/Sandboxie/msgs/Text-Farsi-1065.txt and b/Sandboxie/msgs/Text-Farsi-1065.txt differ diff --git a/Sandboxie/msgs/Text-Finnish-1035.txt b/Sandboxie/msgs/Text-Finnish-1035.txt index c64557ce..0d37fdee 100644 Binary files a/Sandboxie/msgs/Text-Finnish-1035.txt and b/Sandboxie/msgs/Text-Finnish-1035.txt differ diff --git a/Sandboxie/msgs/Text-French-1036.txt b/Sandboxie/msgs/Text-French-1036.txt index c2e91f21..4408e622 100644 Binary files a/Sandboxie/msgs/Text-French-1036.txt and b/Sandboxie/msgs/Text-French-1036.txt differ diff --git a/Sandboxie/msgs/Text-German-1031.txt b/Sandboxie/msgs/Text-German-1031.txt index 5f8ed28c..22adb742 100644 Binary files a/Sandboxie/msgs/Text-German-1031.txt and b/Sandboxie/msgs/Text-German-1031.txt differ diff --git a/Sandboxie/msgs/Text-Greek-1032.txt b/Sandboxie/msgs/Text-Greek-1032.txt index 9acd9937..d6689be6 100644 Binary files a/Sandboxie/msgs/Text-Greek-1032.txt and b/Sandboxie/msgs/Text-Greek-1032.txt differ diff --git a/Sandboxie/msgs/Text-Hebrew-1037.txt b/Sandboxie/msgs/Text-Hebrew-1037.txt index c2fb836e..0c98769e 100644 Binary files a/Sandboxie/msgs/Text-Hebrew-1037.txt and b/Sandboxie/msgs/Text-Hebrew-1037.txt differ diff --git a/Sandboxie/msgs/Text-Hungarian-1038.txt b/Sandboxie/msgs/Text-Hungarian-1038.txt index 2ad9f416..0cbf7489 100644 Binary files a/Sandboxie/msgs/Text-Hungarian-1038.txt and b/Sandboxie/msgs/Text-Hungarian-1038.txt differ diff --git a/Sandboxie/msgs/Text-Indonesian-1057.txt b/Sandboxie/msgs/Text-Indonesian-1057.txt index 256e0d07..b5a90e88 100644 Binary files a/Sandboxie/msgs/Text-Indonesian-1057.txt and b/Sandboxie/msgs/Text-Indonesian-1057.txt differ diff --git a/Sandboxie/msgs/Text-Italian-1040.txt b/Sandboxie/msgs/Text-Italian-1040.txt index 4bc28f13..0ff82d8a 100644 Binary files a/Sandboxie/msgs/Text-Italian-1040.txt and b/Sandboxie/msgs/Text-Italian-1040.txt differ diff --git a/Sandboxie/msgs/Text-Japanese-1041.txt b/Sandboxie/msgs/Text-Japanese-1041.txt index d2904151..61f9521d 100644 Binary files a/Sandboxie/msgs/Text-Japanese-1041.txt and b/Sandboxie/msgs/Text-Japanese-1041.txt differ diff --git a/Sandboxie/msgs/Text-Korean-1042.txt b/Sandboxie/msgs/Text-Korean-1042.txt index b3c83efa..c966fc2a 100644 Binary files a/Sandboxie/msgs/Text-Korean-1042.txt and b/Sandboxie/msgs/Text-Korean-1042.txt differ diff --git a/Sandboxie/msgs/Text-Macedonian-1071.txt b/Sandboxie/msgs/Text-Macedonian-1071.txt index 59dbf0ab..efc4f719 100644 Binary files a/Sandboxie/msgs/Text-Macedonian-1071.txt and b/Sandboxie/msgs/Text-Macedonian-1071.txt differ diff --git a/Sandboxie/msgs/Text-Polish-1045.txt b/Sandboxie/msgs/Text-Polish-1045.txt index 9c7e57d4..b815d5d2 100644 Binary files a/Sandboxie/msgs/Text-Polish-1045.txt and b/Sandboxie/msgs/Text-Polish-1045.txt differ diff --git a/Sandboxie/msgs/Text-Portuguese-2070.txt b/Sandboxie/msgs/Text-Portuguese-2070.txt index 800d4d29..afdb2ad6 100644 Binary files a/Sandboxie/msgs/Text-Portuguese-2070.txt and b/Sandboxie/msgs/Text-Portuguese-2070.txt differ diff --git a/Sandboxie/msgs/Text-PortugueseBr-1046.txt b/Sandboxie/msgs/Text-PortugueseBr-1046.txt index c086830c..3f96b8af 100644 Binary files a/Sandboxie/msgs/Text-PortugueseBr-1046.txt and b/Sandboxie/msgs/Text-PortugueseBr-1046.txt differ diff --git a/Sandboxie/msgs/Text-Russian-1049.txt b/Sandboxie/msgs/Text-Russian-1049.txt index ae1d3625..fa9f3ecf 100644 Binary files a/Sandboxie/msgs/Text-Russian-1049.txt and b/Sandboxie/msgs/Text-Russian-1049.txt differ diff --git a/Sandboxie/msgs/Text-SimpChinese-2052.txt b/Sandboxie/msgs/Text-SimpChinese-2052.txt index 10d325ec..e068f396 100644 --- a/Sandboxie/msgs/Text-SimpChinese-2052.txt +++ b/Sandboxie/msgs/Text-SimpChinese-2052.txt @@ -1,4 +1,4 @@ -#---------------------------------------------------------------------------- +#---------------------------------------------------------------------------- # SbieDrv # # Initialization errors issued to to the System evt Log diff --git a/Sandboxie/msgs/Text-Slovak-1051.txt b/Sandboxie/msgs/Text-Slovak-1051.txt index 8481dfdd..9347ad5a 100644 Binary files a/Sandboxie/msgs/Text-Slovak-1051.txt and b/Sandboxie/msgs/Text-Slovak-1051.txt differ diff --git a/Sandboxie/msgs/Text-Spanish-1034.txt b/Sandboxie/msgs/Text-Spanish-1034.txt index 48e06544..f447f397 100644 Binary files a/Sandboxie/msgs/Text-Spanish-1034.txt and b/Sandboxie/msgs/Text-Spanish-1034.txt differ diff --git a/Sandboxie/msgs/Text-Swedish-1053.txt b/Sandboxie/msgs/Text-Swedish-1053.txt index 7b11398b..27136a3b 100644 Binary files a/Sandboxie/msgs/Text-Swedish-1053.txt and b/Sandboxie/msgs/Text-Swedish-1053.txt differ diff --git a/Sandboxie/msgs/Text-TradChinese-1028.txt b/Sandboxie/msgs/Text-TradChinese-1028.txt index 76e91f58..7b26801f 100644 Binary files a/Sandboxie/msgs/Text-TradChinese-1028.txt and b/Sandboxie/msgs/Text-TradChinese-1028.txt differ diff --git a/Sandboxie/msgs/Text-Turkish-1055.txt b/Sandboxie/msgs/Text-Turkish-1055.txt index 9c793266..9462e051 100644 Binary files a/Sandboxie/msgs/Text-Turkish-1055.txt and b/Sandboxie/msgs/Text-Turkish-1055.txt differ diff --git a/Sandboxie/msgs/Text-Ukrainian-1058.txt b/Sandboxie/msgs/Text-Ukrainian-1058.txt index e97b29a3..312c28a1 100644 Binary files a/Sandboxie/msgs/Text-Ukrainian-1058.txt and b/Sandboxie/msgs/Text-Ukrainian-1058.txt differ diff --git a/Sandboxie/msgs/parse.c b/Sandboxie/msgs/parse.c index d442454a..b53262c6 100644 --- a/Sandboxie/msgs/parse.c +++ b/Sandboxie/msgs/parse.c @@ -1,5 +1,6 @@ /* * Copyright 2004-2020 Sandboxie Holdings, LLC + * Copyright 2020-2021 David Xanatos, xanasoft.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -223,9 +224,11 @@ void ReadTextFile(const UCHAR *path, LIST *msgs) { HANDLE hFile; ULONG ByteSize, ReadSize; - WCHAR *Buffer, *BufPtr; + UCHAR* Buffer; + WCHAR *BufPtr; ULONG LineNum; ULONG i; + BOOLEAN isUTF8 = TRUE; // // read entire contents of text file @@ -252,7 +255,7 @@ void ReadTextFile(const UCHAR *path, LIST *msgs) CloseHandle(hFile); - memset(&Buffer[ReadSize / sizeof(WCHAR)], 0, 16); + memset(&Buffer[ReadSize], 0, 16); // // build list of messages @@ -262,9 +265,32 @@ void ReadTextFile(const UCHAR *path, LIST *msgs) LineNum = 1; - BufPtr = Buffer; - if (*BufPtr == 0xFEFF) - ++BufPtr; + + if (Buffer[0] == 0xFF && Buffer[1] == 0xFE) // Unicode BOM + { + BufPtr = &Buffer[2]; + ReadSize -= 2; + isUTF8 = FALSE; + } + else if (Buffer[0] == 0xEF && Buffer[1] == 0xBB && Buffer[2] == 0xBF) // UTF8 BOM + { + BufPtr = &Buffer[3]; + ReadSize -= 3; + isUTF8 = TRUE; + } + else + BufPtr = Buffer; + + if (isUTF8) + { + char* utf8 = BufPtr; + + ByteSize *= 2; + Buffer = Alloc(ByteSize + 16); + BufPtr = Buffer; + + MultiByteToWideChar(CP_UTF8, 0, utf8, ReadSize, BufPtr, ByteSize); + } while (1) { diff --git a/SandboxiePlus/MiscHelpers/Common/ItemChooser.cpp b/SandboxiePlus/MiscHelpers/Common/ItemChooser.cpp index 4f0072e9..cecf3bdc 100644 --- a/SandboxiePlus/MiscHelpers/Common/ItemChooser.cpp +++ b/SandboxiePlus/MiscHelpers/Common/ItemChooser.cpp @@ -27,11 +27,11 @@ CItemChooser::CItemChooser(const QString& Prompt, QWidget *parent) m_pMidleLayout->addItem(new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding)); m_pBtnAdd = new QPushButton(tr("Add >"), this); - connect(m_pBtnAdd, SIGNAL(pressed()), this, SLOT(OnAdd())); + connect(m_pBtnAdd, SIGNAL(clicked(bool)), this, SLOT(OnAdd())); m_pMidleLayout->addWidget(m_pBtnAdd); m_pBtnRemove = new QPushButton(tr("< Remove"), this); - connect(m_pBtnRemove, SIGNAL(pressed()), this, SLOT(OnRemove())); + connect(m_pBtnRemove, SIGNAL(clicked(bool)), this, SLOT(OnRemove())); m_pMidleLayout->addWidget(m_pBtnRemove); m_pMidleLayout->addItem(new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding)); @@ -45,11 +45,11 @@ CItemChooser::CItemChooser(const QString& Prompt, QWidget *parent) m_pCenterLayout->addLayout(m_pRightLayout); m_pBtnUp = new QPushButton(tr("Move Up"), this); - connect(m_pBtnUp, SIGNAL(pressed()), this, SLOT(OnUp())); + connect(m_pBtnUp, SIGNAL(clicked(bool)), this, SLOT(OnUp())); m_pRightLayout->addWidget(m_pBtnUp); m_pBtnDown = new QPushButton(tr("Move Down"), this); - connect(m_pBtnDown, SIGNAL(pressed()), this, SLOT(OnDown())); + connect(m_pBtnDown, SIGNAL(clicked(bool)), this, SLOT(OnDown())); m_pRightLayout->addWidget(m_pBtnDown); m_pRightLayout->addItem(new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding)); diff --git a/SandboxiePlus/MiscHelpers/Common/SettingsWidgets.cpp b/SandboxiePlus/MiscHelpers/Common/SettingsWidgets.cpp index 79a5a43d..d1e21e79 100644 --- a/SandboxiePlus/MiscHelpers/Common/SettingsWidgets.cpp +++ b/SandboxiePlus/MiscHelpers/Common/SettingsWidgets.cpp @@ -17,7 +17,7 @@ CPathEdit::CPathEdit(bool bDirs, QWidget *parent) pLayout->addWidget(m_pEdit); QPushButton* pButton = new QPushButton("..."); pButton->setMaximumWidth(25); - connect(pButton, SIGNAL(pressed()), this, SLOT(Browse())); + connect(pButton, SIGNAL(clicked(bool)), this, SLOT(Browse())); pLayout->addWidget(pButton); } diff --git a/SandboxiePlus/MiscHelpers/MiscHelpers.pri b/SandboxiePlus/MiscHelpers/MiscHelpers.pri new file mode 100644 index 00000000..80a37747 --- /dev/null +++ b/SandboxiePlus/MiscHelpers/MiscHelpers.pri @@ -0,0 +1,59 @@ +# ---------------------------------------------------- +# This file is generated by the Qt Visual Studio Tools. +# ------------------------------------------------------ + +HEADERS += ./MiscHelpers.h \ + ./mischelpers_global.h \ + ./stdafx.h \ + ./Common/Common.h \ + ./Common/DebugHelpers.h \ + ./Common/ExitDialog.h \ + ./Common/FlexError.h \ + ./Common/FlowLayout.h \ + ./Common/HistoryGraph.h \ + ./Common/IconExtreactor.h \ + ./Common/qRC4.h \ + ./Common/Xml.h \ + ./Common/CheckableMessageBox.h \ + ./Common/ComboInputDialog.h \ + ./Common/Finder.h \ + ./Common/ItemChooser.h \ + ./Common/KeyValueInputDialog.h \ + ./Common/ListItemModel.h \ + ./Common/MultiLineInputDialog.h \ + ./Common/PanelView.h \ + ./Common/ProgressDialog.h \ + ./Common/Settings.h \ + ./Common/SettingsWidgets.h \ + ./Common/SmartGridWidget.h \ + ./Common/SortFilterProxyModel.h \ + ./Common/SplitTreeView.h \ + ./Common/TabPanel.h \ + ./Common/TreeItemModel.h \ + ./Common/TreeViewEx.h \ + ./Common/TreeWidgetEx.h \ + ./Common/NetworkAccessManager.h + +SOURCES += ./MiscHelpers.cpp \ + ./stdafx.cpp \ + ./Common/CheckableMessageBox.cpp \ + ./Common/ComboInputDialog.cpp \ + ./Common/Common.cpp \ + ./Common/DebugHelpers.cpp \ + ./Common/Finder.cpp \ + ./Common/FlowLayout.cpp \ + ./Common/IconExtreactor.cpp \ + ./Common/ItemChooser.cpp \ + ./Common/KeyValueInputDialog.cpp \ + ./Common/ListItemModel.cpp \ + ./Common/MultiLineInputDialog.cpp \ + ./Common/PanelView.cpp \ + ./Common/qRC4.cpp \ + ./Common/NetworkAccessManager.cpp \ + ./Common/Settings.cpp \ + ./Common/SettingsWidgets.cpp \ + ./Common/SmartGridWidget.cpp \ + ./Common/SplitTreeView.cpp \ + ./Common/TabPanel.cpp \ + ./Common/TreeItemModel.cpp \ + ./Common/Xml.cpp diff --git a/SandboxiePlus/MiscHelpers/MiscHelpers.qc.pro b/SandboxiePlus/MiscHelpers/MiscHelpers.qc.pro new file mode 100644 index 00000000..83a6b95a --- /dev/null +++ b/SandboxiePlus/MiscHelpers/MiscHelpers.qc.pro @@ -0,0 +1,40 @@ + +TEMPLATE = lib +TARGET = MiscHelpers +QT += core network widgets winextras +#CONFIG += debug +# DEFINES += QT_LARGEFILE_SUPPORT QTSERVICE_LIB QT_WIDGETS_LIB QT_QTSINGLEAPPLICATION_EXPORT +DEFINES += MISCHELPERS_LIB +#LIBS += -L"." +PRECOMPILED_HEADER = stdafx.h +#DEPENDPATH += . +#MOC_DIR += ./GeneratedFiles/$(ConfigurationName) +#OBJECTS_DIR += debug +#UI_DIR += ./GeneratedFiles +#RCC_DIR += ./GeneratedFiles +win32:LIBS += -lUser32 -lShell32 + +!mac:unix:QMAKE_LFLAGS += -Wl,-rpath,'\$\$ORIGIN' +mac:QMAKE_CXXFLAGS += -std=c++11 + +!win32:QMAKE_LFLAGS +=-rdynamic + +CONFIG(release, debug|release):{ +QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO +QMAKE_LFLAGS_RELEASE = $$QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO +} + +CONFIG(debug, debug|release):contains(QMAKE_HOST.arch, x86_64):DESTDIR = ../Bin/x64/Debug +CONFIG(release, debug|release):contains(QMAKE_HOST.arch, x86_64):DESTDIR = ../Bin/x64/Release +CONFIG(debug, debug|release):!contains(QMAKE_HOST.arch, x86_64):DESTDIR = ../Bin/Win32/Debug +CONFIG(release, debug|release):!contains(QMAKE_HOST.arch, x86_64):DESTDIR = ../Bin/Win32/Release + +INCLUDEPATH += . +DEPENDPATH += . +#MOC_DIR += ./GeneratedFiles +#OBJECTS_DIR += ./ObjectFiles +#UI_DIR += ./GeneratedFiles +#RCC_DIR += ./GeneratedFiles + + +include(MiscHelpers.pri) diff --git a/SandboxiePlus/MiscHelpers/MiscHelpers.vcxproj.user b/SandboxiePlus/MiscHelpers/MiscHelpers.vcxproj.user deleted file mode 100644 index 6e2aec7a..00000000 --- a/SandboxiePlus/MiscHelpers/MiscHelpers.vcxproj.user +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/SandboxiePlus/QSbieAPI/QSbieAPI.pri b/SandboxiePlus/QSbieAPI/QSbieAPI.pri new file mode 100644 index 00000000..108f47d5 --- /dev/null +++ b/SandboxiePlus/QSbieAPI/QSbieAPI.pri @@ -0,0 +1,28 @@ +# ---------------------------------------------------- +# This file is generated by the Qt Visual Studio Tools. +# ------------------------------------------------------ + + +HEADERS += ./qsbieapi_global.h \ + ./stdafx.h \ + ../../Sandboxie/common/win32_ntddk.h \ + ./SbieDefs.h \ + ./SbieUtils.h \ + ./SbieAPI.h \ + ./SbieStatus.h \ + ./Sandboxie/BoxedProcess.h \ + ./Sandboxie/SandBox.h \ + ./Sandboxie/SbieIni.h \ + ./Sandboxie/BoxBorder.h \ + ./Sandboxie/SbieTemplates.h \ + ./Helpers/NtIO.h + +SOURCES += ./stdafx.cpp \ + ./SbieAPI.cpp \ + ./SbieUtils.cpp \ + ./Sandboxie/BoxBorder.cpp \ + ./Sandboxie/BoxedProcess.cpp \ + ./Sandboxie/SandBox.cpp \ + ./Sandboxie/SbieIni.cpp \ + ./Sandboxie/SbieTemplates.cpp \ + ./Helpers/NtIO.cpp diff --git a/SandboxiePlus/QSbieAPI/QSbieAPI.qc.pro b/SandboxiePlus/QSbieAPI/QSbieAPI.qc.pro new file mode 100644 index 00000000..f840c5cd --- /dev/null +++ b/SandboxiePlus/QSbieAPI/QSbieAPI.qc.pro @@ -0,0 +1,35 @@ + +TEMPLATE = lib +TARGET = QSbieAPI +QT += core concurrent +#CONFIG += debug +# DEFINES += QT_LARGEFILE_SUPPORT QTSERVICE_LIB QT_WIDGETS_LIB QT_QTSINGLEAPPLICATION_EXPORT +DEFINES += QSBIEAPI_LIB +#LIBS += -L"." +PRECOMPILED_HEADER = stdafx.h +#DEPENDPATH += . +#MOC_DIR += ./GeneratedFiles/$(ConfigurationName) +#OBJECTS_DIR += debug +#UI_DIR += ./GeneratedFiles +#RCC_DIR += ./GeneratedFiles +LIBS += -lNtdll -lAdvapi32 -lOle32 -lUser32 -lShell32 -lGdi32 + +CONFIG(release, debug|release):{ +QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO +QMAKE_LFLAGS_RELEASE = $$QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO +} + +CONFIG(debug, debug|release):contains(QMAKE_HOST.arch, x86_64):DESTDIR = ../Bin/x64/Debug +CONFIG(release, debug|release):contains(QMAKE_HOST.arch, x86_64):DESTDIR = ../Bin/x64/Release +CONFIG(debug, debug|release):!contains(QMAKE_HOST.arch, x86_64):DESTDIR = ../Bin/Win32/Debug +CONFIG(release, debug|release):!contains(QMAKE_HOST.arch, x86_64):DESTDIR = ../Bin/Win32/Release + +INCLUDEPATH += . +DEPENDPATH += . +#MOC_DIR += ./GeneratedFiles +#OBJECTS_DIR += ./ObjectFiles +#UI_DIR += ./GeneratedFiles +#RCC_DIR += ./GeneratedFiles + + +include(QSbieAPI.pri) diff --git a/SandboxiePlus/QSbieAPI/QSbieAPI.vcxproj.user b/SandboxiePlus/QSbieAPI/QSbieAPI.vcxproj.user deleted file mode 100644 index 6e2aec7a..00000000 --- a/SandboxiePlus/QSbieAPI/QSbieAPI.vcxproj.user +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/SandboxiePlus/QSbieAPI/Sandboxie/SandBox.cpp b/SandboxiePlus/QSbieAPI/Sandboxie/SandBox.cpp index 597ce4ae..681891a7 100644 --- a/SandboxiePlus/QSbieAPI/Sandboxie/SandBox.cpp +++ b/SandboxiePlus/QSbieAPI/Sandboxie/SandBox.cpp @@ -43,30 +43,48 @@ CSandBox::CSandBox(const QString& BoxName, class CSbieAPI* pAPI) : CSbieIni(BoxN // when loading a sandbox that is not initialized, initialize it int cfglvl = GetNum("ConfigLevel"); - if (cfglvl >= 7) + if (cfglvl >= 8) return; - SetNum("ConfigLevel", 7); + SetNum("ConfigLevel", 8); - SetBool("AutoRecover", false); - SetBool("BlockNetworkFiles", true); + if (cfglvl == 0) + { + SetBool("AutoRecover", false); + SetBool("BlockNetworkFiles", true); - // templates L6 - InsertText("Template", "AutoRecoverIgnore"); - InsertText("Template", "Firefox_Phishing_DirectAccess"); - InsertText("Template", "Chrome_Phishing_DirectAccess"); - InsertText("Template", "LingerPrograms"); - // templates L7 - InsertText("Template", "BlockPorts"); - InsertText("Template", "qWave"); + // recovery + InsertText("RecoverFolder", "%Desktop%"); + //InsertText("RecoverFolder", "%Favorites%"); // obsolete + InsertText("RecoverFolder", "%Personal%"); + InsertText("RecoverFolder", "%{374DE290-123F-4565-9164-39C4925E467B}%"); // %USERPROFILE%\Downloads - // recovery - InsertText("RecoverFolder", "%Desktop%"); - //InsertText("RecoverFolder", "%Favorites%"); // obsolete - InsertText("RecoverFolder", "%Personal%"); - InsertText("RecoverFolder", "%{374DE290-123F-4565-9164-39C4925E467B}%"); // %USERPROFILE%\Downloads + SetText("BorderColor", "#00FFFF,ttl"); // "#00FFFF,off" + } + + if (cfglvl < 6) + { + // templates L6 + InsertText("Template", "AutoRecoverIgnore"); + InsertText("Template", "Firefox_Phishing_DirectAccess"); + InsertText("Template", "Chrome_Phishing_DirectAccess"); + InsertText("Template", "LingerPrograms"); + } + + if (cfglvl < 7) + { + // templates L7 + InsertText("Template", "BlockPorts"); + //InsertText("Template", "WindowsFontCache"); // since 5.46.3 open by driver + InsertText("Template", "qWave"); + } + + if (cfglvl < 8) + { + // templates L8 + InsertText("Template", "FileCppy"); + InsertText("Template", "SkipHook"); + } - SetText("BorderColor", "#00FFFF,ttl"); // "#00FFFF,off" - } CSandBox::~CSandBox() diff --git a/SandboxiePlus/QSbieAPI/SbieAPI.cpp b/SandboxiePlus/QSbieAPI/SbieAPI.cpp index b2f994fe..30424e4d 100644 --- a/SandboxiePlus/QSbieAPI/SbieAPI.cpp +++ b/SandboxiePlus/QSbieAPI/SbieAPI.cpp @@ -177,7 +177,7 @@ CBoxedProcess* CSbieAPI::NewBoxedProcess(quint32 ProcessId, class CSandBox* pBox return new CBoxedProcess(ProcessId, pBox); } -QString CSbieAPI__GetRegValue(HANDLE hKey, WCHAR* pName) +QString CSbieAPI__GetRegValue(HANDLE hKey, const WCHAR* pName) { char buf[sizeof(KEY_VALUE_PARTIAL_INFORMATION) + MAX_PATH]; KEY_VALUE_PARTIAL_INFORMATION *value = (KEY_VALUE_PARTIAL_INFORMATION *)buf; @@ -918,7 +918,7 @@ QString CSbieAPI::GetStartPath() const return m_SbiePath + "//" + QString::fromWCharArray(SBIESTART_EXE); } -SB_STATUS CSbieAPI::ReloadBoxes() +SB_STATUS CSbieAPI::ReloadBoxes(bool bFullUpdate) { QMap OldSandBoxes = m_SandBoxes; @@ -927,6 +927,7 @@ SB_STATUS CSbieAPI::ReloadBoxes() QString BoxName = SbieIniGet(QString(), QString(), (i | CONF_GET_NO_EXPAND)); if (BoxName.isNull()) break; + bool bIsEnabled; if (!IsBox(BoxName, bIsEnabled)) continue; @@ -936,9 +937,11 @@ SB_STATUS CSbieAPI::ReloadBoxes() { pBox = CSandBoxPtr(NewSandBox(BoxName, this)); m_SandBoxes.insert(BoxName.toLower(), pBox); + UpdateBoxPaths(pBox); } - - UpdateBoxPaths(pBox); + else if(bFullUpdate) + UpdateBoxPaths(pBox); + pBox->m_IsEnabled = bIsEnabled; pBox->UpdateDetails(); @@ -1599,7 +1602,7 @@ SB_STATUS CSbieAPI::ReloadConfig(quint32 SessionId) //emit LogMessage("Sandboxie config has been reloaded.", false); emit LogSbieMessage(0, QStringList() << "Sandboxie config has been reloaded" << "" << "", 4); - ReloadBoxes(); + ReloadBoxes(true); return SB_OK; } diff --git a/SandboxiePlus/QSbieAPI/SbieAPI.h b/SandboxiePlus/QSbieAPI/SbieAPI.h index acbf70b9..faba557e 100644 --- a/SandboxiePlus/QSbieAPI/SbieAPI.h +++ b/SandboxiePlus/QSbieAPI/SbieAPI.h @@ -101,7 +101,7 @@ public: virtual void UpdateDriveLetters(); virtual QString Nt2DosPath(QString NtPath) const; - virtual SB_STATUS ReloadBoxes(); + virtual SB_STATUS ReloadBoxes(bool bFullUpdate = false); static SB_STATUS ValidateName(const QString& BoxName); virtual SB_STATUS CreateBox(const QString& BoxName); diff --git a/SandboxiePlus/QtSingleApp/qtsingleapp/qtsingleapp/qtsingleapp.qc.pro b/SandboxiePlus/QtSingleApp/qtsingleapp/qtsingleapp/qtsingleapp.qc.pro index 276c5ef9..9abdf1f9 100644 --- a/SandboxiePlus/QtSingleApp/qtsingleapp/qtsingleapp/qtsingleapp.qc.pro +++ b/SandboxiePlus/QtSingleApp/qtsingleapp/qtsingleapp/qtsingleapp.qc.pro @@ -17,8 +17,12 @@ CONFIG(release, debug|release):{ QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO QMAKE_LFLAGS_RELEASE = $$QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO } -CONFIG(debug, debug|release):DESTDIR = ../../../Debug -CONFIG(release, debug|release):DESTDIR = ../../../Release + +CONFIG(debug, debug|release):contains(QMAKE_HOST.arch, x86_64):DESTDIR = ../Bin/x64/Debug +CONFIG(release, debug|release):contains(QMAKE_HOST.arch, x86_64):DESTDIR = ../Bin/x64/Release +CONFIG(debug, debug|release):!contains(QMAKE_HOST.arch, x86_64):DESTDIR = ../Bin/Win32/Debug +CONFIG(release, debug|release):!contains(QMAKE_HOST.arch, x86_64):DESTDIR = ../Bin/Win32/Release + INCLUDEPATH += . DEPENDPATH += . #MOC_DIR += ./GeneratedFiles diff --git a/SandboxiePlus/SandMan/Forms/OptionsWindow.ui b/SandboxiePlus/SandMan/Forms/OptionsWindow.ui index 508e3572..a701c6de 100644 --- a/SandboxiePlus/SandMan/Forms/OptionsWindow.ui +++ b/SandboxiePlus/SandMan/Forms/OptionsWindow.ui @@ -45,7 +45,7 @@ QTabWidget::West - 0 + 8 @@ -1323,26 +1323,18 @@ For files access you can use 'Direct All' instead to make it apply to all progra - - - - Do not start sandboxed services using a system token (recommended) + + + + Qt::Vertical - - - - - - Allow access to Smart Cards + + + 20 + 40 + - - - - - - Protect sandboxed SYSTEM processes from unprivileged unsandboxed processes - - + @@ -1360,6 +1352,22 @@ For files access you can use 'Direct All' instead to make it apply to all progra + + + + + 75 + true + + + + Protect the sandbox integrity itself + + + Sandbox isolation + + + @@ -1367,10 +1375,10 @@ For files access you can use 'Direct All' instead to make it apply to all progra - - + + - Open Windows Credentials Store + Do not start sandboxed services using a system token (recommended) @@ -1381,7 +1389,7 @@ For files access you can use 'Direct All' instead to make it apply to all progra - + Qt::Horizontal @@ -1394,6 +1402,34 @@ For files access you can use 'Direct All' instead to make it apply to all progra + + + + Allow access to Smart Cards + + + + + + + Add sandboxed processes to job objects (recommended) + + + + + + + Force usage of custom dummy Manifest files (legacy behaviour) + + + + + + + Protect sandboxed SYSTEM processes from unprivileged unsandboxed processes + + + @@ -1407,46 +1443,17 @@ For files access you can use 'Direct All' instead to make it apply to all progra - - + + - Force usage of custom dummy Manifest files (legacy behaviour) + Open Windows Credentials Store - - - - Qt::Vertical - - - - 20 - 40 - - - - - - + + - Add sandboxed processes to job objects (recommended) - - - - - - - - 75 - true - - - - Protect the sandbox integrity itself - - - Sandbox isolation + Allow access to Bluetooth @@ -1770,8 +1777,8 @@ instead of "*". 0 0 - 530 - 312 + 98 + 28 diff --git a/SandboxiePlus/SandMan/Helpers/FindTool.cpp b/SandboxiePlus/SandMan/Helpers/FindTool.cpp new file mode 100644 index 00000000..57235ff0 --- /dev/null +++ b/SandboxiePlus/SandMan/Helpers/FindTool.cpp @@ -0,0 +1,401 @@ +#include "stdafx.h" +// +// WinSpy Finder Tool. +// +// Copyright (c) 2002 by J Brown +// Freeware +// +// This is a standalone file which implements +// a "Finder Tool" similar to that used in Spy++ +// +// There are two functions you must use: +// +// 1. BOOL MakeFinderTool(HWND hwnd, WNDFINDPROC wfp) +// +// hwnd - handle to a STATIC control to base the tool around. +// MakeFinderTool converts this control to the correct +// style, adds the bitmaps and mouse support etc. +// +// wfn - Event callback function. Must not be zero. +// +// Return values: +// TRUE for success, FALSE for failure +// +// +// 2. UINT CALLBACK WndFindProc(HWND hwndTool, UINT uCode, HWND hwnd) +// +// This is a callback function that you supply when using +// MakeFinderTool. This callback can be executed for a number +// different events - described by uCode. +// +// hwndTool - handle to the finder tool +// +// hwnd - handle to the window which has been found. +// +// uCode - describes the event. Can be one of the following values. +// +// WFN_BEGIN : tool is about to become active. +// WFN_SELCHANGING : sent when tool moves from window-window. +// WFN_SELCHANGED : sent when final window is selected. +// WFN_CANCELLED : Tool cancelled. hwnd is not valid (0) +// +// Return values: +// Return value is only checked for WFN_BEGIN. Return 0 (zero) +// to continue, -1 to prevent tool from being used. Otherwise, +// return 0 (zero) for all other messages +// + +#define STRICT +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif + +#include +#include "FindTool.h" + +#define INVERT_BORDER 3 + +HWND WindowFromPointEx(POINT pt, BOOL fShowHidden); + +static LONG lRefCount = 0; + +static HCURSOR hOldCursor; +static HHOOK draghook = 0; +static HWND draghookhwnd = 0; + +// +// Handle to the two dragger bitmaps +// +static HBITMAP hBitmapDrag1, hBitmapDrag2; +static HCURSOR hCursor; + +//is the finder-tool being dragged?? +static BOOL fDragging = FALSE; + +// Old window procedure...? +static WNDPROC oldstaticproc; + + +static HWND hwndCurrent; + + +// show hidden windows +static BOOL fShowHidden = FALSE; + +// +// Invert the specified window's border +// +void InvertWindow(HWND hwnd, BOOL fShowHidden) +{ + RECT rect; + RECT rect2; + RECT rectc; + HDC hdc; + int x1,y1; + + int border = INVERT_BORDER; + + if(hwnd == 0) + return; + + //window rectangle (screen coords) + GetWindowRect(hwnd, &rect); + + //client rectangle (screen coords) + GetClientRect(hwnd, &rectc); + ClientToScreen(hwnd, (POINT *)&rectc.left); + ClientToScreen(hwnd, (POINT *)&rectc.right); + //MapWindowPoints(hwnd, 0, (POINT *)&rectc, 2); + + x1 = rect.left; + y1 = rect.top; + OffsetRect(&rect, -x1, -y1); + OffsetRect(&rectc, -x1, -y1); + + if(rect.bottom - border * 2 < 0) + border = 1; + + if(rect.right - border * 2 < 0) + border = 1; + + if(fShowHidden == TRUE) + hwnd = 0; + + hdc = GetWindowDC(hwnd); + + if(hdc == 0) + return; + + //top edge + //border = rectc.top-rect.top; + SetRect(&rect2, 0,0,rect.right, border); + if(fShowHidden == TRUE) OffsetRect(&rect2, x1, y1); + InvertRect(hdc, &rect2); + + //left edge + //border = rectc.left-rect.left; + SetRect(&rect2, 0,border,border, rect.bottom); + if(fShowHidden == TRUE) OffsetRect(&rect2, x1, y1); + InvertRect(hdc, &rect2); + + //right edge + //border = rect.right-rectc.right; + SetRect(&rect2, border,rect.bottom-border,rect.right, rect.bottom); + if(fShowHidden == TRUE) OffsetRect(&rect2, x1, y1); + InvertRect(hdc, &rect2); + + //bottom edge + //border = rect.bottom-rectc.bottom; + SetRect(&rect2, rect.right-border, border,rect.right, rect.bottom-border); + if(fShowHidden == TRUE) OffsetRect(&rect2, x1, y1); + InvertRect(hdc, &rect2); + + + ReleaseDC(hwnd, hdc); +} + +void FlashWindowBorder(HWND hwnd, BOOL fShowHidden) +{ + int i; + + for(i = 0; i < 3 * 2; i++) + { + InvertWindow(hwnd, fShowHidden); + Sleep(100); + } +} + +void LoadFinderResources() +{ + hBitmapDrag1 = LoadBitmap(GetModuleHandle(0), L"FINDER_FULL"); + hBitmapDrag2 = LoadBitmap(GetModuleHandle(0), L"FINDER_EMPTY"); + + hCursor = LoadCursor(GetModuleHandle(0), L"FINDER_CURSOR"); +} + +void FreeFinderResources() +{ + DeleteObject(hBitmapDrag1); + DeleteObject(hBitmapDrag2); + + DestroyCursor(hCursor); +} + +WNDFINDPROC GetWndFindProc(HWND hwnd) +{ + return (WNDFINDPROC)GetWindowLongPtr(hwnd, GWLP_USERDATA); +} + +UINT FireWndFindNotify(HWND hwndTool, UINT uCode, HWND hwnd) +{ + WNDFINDPROC wfp = GetWndFindProc(hwndTool); + + if(wfp != 0) + return wfp(hwndTool, uCode, hwnd); + else + return 0; +} + +LRESULT EndFindToolDrag(HWND hwnd, WPARAM wParam, LPARAM lParam) +{ + HWND hwndParent; + + hwndParent = GetParent(hwnd); + + InvertWindow(hwndCurrent, fShowHidden); + ReleaseCapture(); + SetCursor(hOldCursor); + + // Remove keyboard hook. This is done even if the user presses ESC + UnhookWindowsHookEx(draghook); + + + fDragging = FALSE; + SendMessage(hwnd, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hBitmapDrag1); + + return 0; +} + +// Keyboard hook for the Finder Tool. +// This hook just monitors the ESCAPE key +static LRESULT CALLBACK draghookproc(int code, WPARAM wParam, LPARAM lParam) +{ + ULONG state = (ULONG)lParam; + static int count; + + if(code < 0) + return CallNextHookEx(draghook, code, wParam, lParam); + + switch(wParam) + { + case VK_ESCAPE: + + if(!(state & 0x80000000)) + { + //don't let the current window procedure process a VK_ESCAPE, + //because we want it to cancel the mouse capture + PostMessage(draghookhwnd, WM_CANCELMODE, 0, 0); + return -1; + } + + break; + } + + return CallNextHookEx(draghook, code, wParam, lParam); +} + + +LRESULT CALLBACK StaticProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) +{ + HWND hwndParent; + + switch(msg) + { + case WM_LBUTTONDBLCLK: + case WM_LBUTTONDOWN: + + // Ask the callback function if we want to proceed + if(FireWndFindNotify(hwnd, WFN_BEGIN, 0) == -1) + { + return 0; + } + + fDragging = TRUE; + + SendMessage(hwnd, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hBitmapDrag2); + + hwndParent = GetParent(hwnd); + + //else + { + hwndCurrent = hwnd; + InvertWindow(hwndCurrent, fShowHidden); + } + + + SetCapture(hwnd); + hOldCursor = SetCursor(hCursor); + + // Install keyboard hook to trap ESCAPE key + // We could just set the focus to this window to receive + // normal keyboard messages - however, we don't want to + // steal focus from current window when we use the drag tool, + // so a hook is a stealthier way to monitor key presses + draghookhwnd = hwnd; + draghook = SetWindowsHookEx(WH_KEYBOARD, draghookproc, GetModuleHandle(0), 0); + + // Current window has changed + FireWndFindNotify(hwnd, WFN_SELCHANGED, hwndCurrent); + + return 0; + + case WM_MOUSEMOVE: + if(fDragging == TRUE) + { + //MoveFindTool(hwnd, wParam, lParam); + + POINT pt; + HWND hWndPoint; + + pt.x = (short)LOWORD(lParam); + pt.y = (short)HIWORD(lParam); + + ClientToScreen(hwnd, (POINT *)&pt); + + hWndPoint = WindowFromPointEx(pt, fShowHidden); + + if(hWndPoint == 0) + return 0; + + if(hWndPoint != hwndCurrent) + { + InvertWindow(hwndCurrent, fShowHidden); + + FireWndFindNotify(hwnd, WFN_SELCHANGED, hWndPoint); + InvertWindow(hWndPoint, fShowHidden); + + hwndCurrent = hWndPoint; + } + } + return 0; + + case WM_LBUTTONUP: + + // Mouse has been release, so end the find-tool + if(fDragging == TRUE) + { + fDragging = FALSE; + + EndFindToolDrag(hwnd, wParam, lParam); + FireWndFindNotify(hwnd, WFN_END, hwndCurrent); + } + + return 0; + + // Sent from the keyboard hook + case WM_CANCELMODE: + + // User has pressed ESCAPE, so cancel the find-tool + if(fDragging == TRUE) + { + fDragging = FALSE; + + EndFindToolDrag(hwnd, wParam, lParam); + FireWndFindNotify(hwnd, WFN_CANCELLED, 0); + } + + return 0; + + case WM_NCDESTROY: + + // When the last finder tool has been destroyed, free + // up all the resources + if(InterlockedDecrement(&lRefCount) == 0) + { + FreeFinderResources(); + } + + break; + } + + return CallWindowProc(oldstaticproc, hwnd, msg, wParam, lParam); +} + + +BOOL MakeFinderTool(HWND hwnd, WNDFINDPROC wfp) +{ + DWORD dwStyle; + + // If this is the first finder tool, then load + // the bitmap and mouse-cursor resources + if(InterlockedIncrement(&lRefCount) == 1) + { + LoadFinderResources(); + } + + // Apply styles to make this a picture control + dwStyle = GetWindowLong(hwnd, GWL_STYLE); + + // Turn OFF styles we don't want + dwStyle &= ~(SS_RIGHT | SS_CENTER | SS_CENTERIMAGE); + dwStyle &= ~(SS_ICON | SS_SIMPLE | SS_LEFTNOWORDWRAP); + + // Turn ON styles we must have + dwStyle |= SS_NOTIFY; + dwStyle |= SS_BITMAP; + + // Now apply them.. + SetWindowLong(hwnd, GWL_STYLE, dwStyle); + + // Set the default bitmap + SendMessage(hwnd, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hBitmapDrag1); + + // Set the callback for this control + SetWindowLongPtr(hwnd, GWLP_USERDATA, (LONG_PTR)wfp); + + // Subclass the static control + oldstaticproc = (WNDPROC)SetWindowLongPtr(hwnd, GWLP_WNDPROC, (LONG_PTR)StaticProc); + + return TRUE; +} + diff --git a/SandboxiePlus/SandMan/Helpers/FindTool.h b/SandboxiePlus/SandMan/Helpers/FindTool.h new file mode 100644 index 00000000..051daaeb --- /dev/null +++ b/SandboxiePlus/SandMan/Helpers/FindTool.h @@ -0,0 +1,33 @@ +#ifndef FINDTOOL_INCLUDED +#define FINDTOOL_INCLUDED + +#ifdef __cplusplus +extern "C" { +#endif + +typedef UINT (CALLBACK * WNDFINDPROC) (HWND hwndTool, UINT uCode, HWND hwnd); + +// +// uCode can be one of these values: +// +#define WFN_BEGIN 0 // tool is about to become active. hwnd(0) +#define WFN_SELCHANGED 1 // sent when tool moves from window-window. +#define WFN_END 2 // sent when final window has been selected. +#define WFN_CANCELLED 3 // Tool canceled. hwnd is not valid (0) + +#define WFN_CTRL_DOWN 4 // key was pressed +#define WFN_CTRL_UP 5 // key was released +#define WFN_SHIFT_DOWN 6 // key was pressed +#define WFN_SHIFT_UP 7 // key was released + +#define WFN_CAPTURE 8 // Capture key pressed + +BOOL MakeFinderTool (HWND hwnd, WNDFINDPROC wfp); +void InvertWindow (HWND hwnd, BOOL fShowHidden); +void FlashWindowBorder (HWND hwnd, BOOL fShowHidden); + +#ifdef __cplusplus +} +#endif + +#endif \ No newline at end of file diff --git a/SandboxiePlus/SandMan/Helpers/WindowFromPointEx.cpp b/SandboxiePlus/SandMan/Helpers/WindowFromPointEx.cpp new file mode 100644 index 00000000..0345e394 --- /dev/null +++ b/SandboxiePlus/SandMan/Helpers/WindowFromPointEx.cpp @@ -0,0 +1,157 @@ +#include "stdafx.h" +// +// WindowFromPointEx.c +// +// Copyright (c) 2002 by J Brown +// Freeware +// +// HWND WindowFromPointEx(POINT pt) +// +// Provides a better implementation of WindowFromPoint. +// This function can return any window under the mouse, +// including controls nested inside group-boxes, nested +// dialogs etc. +// + +#define STRICT +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif + +#include +#include + +static HWND hwndGlobal; +static HWND hwndButton; +static BOOL g_fShowHidden; +static DWORD dwArea; + +// +// Callback function used with FindBestChild +// +static BOOL CALLBACK FindBestChildProc(HWND hwnd, LPARAM lParam) +{ + RECT rect; + DWORD a; + POINT pt; + + pt.x = (short)LOWORD(lParam); + pt.y = (short)HIWORD(lParam); + + GetWindowRect(hwnd, &rect); + + // Is the mouse inside this child window? + if (PtInRect(&rect, pt)) + { + // work out area of child window + a = (rect.right - rect.left) * (rect.bottom - rect.top); + + // if this child window is smaller than the + // current "best", then choose this one + if (a < dwArea && (IsWindowVisible(hwnd) || g_fShowHidden == TRUE)) + { + dwArea = a; + hwndGlobal = hwnd; + } + } + + return TRUE; +} + +// +// The problem: +// +// WindowFromPoint API is not very good. It cannot cope +// with odd window arrangements, i.e. a group-box in a dialog +// may contain a few check-boxes. These check-boxes are not +// children of the groupbox, but are at the same "level" in the +// window-hierachy. WindowFromPoint will just return the +// first available window it finds which encompasses the mouse +// (i.e. the group-box), but will NOT be able to detect the contents. +// +// Solution: +// +// We use WindowFromPoint to start us off, and then step back one +// level (i.e. from the parent of what WindowFromPoint returned). +// +// Once we have this window, we enumerate ALL children of this window +// ourselves, and find the one that best fits under the mouse - +// the smallest window that fits, in fact. +// +// I've tested this on alot of different apps, and it seems +// to work flawlessly - in fact, I havn't found a situation yet +// that this method doesn't work on.....we'll see! +// +// Inputs: +// +// hwndFound - window found with WindowFromPoint +// pt - coordinates of mouse, in screen coords +// (i.e. same coords used with WindowFromPoint) +// +static HWND FindBestChild(HWND hwndFound, POINT pt) +{ + HWND hwnd; + DWORD dwStyle; + + dwArea = -1; // Start off again + + hwndGlobal = 0; + + hwnd = GetParent(hwndFound); + + dwStyle = GetWindowLong(hwndFound, GWL_STYLE); + + // The original window might already be a top-level window, + // so we don't want to start at *it's* parent + if (hwnd == 0 || (dwStyle & WS_POPUP)) + hwnd = hwndFound; + + // Enumerate EVERY child window. + // + // Note to reader: + // + // You can get some real interesting effects if you set + // hwnd = GetDesktopWindow() + // fShowHidden = TRUE + // ...experiment!! + // + EnumChildWindows(hwnd, FindBestChildProc, MAKELPARAM(pt.x, pt.y)); + + if (hwndGlobal == 0) + hwndGlobal = hwnd; + + return hwndGlobal; +} + +// +// Find window under specified point (screen coordinates) +// +HWND WindowFromPointEx(POINT pt, BOOL fShowHidden) +{ + HWND hWndPoint; + + g_fShowHidden = fShowHidden; + + // + // First of all find the parent window under the mouse + // We are working in SCREEN coordinates + // + hWndPoint = WindowFromPoint(pt); + + if (hWndPoint == 0) + return 0; + + // WindowFromPoint is not too accurate. There is quite likely + // another window under the mouse. + hWndPoint = FindBestChild(hWndPoint, pt); + + //if we don't allow hidden windows, then return the parent + if (!g_fShowHidden) + { + while (hWndPoint && !IsWindowVisible(hWndPoint)) + hWndPoint = GetParent(hWndPoint); + } + + return hWndPoint; +} + diff --git a/SandboxiePlus/SandMan/Models/SbieModel.cpp b/SandboxiePlus/SandMan/Models/SbieModel.cpp index 32f1a70d..53b7d2a5 100644 --- a/SandboxiePlus/SandMan/Models/SbieModel.cpp +++ b/SandboxiePlus/SandMan/Models/SbieModel.cpp @@ -137,6 +137,9 @@ QList CSbieModel::Sync(const QMap& BoxList, cons foreach (const CSandBoxPtr& pBox, BoxList) { + if (!ShowHidden && !pBox->IsEnabled()) + continue; + QVariant ID = pBox->GetName(); QModelIndex Index; @@ -161,9 +164,6 @@ QList CSbieModel::Sync(const QMap& BoxList, cons CSandBoxPlus* pBoxEx = qobject_cast(pBox.data()); - if (!ShowHidden && !pBoxEx->IsEnabled()) - continue; - int Col = 0; bool State = false; int Changed = 0; diff --git a/SandboxiePlus/SandMan/Resources/Actions/finder.png b/SandboxiePlus/SandMan/Resources/Actions/finder.png new file mode 100644 index 00000000..3f270879 Binary files /dev/null and b/SandboxiePlus/SandMan/Resources/Actions/finder.png differ diff --git a/SandboxiePlus/SandMan/Resources/SandMan.ico b/SandboxiePlus/SandMan/Resources/SandMan.ico index c05a26c5..36bddfa0 100644 Binary files a/SandboxiePlus/SandMan/Resources/SandMan.ico and b/SandboxiePlus/SandMan/Resources/SandMan.ico differ diff --git a/SandboxiePlus/SandMan/Resources/finder-empty.bmp b/SandboxiePlus/SandMan/Resources/finder-empty.bmp new file mode 100644 index 00000000..d288e2d7 Binary files /dev/null and b/SandboxiePlus/SandMan/Resources/finder-empty.bmp differ diff --git a/SandboxiePlus/SandMan/Resources/finder-full.bmp b/SandboxiePlus/SandMan/Resources/finder-full.bmp new file mode 100644 index 00000000..e3e1b706 Binary files /dev/null and b/SandboxiePlus/SandMan/Resources/finder-full.bmp differ diff --git a/SandboxiePlus/SandMan/Resources/finder.cur b/SandboxiePlus/SandMan/Resources/finder.cur new file mode 100644 index 00000000..ae6c1cdb Binary files /dev/null and b/SandboxiePlus/SandMan/Resources/finder.cur differ diff --git a/SandboxiePlus/SandMan/SandMan.cpp b/SandboxiePlus/SandMan/SandMan.cpp index b8510139..a6784df9 100644 --- a/SandboxiePlus/SandMan/SandMan.cpp +++ b/SandboxiePlus/SandMan/SandMan.cpp @@ -280,6 +280,7 @@ CSandMan::CSandMan(QWidget *parent) m_uTimerID = startTimer(250); + OnStatusChanged(); if (CSbieUtils::IsRunning(CSbieUtils::eAll) || theConf->GetBool("Options/StartIfStopped", true)) { SB_STATUS Status = ConnectSbie(); @@ -452,7 +453,7 @@ void CSandMan::CreateToolBar() m_pCleanUpButton->setPopupMode(QToolButton::MenuButtonPopup); m_pCleanUpButton->setMenu(m_pCleanUpMenu); //QObject::connect(m_pCleanUpButton, SIGNAL(triggered(QAction*)), , SLOT()); - QObject::connect(m_pCleanUpButton, SIGNAL(pressed()), this, SLOT(OnCleanUp())); + QObject::connect(m_pCleanUpButton, SIGNAL(clicked(bool)), this, SLOT(OnCleanUp())); m_pToolBar->addWidget(m_pCleanUpButton); @@ -616,8 +617,8 @@ void CSandMan::timerEvent(QTimerEvent* pEvent) { SB_STATUS Status = theAPI->ReloadBoxes(); - if (!Status.IsError() && theAPI->GetAllBoxes().count() == 0) { - OnLogMessage(tr("No sandboxes found; creating: %1").arg("DefaultBox")); + if (!Status.IsError() && !theAPI->GetAllBoxes().contains("defaultbox")) { + OnLogMessage(tr("Default sandbox not found; creating: %1").arg("DefaultBox")); theAPI->CreateBox("DefaultBox"); } @@ -1075,11 +1076,11 @@ void CSandMan::OnNewBox() void CSandMan::OnEmptyAll() { - if (theConf->GetInt("Options/TerminateAll", -1) == -1) + if (theConf->GetInt("Options/TerminateAll", -1) == -1) { bool State = false; if(CCheckableMessageBox::question(this, "Sandboxie-Plus", tr("Do you want to terminate all processes in all sandboxes?") - , tr("Terminate all without asking"), &State, QDialogButtonBox::Yes | QDialogButtonBox::No, QDialogButtonBox::Yes, QMessageBox::Information) != QDialogButtonBox::Yes); + , tr("Terminate all without asking"), &State, QDialogButtonBox::Yes | QDialogButtonBox::No, QDialogButtonBox::Yes, QMessageBox::Information) != QDialogButtonBox::Yes) return; if (State) @@ -1095,8 +1096,10 @@ void CSandMan::OnDisableForce() int Seconds = 0; if (Status) { + int LastValue = theAPI->GetGlobalSettings()->GetNum("ForceDisableSeconds", 60); + bool bOK = false; - Seconds = QInputDialog::getInt(this, "Sandboxie-Plus", tr("Please enter the duration for disabling forced programs."), 10, 0, INT_MAX, 1, &bOK); + Seconds = QInputDialog::getInt(this, "Sandboxie-Plus", tr("Please enter the duration for disabling forced programs."), LastValue, 0, INT_MAX, 1, &bOK); if (!bOK) return; } @@ -1679,8 +1682,8 @@ void CSandMan::CheckForUpdates(bool bManual) //QString Branche = theConf->GetString("Options/ReleaseBranche"); //if (!Branche.isEmpty()) // Query.addQueryItem("branche", Branche); - Query.addQueryItem("version", GetVersion()); - //Query.addQueryItem("version", QString::number(VERSION_MJR) + "." + QString::number(VERSION_MIN) + "." + QString::number(VERSION_REV) + "." + QString::number(VERSION_UPD)); + //Query.addQueryItem("version", GetVersion()); + Query.addQueryItem("version", QString::number(VERSION_MJR) + "." + QString::number(VERSION_MIN) + "." + QString::number(VERSION_REV) + "." + QString::number(VERSION_UPD)); Query.addQueryItem("system", "windows-" + QSysInfo::kernelVersion() + "-" + QSysInfo::currentCpuArchitecture()); Query.addQueryItem("language", QString::number(m_LanguageId)); QString UpdateKey = theAPI->GetGlobalSettings()->GetText("UpdateKey"); // theConf->GetString("Options/UpdateKey"); @@ -1732,26 +1735,53 @@ void CSandMan::OnUpdateCheck() QString MsgHash = QCryptographicHash::hash(Data["userMsg"].toByteArray(), QCryptographicHash::Md5).toHex().left(8); if (!IgnoredUpdates.contains(MsgHash)) { + QString FullMessage = UserMsg; + QString InfoUrl = Data["infoUrl"].toString(); + if (!InfoUrl.isEmpty()) + FullMessage += tr("

Do you want to go to the info page?

").arg(InfoUrl); + CCheckableMessageBox mb(this); mb.setWindowTitle("Sandboxie-Plus"); QIcon ico(QLatin1String(":/SandMan.png")); mb.setIconPixmap(ico.pixmap(64, 64)); + //mb.setTextFormat(Qt::RichText); mb.setText(UserMsg); mb.setCheckBoxText(tr("Don't show this announcement in the future.")); - mb.setStandardButtons(QDialogButtonBox::Close); + + if (!InfoUrl.isEmpty()) { + mb.setStandardButtons(QDialogButtonBox::Yes | QDialogButtonBox::No); + mb.setDefaultButton(QDialogButtonBox::Yes); + } + else + mb.setStandardButtons(QDialogButtonBox::Ok); + mb.exec(); if (mb.isChecked()) theConf->SetValue("Options/IgnoredUpdates", IgnoredUpdates << MsgHash); + if (mb.clickedStandardButton() == QDialogButtonBox::Yes) + { + QDesktopServices::openUrl(InfoUrl); + } + bNothing = false; } } - QString Version = Data["version"].toString(); - if (!Version.isEmpty() && Version != GetVersion()) + QString VersionStr = Data["version"].toString(); + if (!VersionStr.isEmpty()) //&& VersionStr != GetVersion()) { - if (bManual || !IgnoredUpdates.contains(Version)) // when checked manually always show result + UCHAR myVersion[4] = { VERSION_UPD, VERSION_REV, VERSION_MIN, VERSION_MJR }; // ntohl + ULONG MyVersion = *(ULONG*)&myVersion; + + ULONG Version = 0; + QStringList Nums = VersionStr.split("."); + for (int i = 0, Bits = 24; i < Nums.count() && Bits >= 0; i++, Bits -= 8) + Version |= (Nums[i].toInt() & 0xFF) << Bits; + + if (Version > MyVersion) + if (bManual || !IgnoredUpdates.contains(VersionStr)) // when checked manually always show result { bNothing = false; //QDateTime Updated = QDateTime::fromTime_t(Data["updated"].toULongLong()); @@ -1775,7 +1805,7 @@ void CSandMan::OnUpdateCheck() mb.setIconPixmap(ico.pixmap(64, 64)); //mb.setTextFormat(Qt::RichText); mb.setText(FullMessage); - mb.setCheckBoxText(tr("Ignore this update, notify me about the next one.")); + mb.setCheckBoxText(tr("Don't show this message anymore.")); mb.setCheckBoxVisible(!bManual); if (!UpdateUrl.isEmpty() || !DownloadUrl.isEmpty()) { @@ -1788,7 +1818,7 @@ void CSandMan::OnUpdateCheck() mb.exec(); if (mb.isChecked()) - theConf->SetValue("Options/IgnoredUpdates", IgnoredUpdates << Version); + theConf->SetValue("Options/IgnoredUpdates", IgnoredUpdates << VersionStr); if (mb.clickedStandardButton() == QDialogButtonBox::Yes) { diff --git a/SandboxiePlus/SandMan/SandMan.h b/SandboxiePlus/SandMan/SandMan.h index c8a3b1ba..77a266d2 100644 --- a/SandboxiePlus/SandMan/SandMan.h +++ b/SandboxiePlus/SandMan/SandMan.h @@ -14,7 +14,7 @@ #define VERSION_MJR 0 #define VERSION_MIN 6 -#define VERSION_REV 0 +#define VERSION_REV 5 #define VERSION_UPD 0 diff --git a/SandboxiePlus/SandMan/SandMan.pri b/SandboxiePlus/SandMan/SandMan.pri new file mode 100644 index 00000000..99bac872 --- /dev/null +++ b/SandboxiePlus/SandMan/SandMan.pri @@ -0,0 +1,58 @@ +# ---------------------------------------------------- +# This file is generated by the Qt Visual Studio Tools. +# ------------------------------------------------------ + + +HEADERS += ./stdafx.h \ + ./SandMan.h \ + ./ApiLog.h \ + ./SbiePlusAPI.h \ + ./Models/SbieModel.h \ + ./Models/ResMonModel.h \ + ./Models/ApiMonModel.h \ + ./Views/SbieView.h \ + ./Dialogs/MultiErrorDialog.h \ + ./Helpers/FindTool.h \ + ./Helpers/WinAdmin.h \ + ./Windows/NewBoxWindow.h \ + ./Windows/RecoveryWindow.h \ + ./Windows/PopUpWindow.h \ + ./Windows/SnapshotsWindow.h \ + ./Windows/SettingsWindow.h \ + ./Windows/OptionsWindow.h + +SOURCES += ./main.cpp \ + ./stdafx.cpp \ + ./ApiLog.cpp \ + ./SandMan.cpp \ + ./SbiePlusAPI.cpp \ + ./Models/ApiMonModel.cpp \ + ./Models/ResMonModel.cpp \ + ./Models/SbieModel.cpp \ + ./Views/SbieView.cpp \ + ./Dialogs/MultiErrorDialog.cpp \ + ./Helpers/FindTool.cpp \ + ./Helpers/WinAdmin.cpp \ + ./Helpers/WindowFromPointEx.cpp \ + ./Windows/NewBoxWindow.cpp \ + ./Windows/OptionsWindow.cpp \ + ./Windows/PopUpWindow.cpp \ + ./Windows/RecoveryWindow.cpp \ + ./Windows/SettingsWindow.cpp \ + ./Windows/SnapshotsWindow.cpp + +FORMS += ./Forms/NewBoxWindow.ui \ + ./Forms/OptionsWindow.ui \ + ./Forms/PopUpWindow.ui \ + ./Forms/RecoveryWindow.ui \ + ./Forms/SettingsWindow.ui \ + ./Forms/SnapshotsWindow.ui + +TRANSLATIONS += ./sandman_de.ts \ + ./sandman_pt.ts \ + ./sandman_ru.ts \ + ./sandman_tr.ts \ + ./sandman_zh.ts \ + ./sandman_zh-TW.ts + +RESOURCES += Resources/SandMan.qrc diff --git a/SandboxiePlus/SandMan/SandMan.qc.pro b/SandboxiePlus/SandMan/SandMan.qc.pro new file mode 100644 index 00000000..f75c5307 --- /dev/null +++ b/SandboxiePlus/SandMan/SandMan.qc.pro @@ -0,0 +1,44 @@ + +TEMPLATE = app +TARGET = SandMan +PRECOMPILED_HEADER = stdafx.h + +QT += core gui network widgets winextras concurrent + +CONFIG += lrelease + +CONFIG(debug, debug|release):contains(QMAKE_HOST.arch, x86_64):LIBS += -L../Bin/x64/Debug +CONFIG(release, debug|release):contains(QMAKE_HOST.arch, x86_64):LIBS += -L../Bin/x64/Release +CONFIG(debug, debug|release):!contains(QMAKE_HOST.arch, x86_64):LIBS += -L../Bin/Win32/Debug +CONFIG(release, debug|release):!contains(QMAKE_HOST.arch, x86_64):LIBS += -L../Bin/Win32/Release + +LIBS += -lNtdll -lAdvapi32 -lOle32 -lUser32 -lShell32 -lGdi32 -lQSbieAPI -lMiscHelpers -lqtsingleapp + +CONFIG(release, debug|release):{ +QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO +QMAKE_LFLAGS_RELEASE = $$QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO +} + +CONFIG(debug, debug|release):contains(QMAKE_HOST.arch, x86_64):DESTDIR = ../Bin/x64/Debug +CONFIG(release, debug|release):contains(QMAKE_HOST.arch, x86_64):DESTDIR = ../Bin/x64/Release +CONFIG(debug, debug|release):!contains(QMAKE_HOST.arch, x86_64):DESTDIR = ../Bin/Win32/Debug +CONFIG(release, debug|release):!contains(QMAKE_HOST.arch, x86_64):DESTDIR = ../Bin/Win32/Release + +INCLUDEPATH += . +DEPENDPATH += . +MOC_DIR += . +OBJECTS_DIR += debug +UI_DIR += . +RCC_DIR += . + + + +include(SandMan.pri) +win32:RC_FILE = SandMan.rc + +TRANSLATIONS += sandman_de.ts \ + sandman_pt.ts \ + sandman_ru.ts \ + sandman_tr.ts \ + sandman_zh.ts \ + sandman_zh-TW.ts diff --git a/SandboxiePlus/SandMan/Resources/SandMan.rc b/SandboxiePlus/SandMan/SandMan.rc similarity index 94% rename from SandboxiePlus/SandMan/Resources/SandMan.rc rename to SandboxiePlus/SandMan/SandMan.rc index e7569a5a..65562253 100644 --- a/SandboxiePlus/SandMan/Resources/SandMan.rc +++ b/SandboxiePlus/SandMan/SandMan.rc @@ -1,6 +1,6 @@ // Microsoft Visual C++ generated resource script. // -#include "resource.h" +#include "./resources/resource.h" ///////////////////////////////////////////////////////////////////////////// // German (Austria) resources diff --git a/SandboxiePlus/SandMan/SandMan.vcxproj b/SandboxiePlus/SandMan/SandMan.vcxproj index 9efb4f03..8961d3b7 100644 --- a/SandboxiePlus/SandMan/SandMan.vcxproj +++ b/SandboxiePlus/SandMan/SandMan.vcxproj @@ -243,9 +243,6 @@ - - - @@ -265,8 +262,12 @@ + + + + diff --git a/SandboxiePlus/SandMan/SandMan.vcxproj.filters b/SandboxiePlus/SandMan/SandMan.vcxproj.filters index ca9b34aa..1a68646c 100644 --- a/SandboxiePlus/SandMan/SandMan.vcxproj.filters +++ b/SandboxiePlus/SandMan/SandMan.vcxproj.filters @@ -169,11 +169,6 @@ Resource Files
- - - Resource Files - - Resource Files @@ -224,5 +219,13 @@ Translation Files + + Translation Files + + + + + Resource Files + \ No newline at end of file diff --git a/SandboxiePlus/SandMan/SandMan.vcxproj.user b/SandboxiePlus/SandMan/SandMan.vcxproj.user deleted file mode 100644 index 6e2aec7a..00000000 --- a/SandboxiePlus/SandMan/SandMan.vcxproj.user +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/SandboxiePlus/SandMan/Views/SbieView.cpp b/SandboxiePlus/SandMan/Views/SbieView.cpp index 42092961..41cf2757 100644 --- a/SandboxiePlus/SandMan/Views/SbieView.cpp +++ b/SandboxiePlus/SandMan/Views/SbieView.cpp @@ -209,6 +209,7 @@ void CSbieView::OnMenu(const QPoint& Point) foreach(const QModelIndex& Index, Rows) { QModelIndex ModelIndex = m_pSortProxy->mapToSource(Index); + pProcess = m_pSbieModel->GetProcess(ModelIndex); if (pProcess) { @@ -219,10 +220,13 @@ void CSbieView::OnMenu(const QPoint& Point) else { pBox = m_pSbieModel->GetSandBox(ModelIndex); - if (!pBox->IsEnabled()) - iSandBoxeCount = -1; - if (pBox && iSandBoxeCount != -1) - iSandBoxeCount++; + if (pBox) + { + if (!pBox->IsEnabled()) + iSandBoxeCount = -1; + else if (iSandBoxeCount != -1) + iSandBoxeCount++; + } } } @@ -501,6 +505,11 @@ void CSbieView::OnSandBoxAction() } else if (Action == m_pMenuExplore) { + if (SandBoxes.first()->IsEmpty()) { + QMessageBox("Sandboxie-Plus", tr("This Sandbox is empty."), QMessageBox::Information, QMessageBox::Ok, QMessageBox::NoButton, QMessageBox::NoButton, this).exec(); + return; + } + if (theConf->GetBool("Options/AdvancedView", true) == false && theConf->GetBool("Options/ExplorerInfo", true)) { bool State = false; diff --git a/SandboxiePlus/SandMan/Windows/OptionsWindow.cpp b/SandboxiePlus/SandMan/Windows/OptionsWindow.cpp index 38c64606..83088851 100644 --- a/SandboxiePlus/SandMan/Windows/OptionsWindow.cpp +++ b/SandboxiePlus/SandMan/Windows/OptionsWindow.cpp @@ -150,7 +150,7 @@ COptionsWindow::COptionsWindow(const QSharedPointer& pBox, const QStri connect(ui.cmbBoxIndicator, SIGNAL(currentIndexChanged(int)), this, SLOT(OnGeneralChanged())); connect(ui.cmbBoxBorder, SIGNAL(currentIndexChanged(int)), this, SLOT(OnGeneralChanged())); - connect(ui.btnBorderColor, SIGNAL(pressed()), this, SLOT(OnPickColor())); + connect(ui.btnBorderColor, SIGNAL(clicked(bool)), this, SLOT(OnPickColor())); connect(ui.spinBorderWidth, SIGNAL(valueChanged(int)), this, SLOT(OnGeneralChanged())); connect(ui.chkBlockNetShare, SIGNAL(clicked(bool)), this, SLOT(OnGeneralChanged())); @@ -185,22 +185,22 @@ COptionsWindow::COptionsWindow(const QSharedPointer& pBox, const QStri // // Groupes - connect(ui.btnAddGroup, SIGNAL(pressed()), this, SLOT(OnAddGroup())); - connect(ui.btnAddProg, SIGNAL(pressed()), this, SLOT(OnAddProg())); - connect(ui.btnDelProg, SIGNAL(pressed()), this, SLOT(OnDelProg())); + connect(ui.btnAddGroup, SIGNAL(clicked(bool)), this, SLOT(OnAddGroup())); + connect(ui.btnAddProg, SIGNAL(clicked(bool)), this, SLOT(OnAddProg())); + connect(ui.btnDelProg, SIGNAL(clicked(bool)), this, SLOT(OnDelProg())); // // Force - connect(ui.btnForceProg, SIGNAL(pressed()), this, SLOT(OnForceProg())); - connect(ui.btnForceDir, SIGNAL(pressed()), this, SLOT(OnForceDir())); - connect(ui.btnDelForce, SIGNAL(pressed()), this, SLOT(OnDelForce())); + connect(ui.btnForceProg, SIGNAL(clicked(bool)), this, SLOT(OnForceProg())); + connect(ui.btnForceDir, SIGNAL(clicked(bool)), this, SLOT(OnForceDir())); + connect(ui.btnDelForce, SIGNAL(clicked(bool)), this, SLOT(OnDelForce())); connect(ui.chkShowForceTmpl, SIGNAL(clicked(bool)), this, SLOT(OnShowForceTmpl())); // // Stop - connect(ui.btnAddLingering, SIGNAL(pressed()), this, SLOT(OnAddLingering())); - connect(ui.btnAddLeader, SIGNAL(pressed()), this, SLOT(OnAddLeader())); - connect(ui.btnDelStopProg, SIGNAL(pressed()), this, SLOT(OnDelStopProg())); + connect(ui.btnAddLingering, SIGNAL(clicked(bool)), this, SLOT(OnAddLingering())); + connect(ui.btnAddLeader, SIGNAL(clicked(bool)), this, SLOT(OnAddLeader())); + connect(ui.btnDelStopProg, SIGNAL(clicked(bool)), this, SLOT(OnDelStopProg())); connect(ui.chkShowStopTmpl, SIGNAL(clicked(bool)), this, SLOT(OnShowStopTmpl())); // @@ -208,35 +208,35 @@ COptionsWindow::COptionsWindow(const QSharedPointer& pBox, const QStri connect(ui.radStartAll, SIGNAL(clicked(bool)), this, SLOT(OnRestrictStart())); connect(ui.radStartExcept, SIGNAL(clicked(bool)), this, SLOT(OnRestrictStart())); connect(ui.radStartSelected, SIGNAL(clicked(bool)), this, SLOT(OnRestrictStart())); - connect(ui.btnAddStartProg, SIGNAL(pressed()), this, SLOT(OnAddStartProg())); - connect(ui.btnDelStartProg, SIGNAL(pressed()), this, SLOT(OnDelStartProg())); + connect(ui.btnAddStartProg, SIGNAL(clicked(bool)), this, SLOT(OnAddStartProg())); + connect(ui.btnDelStartProg, SIGNAL(clicked(bool)), this, SLOT(OnDelStartProg())); connect(ui.chkStartBlockMsg, SIGNAL(clicked(bool)), this, SLOT(OnStartChanged())); // // INet connect(ui.chkBlockINet, SIGNAL(clicked(bool)), this, SLOT(OnBlockINet())); - connect(ui.btnAddINetProg, SIGNAL(pressed()), this, SLOT(OnAddINetProg())); - connect(ui.btnDelINetProg, SIGNAL(pressed()), this, SLOT(OnDelINetProg())); + connect(ui.btnAddINetProg, SIGNAL(clicked(bool)), this, SLOT(OnAddINetProg())); + connect(ui.btnDelINetProg, SIGNAL(clicked(bool)), this, SLOT(OnDelINetProg())); connect(ui.chkINetBlockPrompt, SIGNAL(clicked(bool)), this, SLOT(OnINetBlockChanged())); connect(ui.chkINetBlockMsg, SIGNAL(clicked(bool)), this, SLOT(OnINetBlockChanged())); // // Access - connect(ui.btnAddFile, SIGNAL(pressed()), this, SLOT(OnAddFile())); + connect(ui.btnAddFile, SIGNAL(clicked(bool)), this, SLOT(OnAddFile())); QMenu* pFileBtnMenu = new QMenu(ui.btnAddFile); pFileBtnMenu->addAction(tr("Browse for File"), this, SLOT(OnBrowseFile())); pFileBtnMenu->addAction(tr("Browse for Folder"), this, SLOT(OnBrowseFolder())); ui.btnAddFile->setPopupMode(QToolButton::MenuButtonPopup); ui.btnAddFile->setMenu(pFileBtnMenu); - connect(ui.btnAddKey, SIGNAL(pressed()), this, SLOT(OnAddKey())); - connect(ui.btnAddIPC, SIGNAL(pressed()), this, SLOT(OnAddIPC())); - connect(ui.btnAddWnd, SIGNAL(pressed()), this, SLOT(OnAddWnd())); - connect(ui.btnAddCOM, SIGNAL(pressed()), this, SLOT(OnAddCOM())); + connect(ui.btnAddKey, SIGNAL(clicked(bool)), this, SLOT(OnAddKey())); + connect(ui.btnAddIPC, SIGNAL(clicked(bool)), this, SLOT(OnAddIPC())); + connect(ui.btnAddWnd, SIGNAL(clicked(bool)), this, SLOT(OnAddWnd())); + connect(ui.btnAddCOM, SIGNAL(clicked(bool)), this, SLOT(OnAddCOM())); // todo: add priority by order ui.btnMoveUp->setVisible(false); ui.btnMoveDown->setVisible(false); connect(ui.chkShowAccessTmpl, SIGNAL(clicked(bool)), this, SLOT(OnShowAccessTmpl())); - connect(ui.btnDelAccess, SIGNAL(pressed()), this, SLOT(OnDelAccess())); + connect(ui.btnDelAccess, SIGNAL(clicked(bool)), this, SLOT(OnDelAccess())); connect(ui.treeAccess, SIGNAL(itemClicked(QTreeWidgetItem*, int)), this, SLOT(OnAccessItemClicked(QTreeWidgetItem*, int))); connect(ui.treeAccess, SIGNAL(itemDoubleClicked(QTreeWidgetItem*, int)), this, SLOT(OnAccessItemDoubleClicked(QTreeWidgetItem*, int))); @@ -245,10 +245,10 @@ COptionsWindow::COptionsWindow(const QSharedPointer& pBox, const QStri // Recovery connect(ui.chkAutoRecovery, SIGNAL(clicked(bool)), this, SLOT(OnRecoveryChanged())); - connect(ui.btnAddRecovery, SIGNAL(pressed()), this, SLOT(OnAddRecFolder())); - connect(ui.btnDelRecovery, SIGNAL(pressed()), this, SLOT(OnDelRecEntry())); - connect(ui.btnAddRecIgnore, SIGNAL(pressed()), this, SLOT(OnAddRecIgnore())); - connect(ui.btnAddRecIgnoreExt, SIGNAL(pressed()), this, SLOT(OnAddRecIgnoreExt())); + connect(ui.btnAddRecovery, SIGNAL(clicked(bool)), this, SLOT(OnAddRecFolder())); + connect(ui.btnDelRecovery, SIGNAL(clicked(bool)), this, SLOT(OnDelRecEntry())); + connect(ui.btnAddRecIgnore, SIGNAL(clicked(bool)), this, SLOT(OnAddRecIgnore())); + connect(ui.btnAddRecIgnoreExt, SIGNAL(clicked(bool)), this, SLOT(OnAddRecIgnoreExt())); connect(ui.chkShowRecoveryTmpl, SIGNAL(clicked(bool)), this, SLOT(OnShowRecoveryTmpl())); // @@ -264,6 +264,7 @@ COptionsWindow::COptionsWindow(const QSharedPointer& pBox, const QStri connect(ui.chkOpenCredentials, SIGNAL(clicked(bool)), this, SLOT(OnAdvancedChanged())); connect(ui.chkOpenProtectedStorage, SIGNAL(clicked(bool)), this, SLOT(OnAdvancedChanged())); connect(ui.chkOpenSmartCard, SIGNAL(clicked(bool)), this, SLOT(OnAdvancedChanged())); + connect(ui.chkOpenBluetooth, SIGNAL(clicked(bool)), this, SLOT(OnAdvancedChanged())); //connect(ui.chkOpenLsaEndpoint, SIGNAL(clicked(bool)), this, SLOT(OnAdvancedChanged())); connect(ui.chkAddToJob, SIGNAL(clicked(bool)), this, SLOT(OnAdvancedChanged())); @@ -276,15 +277,15 @@ COptionsWindow::COptionsWindow(const QSharedPointer& pBox, const QStri connect(ui.chkComTrace, SIGNAL(clicked(bool)), this, SLOT(OnAdvancedChanged())); connect(ui.chkDbgTrace, SIGNAL(clicked(bool)), this, SLOT(OnAdvancedChanged())); - connect(ui.btnAddAutoExec, SIGNAL(pressed()), this, SLOT(OnAddAutoExec())); - connect(ui.btnDelAutoExec, SIGNAL(pressed()), this, SLOT(OnDelAutoExec())); + connect(ui.btnAddAutoExec, SIGNAL(clicked(bool)), this, SLOT(OnAddAutoExec())); + connect(ui.btnDelAutoExec, SIGNAL(clicked(bool)), this, SLOT(OnDelAutoExec())); connect(ui.chkHideOtherBoxes, SIGNAL(clicked(bool)), this, SLOT(OnAdvancedChanged())); - connect(ui.btnAddProcess, SIGNAL(pressed()), this, SLOT(OnAddProcess())); - connect(ui.btnDelProcess, SIGNAL(pressed()), this, SLOT(OnDelProcess())); + connect(ui.btnAddProcess, SIGNAL(clicked(bool)), this, SLOT(OnAddProcess())); + connect(ui.btnDelProcess, SIGNAL(clicked(bool)), this, SLOT(OnDelProcess())); - connect(ui.btnAddUser, SIGNAL(pressed()), this, SLOT(OnAddUser())); - connect(ui.btnDelUser, SIGNAL(pressed()), this, SLOT(OnDelUser())); + connect(ui.btnAddUser, SIGNAL(clicked(bool)), this, SLOT(OnAddUser())); + connect(ui.btnDelUser, SIGNAL(clicked(bool)), this, SLOT(OnDelUser())); connect(ui.chkMonitorAdminOnly, SIGNAL(clicked(bool)), this, SLOT(OnAdvancedChanged())); // @@ -299,13 +300,13 @@ COptionsWindow::COptionsWindow(const QSharedPointer& pBox, const QStri connect(ui.tabs, SIGNAL(currentChanged(int)), this, SLOT(OnTab())); // edit - connect(ui.btnEditIni, SIGNAL(pressed()), this, SLOT(OnEditIni())); - connect(ui.btnSaveIni, SIGNAL(pressed()), this, SLOT(OnSaveIni())); - connect(ui.btnCancelEdit, SIGNAL(pressed()), this, SLOT(OnCancelEdit())); + connect(ui.btnEditIni, SIGNAL(clicked(bool)), this, SLOT(OnEditIni())); + connect(ui.btnSaveIni, SIGNAL(clicked(bool)), this, SLOT(OnSaveIni())); + connect(ui.btnCancelEdit, SIGNAL(clicked(bool)), this, SLOT(OnCancelEdit())); // - connect(ui.buttonBox->button(QDialogButtonBox::Ok), SIGNAL(pressed()), this, SLOT(ok())); - connect(ui.buttonBox->button(QDialogButtonBox::Apply), SIGNAL(pressed()), this, SLOT(apply())); + connect(ui.buttonBox->button(QDialogButtonBox::Ok), SIGNAL(clicked(bool)), this, SLOT(ok())); + connect(ui.buttonBox->button(QDialogButtonBox::Apply), SIGNAL(clicked(bool)), this, SLOT(apply())); connect(ui.buttonBox, SIGNAL(rejected()), this, SLOT(close())); if (ReadOnly) { @@ -368,12 +369,17 @@ void COptionsWindow::closeEvent(QCloseEvent *e) bool COptionsWindow::eventFilter(QObject *source, QEvent *event) { if (event->type() == QEvent::KeyPress && ((QKeyEvent*)event)->key() == Qt::Key_Escape && ((QKeyEvent*)event)->modifiers() == Qt::NoModifier) + { CloseAccessEdit(false); - else if (source == ui.treeAccess->viewport() && event->type() == QEvent::MouseButtonPress) + return true; // cancel event + } + + if (source == ui.treeAccess->viewport() && event->type() == QEvent::MouseButtonPress) + { CloseAccessEdit(); - else - return QDialog::eventFilter(source, event); - return true; + } + + return QDialog::eventFilter(source, event); } //void COptionsWindow::OnWithTemplates() @@ -479,6 +485,7 @@ void COptionsWindow::LoadConfig() ui.chkOpenCredentials->setEnabled(!ui.chkOpenProtectedStorage->isChecked()); ui.chkOpenCredentials->setChecked(!ui.chkOpenCredentials->isEnabled() || m_pBox->GetBool("OpenCredentials", false)); ui.chkOpenSmartCard->setChecked(m_pBox->GetBool("OpenSmartCard", true)); + ui.chkOpenBluetooth->setChecked(m_pBox->GetBool("OpenBluetooth", false)); //ui.chkOpenLsaEndpoint->setChecked(m_pBox->GetBool("OpenLsaEndpoint", false)); @@ -645,6 +652,7 @@ void COptionsWindow::SaveConfig() if(ui.chkOpenCredentials->isEnabled()) WriteAdvancedCheck(ui.chkOpenCredentials, "OpenCredentials", "y", ""); WriteAdvancedCheck(ui.chkOpenSmartCard, "OpenSmartCard", "", "n"); + WriteAdvancedCheck(ui.chkOpenBluetooth, "OpenBluetooth", "y", ""); //WriteAdvancedCheck(ui.chkOpenLsaEndpoint, "OpenLsaEndpoint", "y", ""); WriteAdvancedCheck(ui.chkAddToJob, "NoAddProcessToJob", "", "y"); @@ -700,6 +708,8 @@ void COptionsWindow::apply() return; } + CloseAccessEdit(); + if (!ui.btnEditIni->isEnabled()) SaveIniSection(); else @@ -1471,27 +1481,27 @@ QString COptionsWindow::GetAccessModeStr(EAccessMode Mode) { switch (Mode) { - case eDirect: return "Direct"; - case eDirectAll: return "Direct All"; - case eClosed: return "Closed"; - case eClosedRT: return "Closed RT"; - case eReadOnly: return "Read Only"; - case eWriteOnly: return "Write Only"; + case eDirect: return tr("Direct"); + case eDirectAll: return tr("Direct All"); + case eClosed: return tr("Closed"); + case eClosedRT: return tr("Closed RT"); + case eReadOnly: return tr("Read Only"); + case eWriteOnly: return tr("Hidden"); } - return "Unknown"; + return tr("Unknown"); } QString COptionsWindow::GetAccessTypeStr(EAccessType Type) { switch (Type) { - case eFile: return "File/Folder"; - case eKey: return "Registry"; - case eIPC: return "IPC Path"; - case eWnd: return "Wnd Class"; - case eCOM: return "COM Object"; + case eFile: return tr("File/Folder"); + case eKey: return tr("Registry"); + case eIPC: return tr("IPC Path"); + case eWnd: return tr("Wnd Class"); + case eCOM: return tr("COM Object"); } - return "Unknown"; + return tr("Unknown"); } void COptionsWindow::OnBrowseFile() diff --git a/SandboxiePlus/SandMan/Windows/PopUpWindow.h b/SandboxiePlus/SandMan/Windows/PopUpWindow.h index 0d570537..b795c769 100644 --- a/SandboxiePlus/SandMan/Windows/PopUpWindow.h +++ b/SandboxiePlus/SandMan/Windows/PopUpWindow.h @@ -46,7 +46,7 @@ public: pHelp->setText(tr("?")); pHelp->setToolTip(tr("Visit %1 for a detailed explanation.").arg(QString("https://sandboxie-plus.com/go.php?to=sbie-sbie%1/").arg(GetMsgId()))); pHelp->setMaximumWidth(16); - QObject::connect(pHelp, SIGNAL(pressed()), this, SLOT(OnHelp())); + QObject::connect(pHelp, SIGNAL(clicked(bool)), this, SLOT(OnHelp())); m_pMainLayout->addWidget(pHelp, 0, 1); @@ -58,7 +58,7 @@ public: pMenu->addAction(tr("Hide all such messages"), this, SIGNAL(Hide())); pDismiss->setMenu(pMenu); //QObject::connect(pDismiss, SIGNAL(triggered(QAction*)), , SLOT()); - QObject::connect(pDismiss, SIGNAL(pressed()), this, SIGNAL(Dismiss())); + QObject::connect(pDismiss, SIGNAL(clicked(bool)), this, SIGNAL(Dismiss())); m_pMainLayout->addWidget(pDismiss, 0, 2); } } @@ -107,17 +107,17 @@ public: m_pYes = new QToolButton(); m_pYes->setText(tr("Yes")); - connect(m_pYes, SIGNAL(pressed()), this, SLOT(OnAccepted())); + connect(m_pYes, SIGNAL(clicked(bool)), this, SLOT(OnAccepted())); m_pMainLayout->addWidget(m_pYes, 1, 2); m_pNo = new QToolButton(); m_pNo->setText(tr("No")); - connect(m_pNo, SIGNAL(pressed()), this, SLOT(OnRejected())); + connect(m_pNo, SIGNAL(clicked(bool)), this, SLOT(OnRejected())); m_pMainLayout->addWidget(m_pNo, 1, 3); m_pTerminate = new QToolButton(); m_pTerminate->setText(tr("Terminate")); - connect(m_pTerminate, SIGNAL(pressed()), this, SLOT(OnTerminate())); + connect(m_pTerminate, SIGNAL(clicked(bool)), this, SLOT(OnTerminate())); m_pMainLayout->addWidget(m_pTerminate, 1, 4); @@ -256,7 +256,7 @@ public: pRecMenu->addAction(tr("Open file recovery for this box"), this, SIGNAL(OpenRecovery())); pRecover->setMenu(pRecMenu); //QObject::connect(pRecover, SIGNAL(triggered(QAction*)), , SLOT()); - QObject::connect(pRecover, SIGNAL(pressed()), this, SLOT(OnRecover())); + QObject::connect(pRecover, SIGNAL(clicked(bool)), this, SLOT(OnRecover())); m_pMainLayout->addWidget(pRecover, 2, 2); @@ -269,7 +269,7 @@ public: pMenu->addAction(tr("Disable quick recovery until the box restarts"), this, SLOT(OnDisable())); pDismiss->setMenu(pMenu); //QObject::connect(pDismiss, SIGNAL(triggered(QAction*)), , SLOT()); - QObject::connect(pDismiss, SIGNAL(pressed()), this, SIGNAL(Dismiss())); + QObject::connect(pDismiss, SIGNAL(clicked(bool)), this, SIGNAL(Dismiss())); m_pMainLayout->addWidget(pDismiss, 2, 3); } @@ -359,7 +359,7 @@ public: //pMenu->addAction(tr("Hide this progress for this process"), this, SIGNAL(Hide())); //pDismiss->setMenu(pMenu); //QObject::connect(pDismiss, SIGNAL(triggered(QAction*)), , SLOT()); - QObject::connect(pDismiss, SIGNAL(pressed()), this, SIGNAL(Dismiss())); + QObject::connect(pDismiss, SIGNAL(clicked(bool)), this, SIGNAL(Dismiss())); m_pMainLayout->addWidget(pDismiss, 1, 2); m_iTimeOutSec = 5; diff --git a/SandboxiePlus/SandMan/Windows/RecoveryWindow.cpp b/SandboxiePlus/SandMan/Windows/RecoveryWindow.cpp index 3227ccfd..8a69f69c 100644 --- a/SandboxiePlus/SandMan/Windows/RecoveryWindow.cpp +++ b/SandboxiePlus/SandMan/Windows/RecoveryWindow.cpp @@ -58,13 +58,13 @@ CRecoveryWindow::CRecoveryWindow(const CSandBoxPtr& pBox, QWidget *parent) //connect(ui.treeFiles->selectionModel(), SIGNAL(currentChanged(QModelIndex, QModelIndex)), this, SLOT(UpdateSnapshot(const QModelIndex&))); //connect(ui.treeFiles, SIGNAL(doubleClicked(const QModelIndex&)), this, SLOT(OnSelectSnapshot())); - connect(ui.btnAddFolder, SIGNAL(pressed()), this, SLOT(OnAddFolder())); + connect(ui.btnAddFolder, SIGNAL(clicked(bool)), this, SLOT(OnAddFolder())); connect(ui.chkShowAll, SIGNAL(clicked(bool)), this, SLOT(FindFiles())); - connect(ui.btnRefresh, SIGNAL(pressed()), this, SLOT(FindFiles())); - connect(ui.btnRecover, SIGNAL(pressed()), this, SLOT(OnRecover())); - connect(ui.btnRecoverTo, SIGNAL(pressed()), this, SLOT(OnRecoverTo())); - connect(ui.btnDeleteAll, SIGNAL(pressed()), this, SLOT(OnDeleteAll())); - connect(ui.btnClose, SIGNAL(pressed()), this, SLOT(close())); + connect(ui.btnRefresh, SIGNAL(clicked(bool)), this, SLOT(FindFiles())); + connect(ui.btnRecover, SIGNAL(clicked(bool)), this, SLOT(OnRecover())); + connect(ui.btnRecoverTo, SIGNAL(clicked(bool)), this, SLOT(OnRecoverTo())); + connect(ui.btnDeleteAll, SIGNAL(clicked(bool)), this, SLOT(OnDeleteAll())); + connect(ui.btnClose, SIGNAL(clicked(bool)), this, SLOT(close())); restoreGeometry(theConf->GetBlob("RecoveryWindow/Window_Geometry")); @@ -226,7 +226,6 @@ int CRecoveryWindow::FindFiles(const QString& RecParent, const QString& BoxedFol void CRecoveryWindow::RecoverFiles(bool bBrowse) { bool HasShare = false; - QMap FileMap; foreach(const QModelIndex& Index, ui.treeFiles->selectionModel()->selectedIndexes()) { @@ -262,17 +261,21 @@ void CRecoveryWindow::RecoverFiles(bool bBrowse) } } - QString RecoveryFolder; - if (HasShare && !bBrowse) - { - if (!bBrowse) - QMessageBox::warning(this, "Sandboxie-Plus", tr("One or more selected files are located on a network share, and must be recovered to a local drive, please select a folder to recover all selected files to.")); + if (HasShare && !bBrowse) { + QMessageBox::warning(this, "Sandboxie-Plus", tr("One or more selected files are located on a network share, and must be recovered to a local drive, please select a folder to recover all selected files to.")); + bBrowse = true; + } + + + QString RecoveryFolder; + if (bBrowse) { RecoveryFolder = QFileDialog::getExistingDirectory(this, tr("Select Directory")).replace("/", "\\"); if (RecoveryFolder.isEmpty()) return; } + QList> FileList; for(QMap::const_iterator I = FileMap.begin(); I != FileMap.end(); ++I) { @@ -287,6 +290,7 @@ void CRecoveryWindow::RecoverFiles(bool bBrowse) FileList.append(qMakePair(BoxedFilePath, RecoveryPath)); } + SB_PROGRESS Status = theGUI->RecoverFiles(FileList); if (Status.GetStatus() == OP_ASYNC) { diff --git a/SandboxiePlus/SandMan/Windows/SettingsWindow.cpp b/SandboxiePlus/SandMan/Windows/SettingsWindow.cpp index 65aa435f..d1ead340 100644 --- a/SandboxiePlus/SandMan/Windows/SettingsWindow.cpp +++ b/SandboxiePlus/SandMan/Windows/SettingsWindow.cpp @@ -89,7 +89,7 @@ CSettingsWindow::CSettingsWindow(QWidget *parent) ui.chkAdminOnly->setChecked(theAPI->GetGlobalSettings()->GetBool("EditAdminOnly", false)); ui.chkPassRequired->setChecked(!theAPI->GetGlobalSettings()->GetText("EditPassword", "").isEmpty()); connect(ui.chkPassRequired, SIGNAL(stateChanged(int)), this, SLOT(OnChange())); - connect(ui.btnSetPassword, SIGNAL(pressed()), this, SLOT(OnSetPassword())); + connect(ui.btnSetPassword, SIGNAL(clicked(bool)), this, SLOT(OnSetPassword())); ui.chkAdminOnlyFP->setChecked(theAPI->GetGlobalSettings()->GetBool("ForceDisableAdminOnly", false)); ui.chkClearPass->setChecked(theAPI->GetGlobalSettings()->GetBool("ForgetPassword", false)); @@ -97,9 +97,9 @@ CSettingsWindow::CSettingsWindow(QWidget *parent) connect(ui.chkStartBlock, SIGNAL(stateChanged(int)), this, SLOT(OnWarnChanged())); ui.chkStartBlockMsg->setChecked(theAPI->GetGlobalSettings()->GetBool("NotifyStartRunAccessDenied", true)); connect(ui.chkStartBlockMsg, SIGNAL(stateChanged(int)), this, SLOT(OnWarnChanged())); - connect(ui.btnAddWarnProg, SIGNAL(pressed()), this, SLOT(OnAddWarnProg())); - connect(ui.btnAddWarnFolder, SIGNAL(pressed()), this, SLOT(OnAddWarnFolder())); - connect(ui.btnDelWarnProg, SIGNAL(pressed()), this, SLOT(OnDelWarnProg())); + connect(ui.btnAddWarnProg, SIGNAL(clicked(bool)), this, SLOT(OnAddWarnProg())); + connect(ui.btnAddWarnFolder, SIGNAL(clicked(bool)), this, SLOT(OnAddWarnFolder())); + connect(ui.btnDelWarnProg, SIGNAL(clicked(bool)), this, SLOT(OnDelWarnProg())); foreach(const QString& Value, theAPI->GetGlobalSettings()->GetTextList("AlertProcess", false)) AddWarnEntry(Value, 1); @@ -127,7 +127,7 @@ CSettingsWindow::CSettingsWindow(QWidget *parent) } m_WarnProgsChanged = false; - connect(ui.btnBrowse, SIGNAL(pressed()), this, SLOT(OnBrowse())); + connect(ui.btnBrowse, SIGNAL(clicked(bool)), this, SLOT(OnBrowse())); int PortableRootDir = theConf->GetInt("Options/PortableRootDir", -1); if (PortableRootDir != -1 && theConf->IsPortable()) @@ -136,8 +136,8 @@ CSettingsWindow::CSettingsWindow(QWidget *parent) ui.chkAutoRoot->setVisible(false); connect(ui.chkAutoRoot, SIGNAL(stateChanged(int)), this, SLOT(OnChange())); - connect(ui.btnAddCompat, SIGNAL(pressed()), this, SLOT(OnAddCompat())); - connect(ui.btnDelCompat, SIGNAL(pressed()), this, SLOT(OnDelCompat())); + connect(ui.btnAddCompat, SIGNAL(clicked(bool)), this, SLOT(OnAddCompat())); + connect(ui.btnDelCompat, SIGNAL(clicked(bool)), this, SLOT(OnDelCompat())); m_CompatLoaded = 0; m_CompatChanged = false; @@ -148,8 +148,8 @@ CSettingsWindow::CSettingsWindow(QWidget *parent) connect(ui.tabs, SIGNAL(currentChanged(int)), this, SLOT(OnTab())); - connect(ui.buttonBox->button(QDialogButtonBox::Ok), SIGNAL(pressed()), this, SLOT(ok())); - connect(ui.buttonBox->button(QDialogButtonBox::Apply), SIGNAL(pressed()), this, SLOT(apply())); + connect(ui.buttonBox->button(QDialogButtonBox::Ok), SIGNAL(clicked(bool)), this, SLOT(ok())); + connect(ui.buttonBox->button(QDialogButtonBox::Apply), SIGNAL(clicked(bool)), this, SLOT(apply())); connect(ui.buttonBox, SIGNAL(rejected()), this, SLOT(reject())); restoreGeometry(theConf->GetBlob("SettingsWindow/Window_Geometry")); @@ -294,7 +294,7 @@ void CSettingsWindow::apply() } if (ui.chkAutoRoot->isVisible()) - theConf->SetValue("Options/PortableRootDir", ui.chkAutoRoot->checkState() != Qt::Checked ? 1 : 0); + theConf->SetValue("Options/PortableRootDir", ui.chkAutoRoot->checkState() == Qt::Checked ? 1 : 0); theConf->SetValue("Options/AutoRunSoftCompat", !ui.chkNoCompat->isChecked()); diff --git a/SandboxiePlus/SandMan/Windows/SnapshotsWindow.cpp b/SandboxiePlus/SandMan/Windows/SnapshotsWindow.cpp index 09746b69..644fc104 100644 --- a/SandboxiePlus/SandMan/Windows/SnapshotsWindow.cpp +++ b/SandboxiePlus/SandMan/Windows/SnapshotsWindow.cpp @@ -49,9 +49,9 @@ CSnapshotsWindow::CSnapshotsWindow(const CSandBoxPtr& pBox, QWidget *parent) connect(ui.treeSnapshots->selectionModel(), SIGNAL(currentChanged(QModelIndex, QModelIndex)), this, SLOT(UpdateSnapshot(const QModelIndex&))); connect(ui.treeSnapshots, SIGNAL(doubleClicked(const QModelIndex&)), this, SLOT(OnSelectSnapshot())); - connect(ui.btnTake, SIGNAL(pressed()), this, SLOT(OnTakeSnapshot())); - connect(ui.btnSelect, SIGNAL(pressed()), this, SLOT(OnSelectSnapshot())); - connect(ui.btnRemove, SIGNAL(pressed()), this, SLOT(OnRemoveSnapshot())); + connect(ui.btnTake, SIGNAL(clicked(bool)), this, SLOT(OnTakeSnapshot())); + connect(ui.btnSelect, SIGNAL(clicked(bool)), this, SLOT(OnSelectSnapshot())); + connect(ui.btnRemove, SIGNAL(clicked(bool)), this, SLOT(OnRemoveSnapshot())); connect(ui.txtName, SIGNAL(textEdited(const QString&)), this, SLOT(SaveInfo())); connect(ui.txtInfo, SIGNAL(textChanged()), this, SLOT(SaveInfo())); diff --git a/SandboxiePlus/SandMan/sandman_de.ts b/SandboxiePlus/SandMan/sandman_de.ts index 5a25c2ce..1b602a9a 100644 --- a/SandboxiePlus/SandMan/sandman_de.ts +++ b/SandboxiePlus/SandMan/sandman_de.ts @@ -1,2877 +1,2961 @@ - - - - - CApiMonModel - - - Process - Prozess - - - - Time Stamp - Zeitstempel - - - - Message - Nachricht - - - - CMultiErrorDialog - - - Sandboxie-Plus - Error - Sandboxie-Plus - Fehler - - - - Message - Nachricht - - - - CNewBoxWindow - - - Sandboxie-Plus - Create New Box - Sandboxie-Plus - Neue Box erstellen - - - - New Box - Neue Box - - - - Hardened - Gehärtet - - - - Default - Standard - - - - Legacy Sandboxie Behaviour - Veraltetes Sandboxieverhalten - - - - COptionsWindow - - - %1 (%2) - Same as in source - %1 (%2) - - - - Don't alter the window title - Den Fenstertext nicht ändern - - - - Display [#] indicator only - Nur [#] als Indikator anzeigen - - - - Display box name in title - Extended the word title with the German word for Window to make sure it is understood - Den Boxnamen im Fenstertitel anzeigen - - - - Border disabled - Rahmen deaktiviert - - - - Show only when title is in focus - Extended the word title with the German word for Window to make sure it is understood - Nur Anzeigen, wenn der Fenstertitel im Fokus ist - - - - Always show - Immer anzeigen - - - - - Browse for Program - Zu Programm navigieren - - - - Browse for File - Zu Datei navigieren - - - - Browse for Folder - Zu Ordner navigieren - - - - This sandbox has been deleted hence configuration can not be saved. - Diese Sandbox wurde gelöscht, daher can die Konfiguration nicht gespeichert werden. - - - - Some changes haven't been saved yet, do you really want to close this options window? - Einige Änderungen wurden bisher nicht gespeichert, möchten Sie dieses Einstellungsfenster wirklich schließen? - - - - kilobytes (%1) - Only capitalized - Kilobytes (%1) - - - - Please enter a program path - Bitte geben Sie einen Programmpfad ein - - - - - Select Program - Programm auswählen - - - - Executables (*.exe *.cmd);;All files (*.*) - Ausführbare Dateien (*.exe|*.cmd);;Alle Dateien(*.*) - - - - Executables (*.exe|*.cmd) - Ausführbare Dateien (*.exe|*.cmd) - - - - Please enter a service identifier - Bitte geben Sie eine Dienstbezeichnung ein - - - - Service - Dienst - - - - Program - Programm - - - - - Please enter a menu title - Bitte einen Menütitel eingeben - - - - Please enter a command - Bitte ein Kommando eingeben - - - - - - - Group: %1 - Gruppe: %1 - - - - Please enter a name for the new group - Bitte einen Namen für die neue Gruppe eingeben - - - - Enter program: - Programm eingeben: - - - - Please select group first. - Bitte zuvor eine Gruppe auswählen. - - - - COM objects must be specified by their GUID, like: {00000000-0000-0000-0000-000000000000} - COM-Objekte müssen durch ihre GUID, z.B. {00000000-0000-0000-0000-000000000000}, benannt werden - - - - RT interfaces must be specified by their name. - RT-Schnittstellen müssen durch ihren Namen benannt werden. - - - - Please enter an auto exec command - Bitte geben Sie einen Autoausführen-Kommando ein - - - - This template is enabled globally. To configure it, use the global options. - Diese Vorlage ist global aktiv, um sie zu konfigurieren müssen die globalen Optionen genutzt werden. - - - - Process - Prozess - - - - Sandboxie Plus - '%1' Options - Sandboxie Plus - '%1' Optionen - - - - - Folder - Ordner - - - - - - - Select Directory - Ordner auswählen - - - - Lingerer - Verweilende - - - - Leader - Primäre - - - - Select File - Datei auswählen - - - - All Files (*.*) - Alle Dateien (*.*) - - - - - All Programs - Alle Programme - - - - Template values can not be edited. - Musterwerte können nicht bearbeitet werden. - - - - - Template values can not be removed. - Musterwerte können nicht gelöscht werden. - - - - Exclusion - Ausnahmen - - - - Please enter a file extension to be excluded - Bitte die Dateiendung, welche ausgenommen werden soll, eingeben - - - - Please enter a program file name - Bitte den Dateinamen eines Programms eingeben - - - - All Categories - Alle Kategorien - - - - CPopUpMessage - - - ? - ? - - - - Visit %1 for a detailed explanation. - %1 besuchen für eine detaillierte Erklärung. - - - - Dismiss - Ignorieren - - - - Remove this message from the list - Diese Nachricht aus der Liste entfernen - - - - Hide all such messages - Alle diese Nachrichten verbergen - - - - CPopUpProgress - - - Dismiss - Ignorieren - - - - Remove this progress indicator from the list - Diesen Fortschrittsindikator aus der Liste entfernen - - - - CPopUpPrompt - - - Remember for this process - Für diesen Prozess merken - - - - Yes - Ja - - - - No - Nein - - - - Terminate - Beenden - - - - Yes and add to allowed programs - Ja und zu den erlaubten Programmen hinzufügen - - - - Requesting process terminated - Anfragenden Prozess beendet - - - - Request will time out in %1 sec - Anfrage läuft in %1 Sek. ab - - - - Request timed out - Anfrage abgelaufen - - - - CPopUpRecovery - - - Recover - Wiederherstellen - - - - Recover the file to original location - Die Datei zur Originalquelle wiederherstellen - - - - Recover to: - Wiederherstellen zu: - - - - Browse - Navigieren - - - - Clear folder list - Leere die Ordnerliste - - - - Recover && Explore - Wiederherstellen && Anzeigen - - - - Recover && Open/Run - Wiederherstellen && Öffnen/Starten - - - - Open file recovery for this box - Öffne Dateiwiederherstellung für diese Box - - - - Dismiss - Ignorieren - - - - Don't recover this file right now - Diese Datei jetzt nicht wiederherstellen - - - - Dismiss all from this box - Alle für diese Box ablehnen - - - - Disable quick recovery until the box restarts - Schnellwiederherstellung deaktivieren bis die Box neu gestartet wird - - - - Select Directory - Ordner auswählen - - - - CPopUpWindow - - - Sandboxie-Plus Notifications - Sandboxie-Plus Benachrichtigungen - - - - Do you want to allow the print spooler to write outside the sandbox for %1 (%2)? - Kept 'print spooler' in brackets to allow easier online lookup - Möchten Sie der Druckerwarteschlange (print spooler) erlauben außerhalb der Sandbox für %1 (%2) zu schreiben? - - - + + + + + CApiMonModel + + + Process + Prozess + + + + Time Stamp + Zeitstempel + + + + Message + Nachricht + + + + CMultiErrorDialog + + + Sandboxie-Plus - Error + Sandboxie-Plus - Fehler + + + + Message + Nachricht + + + + CNewBoxWindow + + + Sandboxie-Plus - Create New Box + Sandboxie-Plus - Neue Box erstellen + + + + New Box + Neue Box + + + + Hardened + Gehärtet + + + + Default + Standard + + + + Legacy Sandboxie Behaviour + Veraltetes Sandboxieverhalten + + + + COptionsWindow + + + %1 (%2) + Same as in source + %1 (%2) + + + + Don't alter the window title + Den Fenstertitel nicht ändern + + + + Display [#] indicator only + Nur [#] als Indikator anzeigen + + + + Display box name in title + Extended the word title with the German word for Window to make sure it is understood + Den Boxnamen im Fenstertitel anzeigen + + + + Border disabled + Rahmen deaktiviert + + + + Show only when title is in focus + Extended the word title with the German word for Window to make sure it is understood + Nur Anzeigen, wenn der Fenstertitel im Fokus ist + + + + Always show + Immer anzeigen + + + + + Browse for Program + Zu Programm navigieren + + + + Browse for File + Zu Datei navigieren + + + + Browse for Folder + Zu Ordner navigieren + + + + This sandbox has been deleted hence configuration can not be saved. + Diese Sandbox wurde gelöscht, daher kann die Konfiguration nicht gespeichert werden. + + + + Some changes haven't been saved yet, do you really want to close this options window? + Einige Änderungen wurden bisher nicht gespeichert, möchten Sie dieses Einstellungsfenster wirklich schließen? + + + + kilobytes (%1) + Only capitalized + Kilobytes (%1) + + + + Please enter a program path + Bitte geben Sie einen Programmpfad ein + + + + + Select Program + Programm auswählen + + + + Executables (*.exe *.cmd);;All files (*.*) + Ausführbare Dateien (*.exe|*.cmd);;Alle Dateien(*.*) + + + + Executables (*.exe|*.cmd) + Ausführbare Dateien (*.exe|*.cmd) + + + + Please enter a service identifier + Bitte geben Sie eine Dienstbezeichnung ein + + + + Service + Dienst + + + + Program + Programm + + + + + Please enter a menu title + Bitte einen Menütitel eingeben + + + + Please enter a command + Bitte ein Kommando eingeben + + + + + + + Group: %1 + Gruppe: %1 + + + + Please enter a name for the new group + Bitte einen Namen für die neue Gruppe eingeben + + + + Enter program: + Programm eingeben: + + + + Please select group first. + Bitte zuvor eine Gruppe auswählen. + + + + COM objects must be specified by their GUID, like: {00000000-0000-0000-0000-000000000000} + COM-Objekte müssen durch ihre GUID, z.B. {00000000-0000-0000-0000-000000000000}, benannt werden + + + + RT interfaces must be specified by their name. + RT-Schnittstellen müssen durch ihren Namen benannt werden. + + + + Please enter an auto exec command + Bitte geben Sie einen Autoausführen-Kommando ein + + + + This template is enabled globally. To configure it, use the global options. + Diese Vorlage ist global aktiv, um sie zu konfigurieren müssen die globalen Optionen genutzt werden. + + + + Process + Prozess + + + + Sandboxie Plus - '%1' Options + Sandboxie Plus - '%1' Optionen + + + + + Folder + Ordner + + + + + + + Select Directory + Ordner auswählen + + + + Lingerer + Verweilende + + + + Leader + Primäre + + + + Direct + + + + + Direct All + + + + + Closed + + + + + Closed RT + + + + + Read Only + + + + + Hidden + + + + + + Unknown + Unbekannte + + + + File/Folder + + + + + Registry + + + + + IPC Path + + + + + Wnd Class + + + + + COM Object + + + + + Select File + Datei auswählen + + + + All Files (*.*) + Alle Dateien (*.*) + + + + + All Programs + Alle Programme + + + + Template values can not be edited. + Vorlagenwerte können nicht bearbeitet werden. + + + + + Template values can not be removed. + Vorlagenwerte können nicht gelöscht werden. + + + + Exclusion + Ausnahmen + + + + Please enter a file extension to be excluded + Bitte die Dateiendung, welche ausgenommen werden soll, eingeben + + + + Please enter a program file name + Bitte den Dateinamen eines Programms eingeben + + + + All Categories + Alle Kategorien + + + + CPopUpMessage + + + ? + ? + + + + Visit %1 for a detailed explanation. + %1 besuchen für eine detaillierte Erklärung. + + + + Dismiss + Ignorieren + + + + Remove this message from the list + Diese Nachricht aus der Liste entfernen + + + + Hide all such messages + Alle diese Nachrichten verbergen + + + + CPopUpProgress + + + Dismiss + Ignorieren + + + + Remove this progress indicator from the list + Diesen Fortschrittsindikator aus der Liste entfernen + + + + CPopUpPrompt + + + Remember for this process + Für diesen Prozess merken + + + + Yes + Ja + + + + No + Nein + + + + Terminate + Beenden + + + + Yes and add to allowed programs + Ja und zu den erlaubten Programmen hinzufügen + + + + Requesting process terminated + Anfragenden Prozess beendet + + + + Request will time out in %1 sec + Anfrage läuft in %1 Sek. ab + + + + Request timed out + Anfrage abgelaufen + + + + CPopUpRecovery + + + Recover + Wiederherstellen + + + + Recover the file to original location + Die Datei zur Originalquelle wiederherstellen + + + + Recover to: + Wiederherstellen nach: + + + + Browse + Navigieren + + + + Clear folder list + Leere die Ordnerliste + + + + Recover && Explore + Wiederherstellen && Anzeigen + + + + Recover && Open/Run + Wiederherstellen && Öffnen/Starten + + + + Open file recovery for this box + Öffne Dateiwiederherstellung für diese Box + + + + Dismiss + Ignorieren + + + + Don't recover this file right now + Diese Datei jetzt nicht wiederherstellen + + + + Dismiss all from this box + Alle für diese Box ablehnen + + + + Disable quick recovery until the box restarts + Schnellwiederherstellung deaktivieren bis die Box neu gestartet wird + + + + Select Directory + Ordner auswählen + + + + CPopUpWindow + + + Sandboxie-Plus Notifications + Sandboxie-Plus Benachrichtigungen + + + + Do you want to allow the print spooler to write outside the sandbox for %1 (%2)? + Kept 'print spooler' in brackets to allow easier online lookup + Möchten Sie der Druckerwarteschlange (print spooler) erlauben außerhalb der Sandbox für %1 (%2) zu schreiben? + + + Do you want to allow %4 (%5) to copy a %1 large file into sandbox: %2? -File name: %3 - Do you want to allow %4 (%5) to copy a %1 large file into sandbox: %2? -File name: %3 - Möchten Sie %4 (%5) erlauben eine %1 große Datei in die Sandbox: %2 zu kopieren? -Dateiname: %3 - - - +File name: %3 + Do you want to allow %4 (%5) to copy a %1 large file into sandbox: %2? +File name: %3 + Möchten Sie %4 (%5) erlauben eine %1 große Datei in die Sandbox: %2 zu kopieren? +Dateiname: %3 + + + Do you want to allow %1 (%2) access to the internet? -Full path: %3 - Do you want to allow %1 (%2) access to the internet? -Full path: %3 - Möchten Sie %1 (%2) den Zugriff auf das Internet erlauben? -Vollständiger Pfad: %3 - - - +Full path: %3 + Do you want to allow %1 (%2) access to the internet? +Full path: %3 + Möchten Sie %1 (%2) den Zugriff auf das Internet erlauben? +Vollständiger Pfad: %3 + + + %1 is eligible for quick recovery from %2. -The file was written by: %3 - %1 is eligible for quick recovery from %2. -The file was written by: %3 - %1 ist zur Schnellwiederherstellung aus %2 berechtigt. -Die Datei wurde geschrieben durch: %3 - - - +The file was written by: %3 + %1 is eligible for quick recovery from %2. +The file was written by: %3 + %1 ist zur Schnellwiederherstellung aus %2 berechtigt. +Die Datei wurde geschrieben durch: %3 + + + Migrating a large file %1 into the sandbox %2, %3 left. -Full path: %4 - Migrating a large file %1 into the sandbox %2, %3 left. -Full path: %4 - Übertrage große Datei %1 in die Sandbox %2, %3 verbleiben. -Vollständiger Pfad: %4 - - - - an UNKNOWN process. - Ein UNBEKANNTER Prozess. - - - - %1 (%2) - same as source - %1 (%2) - - - - - UNKNOWN - UNBEKANNT - - - - CRecoveryWindow - - - %1 - File Recovery - %1 - Dateiwiederherstellung - - - - File Name - Dateiname - - - - File Size - Dateigröße - - - - Full Path - Vollständiger Pfad - - - - - Select Directory - Ordner auswählen - - - - One or more selected files are located on a network share, and must be recovered to a local drive, please select a folder to recover all selected files to. - Eine oder mehrere ausgewählte Dateien befinden sich auf Netzwerkpfaden und müssen zur Wiederherstellung lokal gespeichert werden. Bitte einen Ordner auswählen, um die ausgewählten Dateien darin wiederherzustellen. - - - - There are %1 files and %2 folders in the sandbox, occupying %3 bytes of disk space. - Es befinden sich %1 Dateien und %2 Ordner in der Sandbox, welche %3 bytes an Speicherplatz belegen. - - - - CResMonModel - - - Unknown - Unbekannte - - - - Process - Prozess - - - - Time Stamp - Zeitstempel - - - - Type - Typ - - - - Value - Wert - - - - Status - Status - - - - CSandBoxPlus - - - Disabled - Deaktiviert - - - - NOT SECURE (Debug Config) - NICHT SICHER (Debug Konfiguration) - - - - Reduced Isolation - Reduzierte Isolation - - - - Enhanced Isolation - Erweiterte Isolation - - - - API Log - API Protokoll - - - - No INet - Kein Internet - - - - Net Share - Kept original for lack of good German wording - Netzwerkfreigabe (Net share) - - - - No Admin - Kein Admin - - - - Normal - Normal - - - - CSandMan - - - - Sandboxie-Plus v%1 - Sandboxie-Plus v%1 - - - - Reset Columns - Spalten zurücksetzen - - - - Copy Cell - Zelle kopieren - - - - Copy Row - Spalte kopieren - - - - Copy Panel - Tafel kopieren - - - - Time|Message - Zeit|Nachricht - - - - Sbie Messages - Sbie Nachrichten - - - - Resource Monitor - Ressourcenmonitor - - - - Show/Hide - Zeigen/Verstecken - - - - - Disable Forced Programs - Deaktiviere erzwungene Programme - - - - &Sandbox - &Sandbox - - - - Create New Box - Neue Box erstellen - - - - Terminate All Processes - Alle Prozesse beenden - - - - Window Finder - Fensterfinder - - - - &Maintenance - &Wartung - - - - Connect - Verbinden - - - - Disconnect - Trennen - - - - Stop All - Alle stoppen - - - - &Advanced - &Erweitert - - - - Install Driver - Treiber installieren - - - - Start Driver - Treiber starten - - - - Stop Driver - Treiber stoppen - - - - Uninstall Driver - Treiber deinstallieren - - - - Install Service - Dienst installieren - - - - Start Service - Dienst starten - - - - Stop Service - Dienst stoppen - - - - Uninstall Service - Dienst deinstallieren - - - - Exit - Beenden - - - - &View - &Ansicht - - - - Simple View - Einfache Ansicht - - - - Advanced View - Erweiterte Ansicht - - - - Always on Top - Immer oben - - - - Show Hidden Boxes - Zeige versteckte Boxen - - - - Clean Up - Aufräumen - - - - The selected window is running as part of program %1 in sandbox %2 - Das ausgewählte Fenster läuft als Teil des Programms %1 in der Sandbox %2 - - - - The selected window is not running as part of any sandboxed program. - Das ausgewählte Fenster läuft nicht als Teil eines Programms in einer Sandbox. - - - - Drag the Finder Tool over a window to select it, then release the mouse to check if the window is sandboxed. - Klicken und ziehen Sie das Finderwerkzeug über ein Fenster und lassen Sie die Maustaste los, um zu überprüfen, ob sich dieses Fenster in einer Sandbox befindet. - - - - Sandboxie-Plus - Window Finder - Sandboxie-Plus - Fensterfinder - - - - Keep terminated - Beendete behalten - - - - &Options - &Optionen - - - - Global Settings - Globale Einstellungen - - - - Reset all hidden messages - Alle ausgeblendeten Nachrichten zurücksetzen - - - - Edit ini file - .ini-Datei bearbeiten - - - - Reload ini file - .ini-Datei neu laden - - - - Resource Logging - Ressourcenprotokollierung - - - - API Call Logging - API Aufrufprotokollierung - - - - &Help - &Hilfe - - - - Support Sandboxie-Plus with a Donation - Sandboxie-Plus mit einer Spende unterstützen - - - - Visit Support Forum - Supportforum besuchen - - - - Online Documentation - Onlinedokumentation - - - - Check for Updates - Auf Updates prüfen - - - - About the Qt Framework - Über das Qt Framework - - - - - About Sandboxie-Plus - Über Sandboxie-Plus - - - - Do you want to close Sandboxie Manager? - Möchten Sie den Sandboxie-Manager schließen? - - - - Sandboxie-Plus was running in portable mode, now it has to clean up the created services. This will prompt for administrative privileges. - Sandboxie-Plus wurde im portablen Modus betrieben, nun müssen die erzeugten Dienste bereinigt werden, was Adminrechte benötigt. - - - - Failed to stop all Sandboxie components - Konnte nicht alle Sandboxiekomponenten stoppen - - - - Failed to start required Sandboxie components - Konnte nicht alle benötigten Sandboxiekomponenten starten - - - - Some compatibility templates (%1) are missing, probably deleted, do you want to remove them from all boxes? - Einige Kompatibilitätsvorlagen (%1) fehlen, möglicherweise wurden sie gelöscht. Möchten Sie diese aus allen Boxen entfernen? - - - - Cleaned up removed templates... - Entfernte Vorlagen aufgeräumt... - - - - Sandboxie-Plus was started in portable mode, do you want to put the SandBox folder into its parent directory? - Sandboxie-Plus wurde im portablen Modus gestartet, möchten Sie den Sandboxordner im übergeordneten Verzeichnis erstellen? - - - - - NOT connected - - NICHT verbunden - - - - The file %1 already exists, do you want to overwrite it? - Die Datei %1 existiert bereit, möchten Sie diese überschreiben? - - - - Do this for all files! - Tue dies für alle Dateien! - - - - Failed to recover some files: - - Konnte nicht alle Dateien wiederherstellen: - - - - - Do you want to terminate all processes in all sandboxes? - Möchten Sie alle Prozesse in allen Sandboxen beenden? - - - - Terminate all without asking - Alle ohne Rückfrage beenden - - - - Please enter the duration for disabling forced programs. - Bitte Dauer eingeben, in der erzwungene Programme deaktiviert sind. - - - - Sandboxie-Plus was started in portable mode and it needs to create necessary services. This will prompt for administrative privileges. - Sandboxie-Plus wurde im portablen Modus gestartet, nun müssen die benötigten Dienste erzeugt werden, was Adminrechte benötigt. - - - - Do you also want to reset hidden message boxes (yes), or only all log messages (no)? - Möchten Sie auch die ausgeblendeten Mitteilungsboxen zurücksetzen (Ja) oder nur alle Protokollnachrichten (Nein)? - - - - The changes will be applied automatically whenever the file gets saved. - Die Änderungen werden automatisch angewendet, sobald die Datei gespeichert wird. - - - - The changes will be applied automatically as soon as the editor is closed. - Die Änderungen werden automatisch angewendet, sobald der Editor geschlossen wird. - - - - To use API logging you must first set up the LogApiDll from https://github.com/sandboxie-plus/LogApiDll with one or more sandboxes. -Please download the latest release and set it up with the Sandboxie.ini as instructed in the README.md of the project. - Um die API Protokollierung zu nutzen, muss die LogApiDll von https://github.com/sandboxie-plus/LogApiDll mit einer oder mehrerer Box(en) eingerichtet werden. -Bitte die neuste Version herunterladen und entsprechend der Anweisungen in der README.md des Projekts in der Sandboxie.ini einrichten. - - - - Error Status: %1 - Fehler Code: %1 - - - - Can not create snapshot of an empty sandbox - Kann keinen Schnappschuss von einer leeren Box erstellen - - - - A sandbox with that name already exists - Es existiert bereits eine Sandbox mit diesem Namen - - - - <p>Sandboxie-Plus is an open source continuation of Sandboxie.</p><p></p><p>Visit <a href="https://sandboxie-plus.com">sandboxie-plus.com</a> for more information.</p><p></p><p></p><p></p><p>Icons from <a href="https://icons8.com">icons8.com</a></p><p></p> - <p>Sandboxie-Plus ist eine OpenSource-Fortsetzung von Sandboxie.</p><p></p><p>Besuche <a href="https://sandboxie-plus.com">sandboxie-plus.com</a> für weitere Informationen.</p><p></p><p></p><p></p><p>Icons von <a href="https://icons8.com">icons8.com</a></p><p></p> - - - - Failed to execute: %1 - Fehlschlag beim Ausführen von: %1 - - - - Failed to communicate with Sandboxie Service: %1 - Fehler beim Kommunizieren mit Sandbox-Dienst: %1 - - - - Failed to copy configuration from sandbox %1: %2 - Fehler beim Kopieren der Konfiguration von Sandbox %1: %2 - - - - A sandbox of the name %1 already exists - Es existiert bereits eine Sandbox mit dem Namen %1 - - - - Failed to delete sandbox %1: %2 - Fehler beim Löschen der Sandbox %1: %2 - - - - The sandbox name can not be longer than 32 characters. - Der Name der Sandbox darf nicht länger als 32 Zeichen sein. - - - - The sandbox name can not be a device name. - Der Name der Sandbox darf kein Gerätename (device name) sein. - - - - The sandbox name can contain only letters, digits and underscores which are displayed as spaces. - Der Name der Sandbox darf nur Buchstaben, Zahlen und Unterstriche, welche als Leerstellen angezeigt werden, enthalten. - - - - Failed to terminate all processes - Konnte nicht alle Prozesse beenden - - - - Delete protection is enabled for the sandbox - Löschschutz ist für diese Sandbox aktiviert - - - - Error deleting sandbox folder: %1 - Fehler beim Löschen von Sandbox-Ordner: %1 - - - - A sandbox must be emptied before it can be renamed. - Eine Sandbox muss geleert werden, bevor Sie gelöscht werden kann. - - - - A sandbox must be emptied before it can be deleted. - Eine Sandbox muss geleert werden, bevor sie umbenannt werden kann. - - - - Failed to move directory '%1' to '%2' - Konnte Ordner '%1' nicht nach '%2' verschieben - - - - This Snapshot operation can not be performed while processes are still running in the box. - Der Schnappschuss kann nicht erstellt werden, während Prozesse in dieser Box laufen. - - - - Failed to create directory for new snapshot - Konnte den Ordner für den neuen Schnappschuss (Snapshot) nicht erstellen - - - - Failed to copy RegHive - Konnte RegHive nicht kopieren - - - - Snapshot not found - Schnappschuss (Snapshot) nicht gefunden - - - - Error merging snapshot directories '%1' with '%2', the snapshot has not been fully merged. - Fehler beim Zusammenführen der Schnappschuss Ordner: '%1' with '%2', der Schnappschuss wurde nicht vollständig zusammengeführt. - - - - Failed to remove old snapshot directory '%1' - Konnte alten Schnappschuss-Ordner '%1' nicht entfernen - - - - Failed to remove old RegHive - Konnte alten RegHive nicht entfernen - - - - You are not authorized to update configuration in section '%1' - Sie sind nicht berechtigt die Konfiguration in Sektion '%1' zu aktualisieren - - - - Failed to set configuration setting %1 in section %2: %3 - Fehler beimSetzen der Konfigurationsoption %1 in Sektion %2: %3 - - - - Unknown Error Status: %1 - Unbekannter Fehlerstatus: %1 - - - - Don't show this announcement in the future. - Diese Ankündigung zukünftig nicht mehr zeigen. - - - - Ignore this update, notify me about the next one. - Dieses Update ignorieren, über das nächste Update benachrichtigen. - - - - No new updates found, your Sandboxie-Plus is up-to-date. - Keine Updates gefunden, Sandboxie-Plus ist aktuell. - - - - <p>New Sandboxie-Plus has been downloaded to the following location:</p><p><a href="%2">%1</a></p><p>Do you want to begin the installation? If any programs are running sandboxed, they will be terminated.</p> - <p>Neue Version von Sandboxie-Plus wurde heruntergeladen zu:</p><p><a href="%2">%1</a></p><p>Möchten Sie mit der Installation beginnen? Falls Programme in einer Sandbox laufen, werden diese beendet.</p> - - - - - - - - - - Don't show this message again. - Diese Meldung nicht mehr anzeigen. - - - - - - Sandboxie-Plus - Error - Sandboxie-Plus - Fehler - - - - Maintenance operation %1 - Wartungsvorgang %1 - - - - Maintenance operation Successful - Wartungsvorgang erfolgreich - - - - Do you want to check if there is a new version of Sandboxie-Plus? - Möchten Sie prüfen, ob es eine neue Version von Sandboxie-Plus gibt? - - - - Driver version: %1 - Treiber version: %1 - - - - - Portable - - Portable - - - - Sbie Directory: %1 - Sbie Ordner: %1 - - - - Api Call Log - API Aufrufprotokoll - - - - Cleanup Processes - Prozesse aufräumen - - - - Cleanup Message Log - Nachrichtenprotokoll aufräumen - - - - Cleanup Resource Log - Ressourcenprotokoll aufräumen - - - - Cleanup Api Call Log - API Aufrufprotokoll aufräumen - - - - Cleanup - Aufräumen - - - - Select box: - Box auswählen: - - - - Loaded Config: %1 - Geladene Konfiguration: %1 - - - - PID %1: - PID %1: - - - - %1 (%2): - %1 (%2): - - - - Recovering file %1 to %2 - Stelle Datei %1 zu %2 wieder her - - - - Only Administrators can change the config. - Nur Administratoren können die Konfiguration editieren. - - - - Please enter the configuration password. - Bitte Konfigurationspasswort eingeben. - - - - Login Failed: %1 - Login fehlgeschlagen: %1 - - - - No sandboxes found; creating: %1 - Keine Sandbox(en) gefunden; erstelle: %1 - - - - Executing maintenance operation, please wait... - Führe Wartungsvorgang aus, bitte warten... - - - - Administrator rights are required for this operation. - Für diesen Vorgang werden Adminrechte benötigt. - - - - Failed to connect to the driver - Fehler beim Verbinden mit dem Treiber - - - - An incompatible Sandboxie %1 was found. Compatible versions: %2 - Eine inkompatible Version von Sandboxie %1 wurde gefunden. Kompatible Versionen: %2 - - - - Can't find Sandboxie installation path. - Kann Installationspfad von Sandboxie nicht finden. - - - - Can't remove a snapshot that is shared by multiple later snapshots - Es kann kein Schnappschuss gelöscht werden der von mehreren späteren Schnappschüssen geteilt wird - - - - Operation failed for %1 item(s). - Vorgang für %1 Element(e) fehlgeschlagen. - - - - Do you want to open %1 in a sandboxed (yes) or unsandboxed (no) Web browser? - Möchten Sie %1 in einem sandgeboxten (Ja) oder in einem nicht gesandboxten (Nein) Browser öffnen? - - - - Remember choice for later. - Die Auswahl für später merken. - - - - Checking for updates... - Prüfe auf Updates... - - - - server not reachable - Server nicht erreichbar - - - - - Failed to check for updates, error: %1 - Prüfung auf Updates fehlgeschlagen, Fehler: %1 - - - - <p>There is a new version of Sandboxie-Plus available.<br /><font color='red'>New version:</font> <b>%1</b></p> - <p>Es it eine neue Version von Sandboxie-Plus verfügbar.<br /><font color='red'>Neue Versions:</font> <b>%1</b></p> - - - - <p>Do you want to download the latest version?</p> - <p>Möchten Sie die neuste Version herunterladen?</p> - - - - <p>Do you want to go to the <a href="%1">download page</a>?</p> - <p>Möchten Sie die <a href="%1">Downloadseite</a> besuchen?</p> - - - - Downloading new version... - Lade neue Version herunter... - - - - Failed to download update from: %1 - Download des Updates von: %1 fehlgeschlagen - - - - <h3>About Sandboxie-Plus</h3><p>Version %1</p><p>Copyright (c) 2020-2021 by DavidXanatos</p> - <h3>Über Sandboxie-Plus</h3><p>Version %1</p><p>Copyright (c) 2020-2021 by DavidXanatos</p> - - - - CSbieModel - - - Box Groupe - Box Group - Boxgruppe - - - - Name - Name - - - - Process ID - Prozess ID - - - - Status - Status - - - - Title - Titel - - - - Start Time - Startzeit - - - - Path / Command Line - Pfad / Kommandozeile - - - - CSbieProcess - - - Terminated - Beendet - - - - Running - Laufend - - - - CSbieView - - - Create New Box - Neue Box erstellen - - - - Add Group - Gruppe hinzufügen - - - - Remove Group - Gruppe entfernen - - - - Run - Starten - - - - Run Program - Programm starten - - - - Run from Start Menu - Aus Startmenü starten - - - - Run Web Browser - Internetbrowser starten - - - - Run eMail Client - E-Mail Programm starten - - - - Run Explorer - Explorer starten - - - - Run Cmd.exe - Cmd.exe starten - - - - Terminate All Programs - Alle Prozesse beenden - - - - - Create Shortcut - Verknüpfung erstellen - - - - Explore Content - Inhalt anzeigen - - - - Snapshots Manager - Schnappschussmanager - - - - Recover Files - Dateien wiederherstellen - - - - Delete Content - Inhalte löschen - - - - Sandbox Presets - Sandboxvorgaben - - - - Enable API Call logging - Aktiviere API-Aufrufprotokoll - - - - Block Internet Access - Blockiere Internetzugriff - - - - Allow Network Shares - Erlaube Netzwerkfreigaben - - - - Drop Admin Rights - Adminrechte abgeben - - - - Sandbox Options - Sandboxeinstellungen - - - - Rename Sandbox - Sandbox umbenennen - - - - Move to Group - Zu Gruppe bewegen - - - - Remove Sandbox - Sandbox entfernen - - - - Terminate - Beenden - - - - Preset - Vorgabe - - - - Pin to Run Menu - An das Starten-Menü anheften - - - - Block and Terminate - Blockieren und Beenden - - - - Allow internet access - Erlaube Internetzugriff - - - - Force into this sandbox - In dieser Sandbox erzwingen - - - - Set Linger Process - Setze verweilende Programme - - - - Set Leader Process - Setze primäre Programme - - - - - Don't show this message again. - Diese Meldung nicht mehr anzeigen. - - - - This Sandbox is already empty. - Diese Sandbox ist bereits leer. - - - - Do you want to delete the content of the selected sandbox? - Möchten Sie den Inhalt der ausgewählten Sandbox löschen? - - - - Do you really want to delete the content of multiple sandboxes? - Möchten Sie wirklich die Inhalte von mehreren Sandboxen löschen? - - - - Do you want to terminate all processes in the selected sandbox(es)? - Möchten Sie alle Prozesse in der/den ausgewählten Sandbox(en) beenden? - - - - This box does not have Internet restrictions in place, do you want to enable them? - Diese Sandbox hat keine Internetbeschränkungen, möchten Sie diese aktivieren? - - - - This sandbox is disabled, do you want to enable it? - Diese Sandbox ist deaktiviert. Möchten Sie diese aktivieren? - - - - File root: %1 - - Dateiquelle: %1 - - - - - Registry root: %1 - - Registry-Quelle: %1 - - - - - IPC root: %1 - - IPC-Quelle: %1 - - - - - Options: - - Optionen: - - - - - [None] - [Kein(e)] - - - - Please enter a new group name - Bitte einen Namen für die neue Gruppe eingeben - - - - Do you really want to remove the selected group(s)? - Möchten Sie wirklich die ausgewählte(n) Gruppe(n) entfernen? - - - - Please enter a new name for the Sandbox. - Bitte einen Namen für die neue Sandbox eingeben. - - - - Do you really want to remove the selected sandbox(es)? - Möchten Sie wirklich die ausgewählte(n) Sandbox(en) entfernen? - - - - - Create Shortcut to sandbox %1 - Verknüpfung zu Sandbox %1 erstellen - - - - Do you want to %1 the selected process(es) - Möchten Sie die ausgewählten Prozesse %1 - - - - CSettingsWindow - - - Sandboxie Plus - Settings - Sandboxie-Plus - Settings - Sandboxie Plus - Einstellungen - - - - Close to Tray - In den Tray schließen - - - - Prompt before Close - Rückfrage vor dem Schließen - - - - Close - Schließen - - - - Please enter the new configuration password. - Bitte ein Passwort für die neue Konfiguration eingeben. - - - - Please re-enter the new configuration password. - Bitte das neue Konfigurationspasswort wiederholen. - - - - Passwords did not match, please retry. - Passwörter stimmten nicht überein, bitte erneut versuchen. - - - - Process - Prozess - - - - Folder - Ordner - - - - Please enter a program file name - Bitte den Dateinamen eines Programms eingeben - - - - - Select Directory - Ordner auswählen - - - - CSnapshotsWindow - - - %1 - Snapshots - %1 - Schnappschüsse - - - - Snapshot - Schnappschuss - - - - Please enter a name for the new Snapshot. - Bitte einen Namen für den neuen Schnappschuss eingeben. - - - - New Snapshot - Neuer Schnappschuss - - - - Do you really want to switch the active snapshot? Doing so will delete the current state! - Möchten Sie wirklich den aktiven Schnappschuss wechseln? Dies führt zur Löschung des aktuellen Standes! - - - - Do you really want to delete the selected snapshot? - Möchten Sie wirklich die ausgewählten Schnappschüsse entfernen? - - - - NewBoxWindow - - - SandboxiePlus new box - Sandboxie-Plus new box - SandboxiePlus Neue Box - - - - Select restriction/isolation template: - Restriktions- oder Isolationsvorlage auswählen: - - - - Copy options from an existing box: - Kopiere Optionen von existierender Sandbox: - - - - Sandbox Name: - Sandboxname: - - - - Initial sandbox configuration: - Initiale Sandboxkonfiguration: - - - - OptionsWindow - - - SandboxiePlus Options - Sandboxie-Plus Options - SandboxiePlus Optionen - - - - General Options - Generelle Optionen - - - - Box Options - Boxoptionen - - - - Sandboxed window border: - Fensterrahmen innerhalb der Sandbox: - - - - px Width - px Breite - - - - Appearance - Erscheinung - - - - Sandbox Indicator in title: - Sandboxindikator im Fenstertitel: - - - - - - Protect the system from sandboxed processes - Schütze das System vor Prozessen in der Sandbox - - - - General restrictions - Generelle Restriktionen - - - - Block network files and folders, unless specifically opened. - Blockiere Netzwerkdateien und Ordner, außer diese wurden explizit geöffnet. - - - - Drop rights from Administrators and Power Users groups - Die Rechte der Administratoren und Hauptbenutzergruppe einschränken - - - - Prevent change to network and firewall parameters - Verhindere Änderungen an den Netzwerk- und Firewall-Einstellungen - - - - Run Menu - Startmenü - - - - You can configure custom entries for the sandbox run menu. - Sie können eigene Einträge in dem Startmenü der Sandbox einrichten. - - - - - - - - - Name - Name - - - - Command Line - Kommandozeile - - - - - - - - - - - Remove - Entfernen - - - - Add Command - Kommando hinzufügen - - - - File Options - Dateioptionen - - - - Copy file size limit: - Dateigrößenbeschränkung zum Kopieren: - - - - kilobytes - Kilobytes - - - - Protect this sandbox from deletion or emptying - Diese Sandbox vor Löschung und Leerung schützen - - - - Auto delete content when last sandboxed process terminates - Inhalte automatisch löschen, wenn der letzte Prozess in der Sandbox beendet wurde - - - - File Migration - Dateimigration - - - - Issue message 2102 when a file is too large - Meldung 2102 ausgeben, wenn die Datei zu groß ist - - - - Box Delete options - Box Löschoptionen - - - - Program Groups - Programmgruppen - - - - Add Group - Gruppe hinzufügen - - - - - - Add Program - Programm hinzufügen - - - - You can group programs together and give them a group name. Program groups can be used with some of the settings instead of program names. - Sie können Programme gruppieren und ihnen einen Gruppennamen geben. Programmgruppen können in den Einstellungen an Stelle der Programmnamen genutzt werden. - - - - Forced Programs - Erzwungene Programme - - - - Force Folder - Erzwungene Ordner - - - - - - Path - Pfad - - - - Force Program - Erzwungenes Programm - - - - - - - Show Templates - Zeige Vorlagen - - - - Programs entered here, or programs started from entered locations, will be put in this sandbox automatically, unless thay are explicitly started in another sandbox. - Programme die hier gelistet sind oder von den angegeben Ordnern gestartet werden, werden automatisch in dieser Sandbox ausgeführt, solange sie nicht explizit in einer anderen Sandbox gestartet werden. - - - - Stop Behaviour - Stopverhalten - - - - - - Remove Program - Programm entfernen - - - - Add Leader Program - Füge primäre Programme hinzu - - - - Add Lingering Program - Füge verweilende Programme hinzu - - - - - - - Type - Typ - - - - Block access to the printer spooler - Zugriff auf die Druckerwarteschlange blockieren - - - - Allow the print spooler to print to files outside the sandbox - Der Druckerwarteschlange erlauben als Dateien außerhalb der Sandbox zu drucken (Print to file) - - - - Printing - Drucken - - - - Remove spooler restriction, printers can be installed outside the sandbox - Entferne Druckerwarteschlangenrestriktionen, Drucker können außerhalb der Sandbox installiert werden - - - - - Add program - Füge Programm hinzu - - - - Auto Start - Autostart - - - - Here you can specify programs and/or services that are to be started automatically in the sandbox when it is activated - Hier können Sie Programme und/oder Dienste angeben, welche automatisch in der Sandbox gestartet werden, wenn diese aktiviert wird - - - - Add service - Füge Dienst hinzu - - - - Lingering programs will be automatically terminated if they are still running after all other processes have been terminated. - -If leader processes are defined, all others are treated as lingering processes. - Verweilende Programme werden automatisch beendet, wenn diese noch laufen, nachdem alle anderen Prozesse bereits beendet wurden. - -Falls primäre Programme/Prozesse definiert wurden, werden alle anderen als verweilende Prozesse behandelt. - - - - Start Restrictions - Starteinschränkungen - - - - Issue message 1308 when a program fails to start - Gebe Meldung 1308 aus, wenn ein Programmstart fehlschlägt - - - - Allow only selected programs to start in this sandbox. * - Erlaube nur ausgewählten Prozessen in dieser Sandbox zu starten. * - - - - Prevent selected programs from starting in this sandbox. - Verhindere die Ausführung von ausgewählten Programmen in dieser Sandbox. - - - - Allow all programs to start in this sandbox. - Erlaube allen Programmen in dieser Sandbox zu starten. - - - - * Note: Programs installed to this sandbox won't be able to start at all. - * Notiz: Programme, welche in dieser Sandbox installiert werden, werden nicht in der Lage sein zu starten. - - - - Internet Restrictions - Internetbeschränkungen - - - - Issue message 1307 when a program is denied internet access - Gebe Meldung 1307 aus, wenn einem Programm der Internetzugriff verweigert wurde - - - - Block internet access for all programs except those added to the list. - Blockiere Internetzugriff für alle Programme, außer sie sind hier gelistet. - - - - Note: Programs installed to this sandbox won't be able to access the internet at all. - Notiz: Programme, welche in dieser Sandbox installiert werden, werden nicht in der Lage sein auf das Internet zu zu greifen. - - - - Prompt user whether to allow an exemption from the blockade. - Den Nutzer fragen, ob er eine Ausnahme von dieser Blockade erlauben will. - - - - Resource Access - Ressourcenzugriff - - - - Program - Programm - - - - Access - Zugriff - - - - Add Reg Key - Füge Registry-Schlüssel hinzu - - - - Add File/Folder - Füge Datei/Ordner hinzu - - - - Add Wnd Class - Füge Fensterklasse hinzu - - - - Add COM Object - Füge COM-Objekt hinzu - - - - Add IPC Path - Füge IPC-Pfad hinzu - - - - Move Up - Nach oben verschieben - - - - Move Down - Nach unten verschieben - - - - Configure which processes can access what resources. Double click on an entry to edit it. -'Direct' File and Key access only applies to program binaries located outside the sandbox. -Note that all Close...=!<program>,... exclusions have the same limitations. -For files access you can use 'Direct All' instead to make it apply to all programs. - Translated close to what is written in the source - Konfigurieren, welche Prozesse auf welche Ressourcen zugreifen können. Doppelklick um einen Eintrag zu bearbeiten. -'Direkter' Datei und Schlüsselzugriff trifft nur auf Programmdateien zu, die sich außerhalb der Sandbox befinden. -Beachte, dass alle Programme schließen...=!<Programm>,... Ausnahmen die gleichen Beschränkungen haben. -Zum Dateizugriff können Sie 'Direkt Alle' verwenden um für alle Programme zu zu treffen. - - - - File Recovery - Dateiwiederherstellung - - - - Add Folder - Füge Ordner hinzu - - - - Ignore Extension - Ignoriere Erweiterungen - - - - Ignore Folder - Ignoriere Ordner - - - - Enable Immediate Recovery prompt to be able to recover files as soon as thay are created. - Enable Immediate Recovery prompt to be able to recover files as soon as they are created. - Aktivere Sofortwiederherstellungsabfrage, um alle Dateien sofort wiederherzustellen, sobald sie erzeugt werden. - - - - You can exclude folders and file types (or file extensions) from Immediate Recovery. - Sie können Ordner und Dateitypen (oder Dateierweiterungen) von der Sofortwiederherstellung ausnehmen. - - - - When the Quick Recovery function is invoked, the following folders will be checked for sandboxed content. - Wenn die Schnellwiederherstellungsfunktion aufgerufen wird, werden die folgenden Ordner in der Sandbox auf Inhalte geprüft. - - - - Advanced Options - Erweiterte Optionen - - - - Miscellaneous - Diverses - - - - Do not start sandboxed services using a system token (recommended) - Sandgeboxte Dienste nicht mit einem Systemtoken starten (empfohlen) - - - - Allow access to Smart Cards - Zugriff auf SmartCards erlauben - - - - Force usage of custom dummy Manifest files (legacy behaviour) - Erzwinge die Verwendung von eigenen dummy Manifestdateien (veraltetes Verhalten) - - - - Add sandboxed processes to job objects (recommended) - Füge gesandboxte Prozesse zu Job-Objekten hinzu (empfohlen) - - - - Limit access to the emulated service control manager to privileged processes - Beschränke Zugriff auf emulierte Dienstkontrollmanager auf privilegierte Prozesse - - - - Open System Protected Storage - Öffne systemgeschützen Speicherort - - - - Open Windows Credentials Store - Öffne Windows Anmeldeinformationsverwaltung - - - - Don't alter window class names created by sandboxed programs - Fensterklassen von gesandboxten Programmen nicht ändern - - - - - Protect the sandbox integrity itself - Die Sandboxintegrität selbst schützen - - - - Sandbox protection - Sandboxschutz - - - - Compatibility - Kompatibilität - - - - Protect sandboxed SYSTEM processes from unprivileged unsandboxed processes - Schütze sandgeboxte SYSTEM-Prozesse vor unprivilegierten nicht sandgeboxten Prozessen - - - - Hide Processes - Verstecke Prozesse - - - - Add Process - Prozess hinzufügen - - - - Hide host processes from processes running in the sandbox. - Verstecke Host-Prozesse vor Prozessen in der Sandbox. - - - - Don't allow sandboxed processes to see processes running in other boxes - Nicht erlauben, dass sandgeboxte Prozesse die Prozesse in anderen Boxen sehen können - - - - Users - Benutzer - - - - Restrict Resource Access monitor to administrators only - Beschränke den Ressourcenzugriffsmonitor auf Administratoren - - - - Add User - Benutzer hinzufügen - - - - Remove User - Benutzer entfernen - - - - Add user accounts and user groups to the list below to limit use of the sandbox to only those accounts. If the list is empty, the sandbox can be used by all user accounts. - -Note: Forced Programs and Force Folders settings for a sandbox do not apply to user accounts which cannot use the sandbox. - Füge Nutzerkonten und -gruppen der Liste hinzu, um die Benutzung der Sandbox auf diese Konten zu beschränken.Falls die Liste leer ist, kann die Sandbox von allen Konten genutzt werden. - -Notiz: Erzwungene Programme und Ordner für eine Sandbox finden keine Anwendung auf Konten, die diese Sandbox nicht nutzen können. - - - - Tracing - Rückverfolgung - - - - Pipe Trace - Pipe Rückverfolgung - - - - Log all access events as seen by the driver to the resource access log. - -This options set the event mask to "*" - All access events -You can customize the logging using the ini by specifying -"A" - Allowed accesses -"D" - Denied accesses -"I" - Ignore access requests -instead of "*". - Protokolliere jeden Zugriffsevent, wie er durch den Treiber gesehen wird, im Ressourcenzugriffsprotokoll. - -Diese Optionen setzen die Eventmaske auf "*" - Alle Zugriffsevents -Sie können die Protokollierung in der INI anpassen in den Sie wie folgt wählen -"A" - Erlaubte Zugriffe -"D" - Verweigerte Zugriffe -"I" - Ignorierte Zugriffsanfragen -an Stelle von "*". - - - - Access Tracing - Zugriffsrückverfolgung - - - - GUI Trace - GUI Rückverfolgung - - - - Key Trace - Schlüsselrückverfolgung - - - - File Trace - Dateirückverfolgung - - - - Lift security restrictions - Sicherheitsrestriktionen aufheben - - - - Sandbox isolation - Sandboxisolation - - - - Auto Exec - Autoausführen - - - - Here you can specify a list of commands that are executed every time the sandbox is initially populated. - Hier können Sie eine Liste mit Kommandos angeben, welche jedes Mal ausgeführt werden, wenn die Sandbox initial geladen wird. - - - - IPC Trace - IPC-Rückverfolgung - - - - Log Debug Output to the Trace Log - Protokolliere Debug-Ausgabe in das Rückverfolgungsprotokoll - - - - COM Class Trace - COM-Klassenrückverfolgung - - - - <- for this one the above does not apply - <- für dieses findet das Obige keine Anwendung - - - - Debug - Debug - - - - WARNING, these options can disable core security guarantees and break sandbox security!!! - WARNUNG, diese Optionen können Kernsicherheitsgarantien deaktivieren und die Sandboxsicherheit zerstören!!! - - - - These options are intended for debugging compatibility issues, please do not use them in production use. - Diese Optionen sind nur zur Fehlersuche bei Kompatibilitätsproblemen gedacht, bitte nicht im produktiven Einsatz verwenden. - - - - App Templates - Programmvorlagen - - - - Filter Categories - Filterkategorien - - - - Text Filter - Textfilter - - - - Category - Kategorie - - - - This list contains a large amount of sandbox compatibility enhancing templates - Diese Liste enthält eine große Menge an Vorlagen, welche die Kompatibilität der Sandbox verbessern - - - - Edit ini Section - INI Sektion bearbeiten - - - - Edit ini - INI bearbeiten - - - - Cancel - Abbrechen - - - - Save - Speichern - - - - PopUpWindow - - - SandboxiePlus Notifications - Sandboxie-Plus Notifications - SandboxiePlus Benachrichtigungen - - - - QObject - - - Drive %1 - Laufwerk %1 - - - - RecoveryWindow - - - SandboxiePlus Settings - Sandboxie-Plus Settings - SandboxiePlus-Einstellungen - - - - Add Folder - Ordner hinzufügen - - - - Refresh - Aktualisieren - - - - Show All Files - Zeige alle Dateien - - - - TextLabel - Beschriftungstext - - - - Recover - Wiederherstellen - - - - Recover to - Wiederherstellen zu - - - - Delete all - Alle löschen - - - - Close - Schließen - - - - SettingsWindow - - - SandboxiePlus Settings - Sandboxie-Plus Settings - SandboxiePlus Einstellungen - - - - General Options - Generelle Optionen - - - - Show Notifications for relevant log Messages - Zeige Benachrichtigungen für relevante Protokollmitteilungen - - - - Show Sys-Tray - Zeige System-Tray - - - - Use Dark Theme - Dunkles Farbschema benutzen - - - - Add 'Run Sandboxed' to the explorer context menu - Füge 'In Sandbox starten' zum Kontextmenü des Explorers hinzu - - - - On main window close: - Beim Schließen des Hauptfensters: - - - - Restart required (!) - Erfordert Neustart (!) - - - - Watch Sandboxie.ini for changes - Sandboxie.ini auf Änderungen überwachen - - - - Tray options - Tray-Optionen - - - - Check periodically for updates of Sandboxie-Plus - Periodisch nach Update für Sandboxie-Plus suchen - - - - Open urls from this ui sandboxed - Open URLs from this UI sandboxed - Öffne URLs aus dieser Benutzerschnittstelle in einer Sandbox - - - - Advanced Options - Erweiterte Optionen - - - - Only Administrator user accounts can use Disable Forced Programs command - Nur Administratoren können das Erzwingen von Programmen deaktivieren - - - - Only Administrator user accounts can make changes - Nur Administratoren können Änderungen vornehmen - - - - Config protection - Konfigurationsschutz - - - - Password must be entered in order to make changes - Passwort muss für Änderungen eingegeben werden - - - - Change Password - Passwort ändern - - - - Sandbox default - Sandboxstandard - - - - Sandbox <a href="sbie://docs/filerootpath">file system root</a>: - Sandbox <a href="sbie://docs/filerootpath">Dateisystemquelle</a>: - - - - Sandbox <a href="sbie://docs/ipcrootpath">ipc root</a>: - Sandbox <a href="sbie://docs/ipcrootpath">IPC-Quelle</a>: - - - - Sandbox <a href="sbie://docs/keyrootpath">registry root</a>: - Sandbox <a href="sbie://docs/keyrootpath">Registy-Quelle</a>: - - - - Separate user folders - Trenne Benutzerordner - - - - Clear password when main window becomes hidden - Leere Passwort, wenn das Hauptfenster versteckt wird - - - - Start UI with Windows - Starte Benutzeroberfläche mit Windows - - - - Start UI when a sandboxed process is started - Starte Benutzeroberfläche, wenn ein Prozess in einer Sandbox gestartet wird - - - - Show first recovery window when emptying sandboxes - Zeige Wiederherstellungsfenster, vor dem Leeren der Sandboxen - - - - Portable root folder - Portabler Quellordner - - - - ... - ... - - - - Other settings - Andere Einstellungen - - - - Program Restrictions - Programmrestriktionen - - - - - Name - Name - - - - Path - Pfad - - - - Remove Program - Programm entfernen - - - - Add Program - Programm hinzufügen - - - - When any of the following programs is launched outside any sandbox, Sandboxie will issue message SBIE1301. - Wenn eines der folgenden Programme außerhalb einer Sandbox gestartet wird, wird Sandboxie die Meldung SBIE1301 ausgeben. - - - - Add Folder - Ordner hinzufügen - - - - Prevent the listed programs from starting on this system - Verhindere den Start der aufgeführten Programme auf diesem System - - - - Issue message 1308 when a program fails to start - Gebe Meldung 1308 aus, wenn ein Programmstart fehlschlägt - - - - Software Compatibility - Softwarekompatibilität - - - - In the future, don't check software compatibility - Zukünftig nicht auf Softwarekompatibilität prüfen - - - - Enable - Aktiveren - - - - Disable - Deaktivieren - - - - Sandboxie has detected the following software applications in your system. Click OK to apply configuration settings, which will improve compatibility with these applications. These configuration settings will have effect in all existing sandboxes and in any new sandboxes. - Sandboxie hat die folgenden Anwendungen auf dem System gefunden. OK klicken zur Anwendung der Konfigurationseinstellungen, welche die Softwarekompatibilität mit diesen Anwendungen verbessert. Diese Konfigurationseinstellungen haben Auswirkungen auf alle existierenden und neuen Sandboxen. - - - - SnapshotsWindow - - - SandboxiePlus Settings - Sandboxie-Plus Settings - SandboxiePlus Einstellungen - - - - Selected Snapshot Details - Ausgewählte Schnappschussdetails - - - - Name: - Name: - - - - Description: - Beschreibung: - - - - Snapshot Actions - Schnappschussaktionen - - - - Remove Snapshot - Schnappschuss entfernen - - - - Take Snapshot - Schnappschuss erstellen - - - - Go to Snapshot - Gehe zum Schnappschuss - - - +Full path: %4 + Migrating a large file %1 into the sandbox %2, %3 left. +Full path: %4 + Übertrage große Datei %1 in die Sandbox %2, %3 verbleiben. +Vollständiger Pfad: %4 + + + + an UNKNOWN process. + Ein UNBEKANNTER Prozess. + + + + %1 (%2) + same as source + %1 (%2) + + + + + UNKNOWN + UNBEKANNT + + + + CRecoveryWindow + + + %1 - File Recovery + %1 - Dateiwiederherstellung + + + + File Name + Dateiname + + + + File Size + Dateigröße + + + + Full Path + Vollständiger Pfad + + + + + Select Directory + Ordner auswählen + + + + One or more selected files are located on a network share, and must be recovered to a local drive, please select a folder to recover all selected files to. + Eine oder mehrere ausgewählte Dateien befinden sich auf Netzwerkpfaden und müssen zur Wiederherstellung lokal gespeichert werden. Bitte einen Ordner auswählen, um die ausgewählten Dateien darin wiederherzustellen. + + + + There are %1 files and %2 folders in the sandbox, occupying %3 bytes of disk space. + Es befinden sich %1 Dateien und %2 Ordner in der Sandbox, welche %3 bytes an Speicherplatz belegen. + + + + CResMonModel + + + Unknown + Unbekannte + + + + Process + Prozess + + + + Time Stamp + Zeitstempel + + + + Type + Typ + + + + Value + Wert + + + + Status + Status + + + + CSandBoxPlus + + + Disabled + Deaktiviert + + + + NOT SECURE (Debug Config) + NICHT SICHER (Debug Konfiguration) + + + + Reduced Isolation + Reduzierte Isolation + + + + Enhanced Isolation + Erweiterte Isolation + + + + API Log + API Protokoll + + + + No INet + Kein Internet + + + + Net Share + Kept original for lack of good German wording + Netzwerkfreigabe (Net share) + + + + No Admin + Kein Admin + + + + Normal + Normal + + + + CSandMan + + + + Sandboxie-Plus v%1 + Sandboxie-Plus v%1 + + + + Reset Columns + Spalten zurücksetzen + + + + Copy Cell + Zelle kopieren + + + + Copy Row + Spalte kopieren + + + + Copy Panel + Tafel kopieren + + + + Time|Message + Zeit|Nachricht + + + + Sbie Messages + Sbie Nachrichten + + + + Resource Monitor + Ressourcenmonitor + + + + Show/Hide + Zeigen/Verstecken + + + + + Disable Forced Programs + Deaktiviere erzwungene Programme + + + + &Sandbox + &Sandbox + + + + Create New Box + Neue Box erstellen + + + + Terminate All Processes + Alle Prozesse beenden + + + + Window Finder + Fensterfinder + + + + &Maintenance + &Wartung + + + + Connect + Verbinden + + + + Disconnect + Trennen + + + + Stop All + Alle stoppen + + + + &Advanced + &Erweitert + + + + Install Driver + Treiber installieren + + + + Start Driver + Treiber starten + + + + Stop Driver + Treiber stoppen + + + + Uninstall Driver + Treiber deinstallieren + + + + Install Service + Dienst installieren + + + + Start Service + Dienst starten + + + + Stop Service + Dienst stoppen + + + + Uninstall Service + Dienst deinstallieren + + + + Exit + Beenden + + + + &View + &Ansicht + + + + Simple View + Einfache Ansicht + + + + Advanced View + Erweiterte Ansicht + + + + Always on Top + Immer oben + + + + Show Hidden Boxes + Zeige versteckte Boxen + + + + Clean Up + Aufräumen + + + + Default sandbox not found; creating: %1 + + + + + <p>Do you want to go to the <a href="%1">info page</a>?</p> + + + + + Don't show this message anymore. + + + + + The selected window is running as part of program %1 in sandbox %2 + Das ausgewählte Fenster läuft als Teil des Programms %1 in der Sandbox %2 + + + + The selected window is not running as part of any sandboxed program. + Das ausgewählte Fenster läuft nicht als Teil eines Programms in einer Sandbox. + + + + Drag the Finder Tool over a window to select it, then release the mouse to check if the window is sandboxed. + Klicken und ziehen Sie das Finderwerkzeug über ein Fenster und lassen Sie die Maustaste los, um zu überprüfen, ob sich dieses Fenster in einer Sandbox befindet. + + + + Sandboxie-Plus - Window Finder + Sandboxie-Plus - Fensterfinder + + + + Keep terminated + Beendete behalten + + + + &Options + &Optionen + + + + Global Settings + Globale Einstellungen + + + + Reset all hidden messages + Alle ausgeblendeten Nachrichten zurücksetzen + + + + Edit ini file + .ini-Datei bearbeiten + + + + Reload ini file + .ini-Datei neu laden + + + + Resource Logging + Ressourcenprotokollierung + + + + API Call Logging + API Aufrufprotokollierung + + + + &Help + &Hilfe + + + + Support Sandboxie-Plus with a Donation + Sandboxie-Plus mit einer Spende unterstützen + + + + Visit Support Forum + Supportforum besuchen + + + + Online Documentation + Onlinedokumentation + + + + Check for Updates + Auf Updates prüfen + + + + About the Qt Framework + Über das Qt Framework + + + + + About Sandboxie-Plus + Über Sandboxie-Plus + + + + Do you want to close Sandboxie Manager? + Möchten Sie den Sandboxie-Manager schließen? + + + + Sandboxie-Plus was running in portable mode, now it has to clean up the created services. This will prompt for administrative privileges. + Sandboxie-Plus wurde im portablen Modus betrieben, nun müssen die erzeugten Dienste bereinigt werden, was Adminrechte benötigt. + + + + Failed to stop all Sandboxie components + Konnte nicht alle Sandboxiekomponenten stoppen + + + + Failed to start required Sandboxie components + Konnte nicht alle benötigten Sandboxiekomponenten starten + + + + Some compatibility templates (%1) are missing, probably deleted, do you want to remove them from all boxes? + Einige Kompatibilitätsvorlagen (%1) fehlen, möglicherweise wurden sie gelöscht. Möchten Sie diese aus allen Boxen entfernen? + + + + Cleaned up removed templates... + Entfernte Vorlagen aufgeräumt... + + + + Sandboxie-Plus was started in portable mode, do you want to put the SandBox folder into its parent directory? + Sandboxie-Plus wurde im portablen Modus gestartet, möchten Sie den Sandboxordner im übergeordneten Verzeichnis erstellen? + + + + - NOT connected + - NICHT verbunden + + + + The file %1 already exists, do you want to overwrite it? + Die Datei %1 existiert bereits, möchten Sie diese überschreiben? + + + + Do this for all files! + Tue dies für alle Dateien! + + + + Failed to recover some files: + + Konnte nicht alle Dateien wiederherstellen: + + + + + Do you want to terminate all processes in all sandboxes? + Möchten Sie alle Prozesse in allen Sandboxen beenden? + + + + Terminate all without asking + Alle ohne Rückfrage beenden + + + + Please enter the duration for disabling forced programs. + Bitte Dauer eingeben, in der erzwungene Programme deaktiviert sind. + + + + Sandboxie-Plus was started in portable mode and it needs to create necessary services. This will prompt for administrative privileges. + Sandboxie-Plus wurde im portablen Modus gestartet, nun müssen die benötigten Dienste erzeugt werden, was Adminrechte benötigt. + + + + Do you also want to reset hidden message boxes (yes), or only all log messages (no)? + Möchten Sie auch die ausgeblendeten Mitteilungsboxen zurücksetzen (Ja) oder nur alle Protokollnachrichten (Nein)? + + + + The changes will be applied automatically whenever the file gets saved. + Die Änderungen werden automatisch angewendet, sobald die Datei gespeichert wird. + + + + The changes will be applied automatically as soon as the editor is closed. + Die Änderungen werden automatisch angewendet, sobald der Editor geschlossen wird. + + + + To use API logging you must first set up the LogApiDll from https://github.com/sandboxie-plus/LogApiDll with one or more sandboxes. +Please download the latest release and set it up with the Sandboxie.ini as instructed in the README.md of the project. + Um die API Protokollierung zu nutzen, muss die LogApiDll von https://github.com/sandboxie-plus/LogApiDll mit einer oder mehrerer Box(en) eingerichtet werden. +Bitte die neuste Version herunterladen und entsprechend der Anweisungen in der README.md des Projekts in der Sandboxie.ini einrichten. + + + + Error Status: %1 + Fehler Code: %1 + + + + Can not create snapshot of an empty sandbox + Kann keinen Schnappschuss von einer leeren Box erstellen + + + + A sandbox with that name already exists + Es existiert bereits eine Sandbox mit diesem Namen + + + + <p>Sandboxie-Plus is an open source continuation of Sandboxie.</p><p></p><p>Visit <a href="https://sandboxie-plus.com">sandboxie-plus.com</a> for more information.</p><p></p><p></p><p></p><p>Icons from <a href="https://icons8.com">icons8.com</a></p><p></p> + <p>Sandboxie-Plus ist eine OpenSource-Fortsetzung von Sandboxie.</p><p></p><p>Besuche <a href="https://sandboxie-plus.com">sandboxie-plus.com</a> für weitere Informationen.</p><p></p><p></p><p></p><p>Icons von <a href="https://icons8.com">icons8.com</a></p><p></p> + + + + Failed to execute: %1 + Fehler beim Ausführen von: %1 + + + + Failed to communicate with Sandboxie Service: %1 + Fehler beim Kommunizieren mit Sandbox-Dienst: %1 + + + + Failed to copy configuration from sandbox %1: %2 + Fehler beim Kopieren der Konfiguration von Sandbox %1: %2 + + + + A sandbox of the name %1 already exists + Es existiert bereits eine Sandbox mit dem Namen %1 + + + + Failed to delete sandbox %1: %2 + Fehler beim Löschen der Sandbox %1: %2 + + + + The sandbox name can not be longer than 32 characters. + Der Name der Sandbox darf nicht länger als 32 Zeichen sein. + + + + The sandbox name can not be a device name. + Der Name der Sandbox darf kein reservierter Gerätename (device name) sein. + + + + The sandbox name can contain only letters, digits and underscores which are displayed as spaces. + Der Name der Sandbox darf nur Buchstaben, Zahlen und Unterstriche, welche als Leerstellen angezeigt werden, enthalten. + + + + Failed to terminate all processes + Konnte nicht alle Prozesse beenden + + + + Delete protection is enabled for the sandbox + Löschschutz ist für diese Sandbox aktiviert + + + + Error deleting sandbox folder: %1 + Fehler beim Löschen von Sandbox-Ordner: %1 + + + + A sandbox must be emptied before it can be renamed. + Eine Sandbox muss geleert werden, bevor Sie gelöscht werden kann. + + + + A sandbox must be emptied before it can be deleted. + Eine Sandbox muss geleert werden, bevor sie umbenannt werden kann. + + + + Failed to move directory '%1' to '%2' + Konnte Ordner '%1' nicht nach '%2' verschieben + + + + This Snapshot operation can not be performed while processes are still running in the box. + Der Schnappschuss kann nicht erstellt werden, während Prozesse in dieser Box laufen. + + + + Failed to create directory for new snapshot + Konnte den Ordner für den neuen Schnappschuss (Snapshot) nicht erstellen + + + + Failed to copy RegHive + Konnte RegHive nicht kopieren + + + + Snapshot not found + Schnappschuss (Snapshot) nicht gefunden + + + + Error merging snapshot directories '%1' with '%2', the snapshot has not been fully merged. + Fehler beim Zusammenführen der Schnappschuss Ordner: '%1' with '%2', der Schnappschuss wurde nicht vollständig zusammengeführt. + + + + Failed to remove old snapshot directory '%1' + Konnte alten Schnappschuss-Ordner '%1' nicht entfernen + + + + Failed to remove old RegHive + Konnte alten RegHive nicht entfernen + + + + You are not authorized to update configuration in section '%1' + Sie sind nicht berechtigt die Konfiguration in Sektion '%1' zu aktualisieren + + + + Failed to set configuration setting %1 in section %2: %3 + Fehler beimSetzen der Konfigurationsoption %1 in Sektion %2: %3 + + + + Unknown Error Status: %1 + Unbekannter Fehlerstatus: %1 + + + + Don't show this announcement in the future. + Diese Ankündigung zukünftig nicht mehr zeigen. + + + Ignore this update, notify me about the next one. + Dieses Update ignorieren, über das nächste Update benachrichtigen. + + + + No new updates found, your Sandboxie-Plus is up-to-date. + Keine Updates gefunden, Sandboxie-Plus ist aktuell. + + + + <p>New Sandboxie-Plus has been downloaded to the following location:</p><p><a href="%2">%1</a></p><p>Do you want to begin the installation? If any programs are running sandboxed, they will be terminated.</p> + <p>Neue Version von Sandboxie-Plus wurde heruntergeladen zu:</p><p><a href="%2">%1</a></p><p>Möchten Sie mit der Installation beginnen? Falls Programme in einer Sandbox laufen, werden diese beendet.</p> + + + + + + + + + + Don't show this message again. + Diese Meldung nicht mehr anzeigen. + + + + + + Sandboxie-Plus - Error + Sandboxie-Plus - Fehler + + + + Maintenance operation %1 + Wartungsvorgang %1 + + + + Maintenance operation Successful + Wartungsvorgang erfolgreich + + + + Do you want to check if there is a new version of Sandboxie-Plus? + Möchten Sie prüfen, ob es eine neue Version von Sandboxie-Plus gibt? + + + + Driver version: %1 + Treiber version: %1 + + + + - Portable + - Portable + + + + Sbie Directory: %1 + Sbie Ordner: %1 + + + + Api Call Log + API Aufrufprotokoll + + + + Cleanup Processes + Prozesse aufräumen + + + + Cleanup Message Log + Nachrichtenprotokoll aufräumen + + + + Cleanup Resource Log + Ressourcenprotokoll aufräumen + + + + Cleanup Api Call Log + API Aufrufprotokoll aufräumen + + + + Cleanup + Aufräumen + + + + Select box: + Box auswählen: + + + + Loaded Config: %1 + Geladene Konfiguration: %1 + + + + PID %1: + PID %1: + + + + %1 (%2): + %1 (%2): + + + + Recovering file %1 to %2 + Stelle Datei %1 zu %2 wieder her + + + + Only Administrators can change the config. + Nur Administratoren können die Konfiguration editieren. + + + + Please enter the configuration password. + Bitte Konfigurationspasswort eingeben. + + + + Login Failed: %1 + Login fehlgeschlagen: %1 + + + No sandboxes found; creating: %1 + Keine Sandbox(en) gefunden; erstelle: %1 + + + + Executing maintenance operation, please wait... + Führe Wartungsvorgang aus, bitte warten... + + + + Administrator rights are required for this operation. + Für diesen Vorgang werden Adminrechte benötigt. + + + + Failed to connect to the driver + Fehler beim Verbinden mit dem Treiber + + + + An incompatible Sandboxie %1 was found. Compatible versions: %2 + Eine inkompatible Version von Sandboxie %1 wurde gefunden. Kompatible Versionen: %2 + + + + Can't find Sandboxie installation path. + Kann Installationspfad von Sandboxie nicht finden. + + + + Can't remove a snapshot that is shared by multiple later snapshots + Es kann kein Schnappschuss gelöscht werden der von mehreren späteren Schnappschüssen geteilt wird + + + + Operation failed for %1 item(s). + Vorgang für %1 Element(e) fehlgeschlagen. + + + + Do you want to open %1 in a sandboxed (yes) or unsandboxed (no) Web browser? + Möchten Sie %1 in einem sandgeboxten (Ja) oder in einem nicht gesandboxten (Nein) Browser öffnen? + + + + Remember choice for later. + Die Auswahl für später merken. + + + + Checking for updates... + Prüfe auf Updates... + + + + server not reachable + Server nicht erreichbar + + + + + Failed to check for updates, error: %1 + Prüfung auf Updates fehlgeschlagen, Fehler: %1 + + + + <p>There is a new version of Sandboxie-Plus available.<br /><font color='red'>New version:</font> <b>%1</b></p> + <p>Es it eine neue Version von Sandboxie-Plus verfügbar.<br /><font color='red'>Neue Versions:</font> <b>%1</b></p> + + + + <p>Do you want to download the latest version?</p> + <p>Möchten Sie die neuste Version herunterladen?</p> + + + + <p>Do you want to go to the <a href="%1">download page</a>?</p> + <p>Möchten Sie die <a href="%1">Downloadseite</a> besuchen?</p> + + + + Downloading new version... + Lade neue Version herunter... + + + + Failed to download update from: %1 + Download des Updates von: %1 fehlgeschlagen + + + + <h3>About Sandboxie-Plus</h3><p>Version %1</p><p>Copyright (c) 2020-2021 by DavidXanatos</p> + <h3>Über Sandboxie-Plus</h3><p>Version %1</p><p>Copyright (c) 2020-2021 by DavidXanatos</p> + + + + CSbieModel + + + Box Groupe + Box Group + Boxgruppe + + + + Name + Name + + + + Process ID + Prozess ID + + + + Status + Status + + + + Title + Titel + + + + Start Time + Startzeit + + + + Path / Command Line + Pfad / Kommandozeile + + + + CSbieProcess + + + Terminated + Beendet + + + + Running + Laufend + + + + CSbieView + + + Create New Box + Neue Box erstellen + + + + Add Group + Gruppe hinzufügen + + + + Remove Group + Gruppe entfernen + + + + Run + Starten + + + + Run Program + Programm starten + + + + Run from Start Menu + Aus Startmenü starten + + + + Run Web Browser + Internetbrowser starten + + + + Run eMail Client + E-Mail Programm starten + + + + Run Explorer + Explorer starten + + + + Run Cmd.exe + Cmd.exe starten + + + + Terminate All Programs + Alle Prozesse beenden + + + + + Create Shortcut + Verknüpfung erstellen + + + + Explore Content + Inhalt anzeigen + + + + Snapshots Manager + Schnappschussmanager + + + + Recover Files + Dateien wiederherstellen + + + + Delete Content + Inhalte löschen + + + + Sandbox Presets + Sandboxvorgaben + + + + Enable API Call logging + Aktiviere API-Aufrufprotokoll + + + + Block Internet Access + Blockiere Internetzugriff + + + + Allow Network Shares + Erlaube Netzwerkfreigaben + + + + Drop Admin Rights + Adminrechte abgeben + + + + Sandbox Options + Sandboxeinstellungen + + + + Rename Sandbox + Sandbox umbenennen + + + + Move to Group + Zu Gruppe zuordnen + + + + Remove Sandbox + Sandbox entfernen + + + + Terminate + Beenden + + + + Preset + Vorgabe + + + + Pin to Run Menu + An das Starten-Menü anheften + + + + Block and Terminate + Blockieren und Beenden + + + + Allow internet access + Erlaube Internetzugriff + + + + Force into this sandbox + In dieser Sandbox erzwingen + + + + Set Linger Process + Setze verweilende Programme + + + + Set Leader Process + Setze primäre Programme + + + + + Don't show this message again. + Diese Meldung nicht mehr anzeigen. + + + + This Sandbox is empty. + + + + + This Sandbox is already empty. + Diese Sandbox ist bereits leer. + + + + Do you want to delete the content of the selected sandbox? + Möchten Sie den Inhalt der ausgewählten Sandbox löschen? + + + + Do you really want to delete the content of multiple sandboxes? + Möchten Sie wirklich die Inhalte von mehreren Sandboxen löschen? + + + + Do you want to terminate all processes in the selected sandbox(es)? + Möchten Sie alle Prozesse in der/den ausgewählten Sandbox(en) beenden? + + + + This box does not have Internet restrictions in place, do you want to enable them? + Diese Sandbox hat keine Internetbeschränkungen, möchten Sie diese aktivieren? + + + + This sandbox is disabled, do you want to enable it? + Diese Sandbox ist deaktiviert. Möchten Sie diese aktivieren? + + + + File root: %1 + + Dateiquelle: %1 + + + + + Registry root: %1 + + Registry-Quelle: %1 + + + + + IPC root: %1 + + IPC-Quelle: %1 + + + + + Options: + + Optionen: + + + + + [None] + [Kein(e)] + + + + Please enter a new group name + Bitte einen Namen für die neue Gruppe eingeben + + + + Do you really want to remove the selected group(s)? + Möchten Sie wirklich die ausgewählte(n) Gruppe(n) entfernen? + + + + Please enter a new name for the Sandbox. + Bitte einen Namen für die neue Sandbox eingeben. + + + + Do you really want to remove the selected sandbox(es)? + Möchten Sie wirklich die ausgewählte(n) Sandbox(en) entfernen? + + + + + Create Shortcut to sandbox %1 + Verknüpfung zu Sandbox %1 erstellen + + + + Do you want to %1 the selected process(es) + Möchten Sie die ausgewählten Prozesse %1 + + + + CSettingsWindow + + + Sandboxie Plus - Settings + Sandboxie-Plus - Settings + Sandboxie Plus - Einstellungen + + + + Close to Tray + In den Tray schließen + + + + Prompt before Close + Rückfrage vor dem Schließen + + + + Close + Schließen + + + + Please enter the new configuration password. + Bitte ein Passwort für die neue Konfiguration eingeben. + + + + Please re-enter the new configuration password. + Bitte das neue Konfigurationspasswort wiederholen. + + + + Passwords did not match, please retry. + Passwörter stimmten nicht überein, bitte erneut versuchen. + + + + Process + Prozess + + + + Folder + Ordner + + + + Please enter a program file name + Bitte den Dateinamen eines Programms eingeben + + + + + Select Directory + Ordner auswählen + + + + CSnapshotsWindow + + + %1 - Snapshots + %1 - Schnappschüsse + + + + Snapshot + Schnappschuss + + + + Please enter a name for the new Snapshot. + Bitte einen Namen für den neuen Schnappschuss eingeben. + + + + New Snapshot + Neuer Schnappschuss + + + + Do you really want to switch the active snapshot? Doing so will delete the current state! + Möchten Sie wirklich den aktiven Schnappschuss wechseln? Dies führt zur Löschung des aktuellen Standes! + + + + Do you really want to delete the selected snapshot? + Möchten Sie wirklich die ausgewählten Schnappschüsse entfernen? + + + + NewBoxWindow + + + SandboxiePlus new box + Sandboxie-Plus new box + SandboxiePlus Neue Box + + + + Select restriction/isolation template: + Restriktions- oder Isolationsvorlage auswählen: + + + + Copy options from an existing box: + Kopiere Optionen von existierender Sandbox: + + + + Sandbox Name: + Sandboxname: + + + + Initial sandbox configuration: + Initiale Sandboxkonfiguration: + + + + OptionsWindow + + + SandboxiePlus Options + Sandboxie-Plus Options + SandboxiePlus Optionen + + + + General Options + Generelle Optionen + + + + Box Options + Boxoptionen + + + + Sandboxed window border: + Fensterrahmen innerhalb der Sandbox: + + + + px Width + px Breite + + + + Appearance + Erscheinung + + + + Sandbox Indicator in title: + Sandboxindikator im Fenstertitel: + + + + + + Protect the system from sandboxed processes + Schütze das System vor Prozessen in der Sandbox + + + + General restrictions + Generelle Restriktionen + + + + Block network files and folders, unless specifically opened. + Blockiere Netzwerkdateien und Ordner, außer diese wurden explizit geöffnet. + + + + Drop rights from Administrators and Power Users groups + Die Rechte der Administratoren und Hauptbenutzergruppe einschränken + + + + Prevent change to network and firewall parameters + Verhindere Änderungen an den Netzwerk- und Firewall-Einstellungen + + + + Run Menu + Startmenü + + + + You can configure custom entries for the sandbox run menu. + Sie können eigene Einträge in dem Startmenü der Sandbox einrichten. + + + + + + + + + Name + Name + + + + Command Line + Kommandozeile + + + + + + + + + + + Remove + Entfernen + + + + Add Command + Kommando hinzufügen + + + + File Options + Dateioptionen + + + + Copy file size limit: + Dateigrößenbeschränkung zum Kopieren: + + + + kilobytes + Kilobytes + + + + Protect this sandbox from deletion or emptying + Diese Sandbox vor Löschung und Leerung schützen + + + + Auto delete content when last sandboxed process terminates + Inhalte automatisch löschen, wenn der letzte Prozess in der Sandbox beendet wurde + + + + File Migration + Dateimigration + + + + Issue message 2102 when a file is too large + Meldung 2102 ausgeben, wenn die Datei zu groß ist + + + + Box Delete options + Box Löschoptionen + + + + Program Groups + Programmgruppen + + + + Add Group + Gruppe hinzufügen + + + + + + Add Program + Programm hinzufügen + + + + You can group programs together and give them a group name. Program groups can be used with some of the settings instead of program names. + Sie können Programme gruppieren und ihnen einen Gruppennamen geben. Programmgruppen können in den Einstellungen an Stelle der Programmnamen genutzt werden. + + + + Forced Programs + Erzwungene Programme + + + + Force Folder + Erzwungene Ordner + + + + + + Path + Pfad + + + + Force Program + Erzwungenes Programm + + + + + + + Show Templates + Zeige Vorlagen + + + + Programs entered here, or programs started from entered locations, will be put in this sandbox automatically, unless thay are explicitly started in another sandbox. + Programme die hier gelistet sind oder von den angegeben Ordnern gestartet werden, werden automatisch in dieser Sandbox ausgeführt, solange sie nicht explizit in einer anderen Sandbox gestartet werden. + + + + Stop Behaviour + Stopverhalten + + + + + + Remove Program + Programm entfernen + + + + Add Leader Program + Füge primäre Programme hinzu + + + + Add Lingering Program + Füge verweilende Programme hinzu + + + + + + + Type + Typ + + + + Block access to the printer spooler + Zugriff auf die Druckerwarteschlange blockieren + + + + Allow the print spooler to print to files outside the sandbox + Der Druckerwarteschlange erlauben als Dateien außerhalb der Sandbox zu drucken (Print to file) + + + + Printing + Drucken + + + + Remove spooler restriction, printers can be installed outside the sandbox + Entferne Druckerwarteschlangenrestriktionen, Drucker können außerhalb der Sandbox installiert werden + + + + + Add program + Füge Programm hinzu + + + + Auto Start + Autostart + + + + Here you can specify programs and/or services that are to be started automatically in the sandbox when it is activated + Hier können Sie Programme und/oder Dienste angeben, welche automatisch in der Sandbox gestartet werden, wenn diese aktiviert wird + + + + Add service + Füge Dienst hinzu + + + + Lingering programs will be automatically terminated if they are still running after all other processes have been terminated. + +If leader processes are defined, all others are treated as lingering processes. + Verweilende Programme werden automatisch beendet, wenn diese noch laufen, nachdem alle anderen Prozesse bereits beendet wurden. + +Falls primäre Programme/Prozesse definiert wurden, werden alle anderen als verweilende Prozesse behandelt. + + + + Start Restrictions + Starteinschränkungen + + + + Issue message 1308 when a program fails to start + Gebe Meldung 1308 aus, wenn ein Programmstart fehlschlägt + + + + Allow only selected programs to start in this sandbox. * + Erlaube nur ausgewählten Prozessen in dieser Sandbox zu starten. * + + + + Prevent selected programs from starting in this sandbox. + Verhindere die Ausführung von ausgewählten Programmen in dieser Sandbox. + + + + Allow all programs to start in this sandbox. + Erlaube allen Programmen in dieser Sandbox zu starten. + + + + * Note: Programs installed to this sandbox won't be able to start at all. + * Notiz: Programme, welche in dieser Sandbox installiert werden, werden nicht in der Lage sein zu starten. + + + + Internet Restrictions + Internetbeschränkungen + + + + Issue message 1307 when a program is denied internet access + Gebe Meldung 1307 aus, wenn einem Programm der Internetzugriff verweigert wurde + + + + Block internet access for all programs except those added to the list. + Blockiere Internetzugriff für alle Programme, außer sie sind hier gelistet. + + + + Note: Programs installed to this sandbox won't be able to access the internet at all. + Hinweis: Programme, welche in dieser Sandbox installiert werden, werden nicht in der Lage sein auf das Internet zuzugreifen. + + + + Prompt user whether to allow an exemption from the blockade. + Den Nutzer fragen, ob er eine Ausnahme von dieser Blockade erlauben will. + + + + Resource Access + Ressourcenzugriff + + + + Program + Programm + + + + Access + Zugriff + + + + Add Reg Key + Füge Registry-Schlüssel hinzu + + + + Add File/Folder + Füge Datei/Ordner hinzu + + + + Add Wnd Class + Füge Fensterklasse hinzu + + + + Add COM Object + Füge COM-Objekt hinzu + + + + Add IPC Path + Füge IPC-Pfad hinzu + + + + Move Up + Nach oben verschieben + + + + Move Down + Nach unten verschieben + + + + Configure which processes can access what resources. Double click on an entry to edit it. +'Direct' File and Key access only applies to program binaries located outside the sandbox. +Note that all Close...=!<program>,... exclusions have the same limitations. +For files access you can use 'Direct All' instead to make it apply to all programs. + Translated close to what is written in the source + Konfigurieren, welche Prozesse auf welche Ressourcen zugreifen können. Doppelklick um einen Eintrag zu bearbeiten. +'Direkter' Datei und Schlüsselzugriff trifft nur auf Programmdateien zu, die sich außerhalb der Sandbox befinden. +Beachte, dass alle Programme schließen...=!<Programm>,... Ausnahmen die gleichen Beschränkungen haben. +Zum Dateizugriff können Sie 'Direkt Alle' verwenden um für alle Programme zu zu treffen. + + + + File Recovery + Dateiwiederherstellung + + + + Add Folder + Füge Ordner hinzu + + + + Ignore Extension + Ignoriere Erweiterungen + + + + Ignore Folder + Ignoriere Ordner + + + + Enable Immediate Recovery prompt to be able to recover files as soon as thay are created. + Enable Immediate Recovery prompt to be able to recover files as soon as they are created. + Aktivere Sofortwiederherstellungsabfrage, um alle Dateien sofort wiederherzustellen, sobald sie erzeugt werden. + + + + You can exclude folders and file types (or file extensions) from Immediate Recovery. + Sie können Ordner und Dateitypen (oder Dateierweiterungen) von der Sofortwiederherstellung ausnehmen. + + + + When the Quick Recovery function is invoked, the following folders will be checked for sandboxed content. + Wenn die Schnellwiederherstellungsfunktion aufgerufen wird, werden die folgenden Ordner in der Sandbox auf Inhalte geprüft. + + + + Advanced Options + Erweiterte Optionen + + + + Miscellaneous + Diverses + + + + Do not start sandboxed services using a system token (recommended) + Sandgeboxte Dienste nicht mit einem Systemtoken starten (empfohlen) + + + + Allow access to Smart Cards + Zugriff auf SmartCards erlauben + + + + Force usage of custom dummy Manifest files (legacy behaviour) + Erzwinge die Verwendung von eigenen dummy Manifestdateien (veraltetes Verhalten) + + + + Add sandboxed processes to job objects (recommended) + Füge gesandboxte Prozesse zu Job-Objekten hinzu (empfohlen) + + + + Limit access to the emulated service control manager to privileged processes + Beschränke Zugriff auf emulierte Dienstkontrollmanager auf privilegierte Prozesse + + + + Open System Protected Storage + Öffne systemgeschützen Speicherort + + + + Open Windows Credentials Store + Öffne Windows Anmeldeinformationsverwaltung + + + + Don't alter window class names created by sandboxed programs + Fensterklassen von gesandboxten Programmen nicht ändern + + + + + Protect the sandbox integrity itself + Die Sandboxintegrität selbst schützen + + + + Sandbox protection + Sandboxschutz + + + + Compatibility + Kompatibilität + + + + Protect sandboxed SYSTEM processes from unprivileged unsandboxed processes + Schütze sandgeboxte SYSTEM-Prozesse vor unprivilegierten nicht sandgeboxten Prozessen + + + + Hide Processes + Verstecke Prozesse + + + + Add Process + Prozess hinzufügen + + + + Hide host processes from processes running in the sandbox. + Verstecke Host-Prozesse vor Prozessen in der Sandbox. + + + + Don't allow sandboxed processes to see processes running in other boxes + Nicht erlauben, dass sandgeboxte Prozesse die Prozesse in anderen Boxen sehen können + + + + Users + Benutzer + + + + Restrict Resource Access monitor to administrators only + Beschränke den Ressourcenzugriffsmonitor auf Administratoren + + + + Add User + Benutzer hinzufügen + + + + Remove User + Benutzer entfernen + + + + Add user accounts and user groups to the list below to limit use of the sandbox to only those accounts. If the list is empty, the sandbox can be used by all user accounts. + +Note: Forced Programs and Force Folders settings for a sandbox do not apply to user accounts which cannot use the sandbox. + Füge Nutzerkonten und -gruppen der Liste hinzu, um die Benutzung der Sandbox auf diese Konten zu beschränken.Falls die Liste leer ist, kann die Sandbox von allen Konten genutzt werden. + +Notiz: Erzwungene Programme und Ordner für eine Sandbox finden keine Anwendung auf Konten, die diese Sandbox nicht nutzen können. + + + + Tracing + Rückverfolgung + + + + Pipe Trace + Pipe Rückverfolgung + + + + Log all access events as seen by the driver to the resource access log. + +This options set the event mask to "*" - All access events +You can customize the logging using the ini by specifying +"A" - Allowed accesses +"D" - Denied accesses +"I" - Ignore access requests +instead of "*". + Protokolliere jeden Zugriffsevent, wie er durch den Treiber gesehen wird, im Ressourcenzugriffsprotokoll. + +Diese Optionen setzen die Eventmaske auf "*" - Alle Zugriffsevents +Sie können die Protokollierung in der INI anpassen in den Sie wie folgt wählen +"A" - Erlaubte Zugriffe +"D" - Verweigerte Zugriffe +"I" - Ignorierte Zugriffsanfragen +an Stelle von "*". + + + + Access Tracing + Zugriffsrückverfolgung + + + + GUI Trace + GUI Rückverfolgung + + + + Key Trace + Schlüsselrückverfolgung + + + + File Trace + Dateirückverfolgung + + + + Lift security restrictions + Sicherheitsrestriktionen aufheben + + + + Sandbox isolation + Sandboxisolation + + + + Allow access to Bluetooth + + + + + Auto Exec + Autoausführen + + + + Here you can specify a list of commands that are executed every time the sandbox is initially populated. + Hier können Sie eine Liste mit Kommandos angeben, welche jedes Mal ausgeführt werden, wenn die Sandbox initial geladen wird. + + + + IPC Trace + IPC-Rückverfolgung + + + + Log Debug Output to the Trace Log + Protokolliere Debug-Ausgabe in das Rückverfolgungsprotokoll + + + + COM Class Trace + COM-Klassenrückverfolgung + + + + <- for this one the above does not apply + <- für dieses findet das Obige keine Anwendung + + + + Debug + Debug + + + + WARNING, these options can disable core security guarantees and break sandbox security!!! + WARNUNG, diese Optionen können Kernsicherheitsgarantien deaktivieren und die Sandboxsicherheit zerstören!!! + + + + These options are intended for debugging compatibility issues, please do not use them in production use. + Diese Optionen sind nur zur Fehlersuche bei Kompatibilitätsproblemen gedacht, bitte nicht im produktiven Einsatz verwenden. + + + + App Templates + Programmvorlagen + + + + Filter Categories + Filterkategorien + + + + Text Filter + Textfilter + + + + Category + Kategorie + + + + This list contains a large amount of sandbox compatibility enhancing templates + Diese Liste enthält eine große Menge an Vorlagen, welche die Kompatibilität der Sandbox verbessern + + + + Edit ini Section + INI Sektion bearbeiten + + + + Edit ini + INI bearbeiten + + + + Cancel + Abbrechen + + + + Save + Speichern + + + + PopUpWindow + + + SandboxiePlus Notifications + Sandboxie-Plus Notifications + SandboxiePlus Benachrichtigungen + + + + QObject + + + Drive %1 + Laufwerk %1 + + + + RecoveryWindow + + + SandboxiePlus Settings + Sandboxie-Plus Settings + SandboxiePlus-Einstellungen + + + + Add Folder + Ordner hinzufügen + + + + Refresh + Aktualisieren + + + + Show All Files + Zeige alle Dateien + + + + TextLabel + Beschriftungstext + + + + Recover + Wiederherstellen + + + + Recover to + Wiederherstellen nach + + + + Delete all + Alle löschen + + + + Close + Schließen + + + + SettingsWindow + + + SandboxiePlus Settings + Sandboxie-Plus Settings + SandboxiePlus Einstellungen + + + + General Options + Generelle Optionen + + + + Show Notifications for relevant log Messages + Zeige Benachrichtigungen für relevante Protokollmitteilungen + + + + Show Sys-Tray + Zeige System-Tray + + + + Use Dark Theme + Dunkles Farbschema benutzen + + + + Add 'Run Sandboxed' to the explorer context menu + Füge 'In Sandbox starten' zum Kontextmenü des Explorers hinzu + + + + On main window close: + Beim Schließen des Hauptfensters: + + + + Restart required (!) + Erfordert Neustart (!) + + + + Watch Sandboxie.ini for changes + Sandboxie.ini auf Änderungen überwachen + + + + Tray options + Tray-Optionen + + + + Check periodically for updates of Sandboxie-Plus + Periodisch nach Update für Sandboxie-Plus suchen + + + + Open urls from this ui sandboxed + Open URLs from this UI sandboxed + Öffne URLs aus dieser Benutzerschnittstelle in einer Sandbox + + + + Advanced Options + Erweiterte Optionen + + + + Only Administrator user accounts can use Disable Forced Programs command + Nur Administratoren können das Erzwingen von Programmen deaktivieren + + + + Only Administrator user accounts can make changes + Nur Administratoren können Änderungen vornehmen + + + + Config protection + Konfigurationsschutz + + + + Password must be entered in order to make changes + Passwort muss für Änderungen eingegeben werden + + + + Change Password + Passwort ändern + + + + Sandbox default + Sandboxstandard + + + + Sandbox <a href="sbie://docs/filerootpath">file system root</a>: + Sandbox <a href="sbie://docs/filerootpath">Dateisystemquelle</a>: + + + + Sandbox <a href="sbie://docs/ipcrootpath">ipc root</a>: + Sandbox <a href="sbie://docs/ipcrootpath">IPC-Quelle</a>: + + + + Sandbox <a href="sbie://docs/keyrootpath">registry root</a>: + Sandbox <a href="sbie://docs/keyrootpath">Registy-Quelle</a>: + + + + Separate user folders + Trenne Benutzerordner + + + + Clear password when main window becomes hidden + Leere Passwort, wenn das Hauptfenster versteckt wird + + + + Start UI with Windows + Starte Benutzeroberfläche mit Windows + + + + Start UI when a sandboxed process is started + Starte Benutzeroberfläche, wenn ein Prozess in einer Sandbox gestartet wird + + + + Show first recovery window when emptying sandboxes + Zeige Wiederherstellungsfenster, vor dem Leeren der Sandboxen + + + + Portable root folder + Portabler Quellordner + + + + ... + ... + + + + Other settings + Andere Einstellungen + + + + Program Restrictions + Programmrestriktionen + + + + + Name + Name + + + + Path + Pfad + + + + Remove Program + Programm entfernen + + + + Add Program + Programm hinzufügen + + + + When any of the following programs is launched outside any sandbox, Sandboxie will issue message SBIE1301. + Wenn eines der folgenden Programme außerhalb einer Sandbox gestartet wird, wird Sandboxie die Meldung SBIE1301 ausgeben. + + + + Add Folder + Ordner hinzufügen + + + + Prevent the listed programs from starting on this system + Verhindere den Start der aufgeführten Programme auf diesem System + + + + Issue message 1308 when a program fails to start + Gebe Meldung 1308 aus, wenn ein Programmstart fehlschlägt + + + + Software Compatibility + Softwarekompatibilität + + + + In the future, don't check software compatibility + Zukünftig nicht auf Softwarekompatibilität prüfen + + + + Enable + Aktiveren + + + + Disable + Deaktivieren + + + + Sandboxie has detected the following software applications in your system. Click OK to apply configuration settings, which will improve compatibility with these applications. These configuration settings will have effect in all existing sandboxes and in any new sandboxes. + Sandboxie hat die folgenden Anwendungen auf dem System gefunden. OK klicken zur Anwendung der Konfigurationseinstellungen, welche die Softwarekompatibilität mit diesen Anwendungen verbessert. Diese Konfigurationseinstellungen haben Auswirkungen auf alle existierenden und neuen Sandboxen. + + + + SnapshotsWindow + + + SandboxiePlus Settings + Sandboxie-Plus Settings + SandboxiePlus Einstellungen + + + + Selected Snapshot Details + Ausgewählte Schnappschussdetails + + + + Name: + Name: + + + + Description: + Beschreibung: + + + + Snapshot Actions + Schnappschussaktionen + + + + Remove Snapshot + Schnappschuss entfernen + + + + Take Snapshot + Schnappschuss erstellen + + + + Go to Snapshot + Gehe zum Schnappschuss + + + diff --git a/SandboxiePlus/SandMan/sandman_pt.ts b/SandboxiePlus/SandMan/sandman_pt.ts index f4972cb8..11cfc722 100644 --- a/SandboxiePlus/SandMan/sandman_pt.ts +++ b/SandboxiePlus/SandMan/sandman_pt.ts @@ -127,108 +127,108 @@ Procurar por Pasta - + This sandbox has been deleted hence configuration can not be saved. Esta caixa de areia foi excluída, portanto, a configuração não pode ser salva. - + Some changes haven't been saved yet, do you really want to close this options window? Algumas alterações ainda não foram salvas, você realmente quer fechar essa janela de opções? - + kilobytes (%1) Only capitalized Kilobytes (%1) - + Please enter a program path Insira um caminho do programa - - + + Select Program Selecionar Programa - + Executables (*.exe *.cmd);;All files (*.*) Executáveis (*.exe *.cmd);;Todos os arquivos (*.*) - + Executables (*.exe|*.cmd) Executáveis (*.exe|*.cmd) - + Please enter a service identifier Por favor, insira um identificador de serviço - + Service Serviço - + Program Programa - - + + Please enter a menu title Por favor insira um título de menu - + Please enter a command Por favor, digite um comando - - - - + + + + Group: %1 Grupo: %1 - + Please enter a name for the new group Insira um nome para o novo grupo - + Enter program: Insira um programa: - + Please select group first. Selecione o grupo primeiro. - + COM objects must be specified by their GUID, like: {00000000-0000-0000-0000-000000000000} Os objetos COM devem ser especificados pelo seu GUID, como: {00000000-0000-0000-0000-000000000000} - + RT interfaces must be specified by their name. As interfaces RT devem ser especificadas pelo nome. - + Please enter an auto exec command Por favor, insira um comando auto exec - + This template is enabled globally. To configure it, use the global options. Este modelo é habilitado globalmente para configura-lo usando as opções globais. @@ -237,78 +237,139 @@ Selecione primeiro o grupo. - + Process Processo - - + + Folder Pasta - - - + + + Select Directory Selecionar Diretório - + Lingerer Lingerer - + Leader Líder + + + Direct + + + + + Direct All + + + + + Closed + + + + + Closed RT + + + + + Read Only + + + + + Hidden + + + + + + Unknown + Desconhecido + + + + File/Folder + + + Registry + + + + + IPC Path + + + + + Wnd Class + + + + + COM Object + + + + Select File Selecionar Arquivo - + All Files (*.*) Todos os Arquivos (*.*) - - + + All Programs Todos os Programas - + Template values can not be edited. Os valores do modelo não podem ser editados. - - + + Template values can not be removed. Os valores do modelo não podem ser removidos. - + Exclusion Exclusão - + Please enter a file extension to be excluded Insira uma extensão de arquivo a ser excluída - + Please enter a program file name Insira o nome do programa - + All Categories Todas as Categorias @@ -570,17 +631,17 @@ Caminho completo: %4 - + Select Directory Selecionar Diretório - + One or more selected files are located on a network share, and must be recovered to a local drive, please select a folder to recover all selected files to. Um ou mais arquivos selecionados estão localizados em um compartilhamento de rede e devem ser recuperados em uma unidade local, selecione uma pasta para recuperar todos os arquivos selecionados. - + There are %1 files and %2 folders in the sandbox, occupying %3 bytes of disk space. Existem arquivos %1 e pastas %2 na caixa de areia, ocupando %3 bytes de espaço em disco. @@ -671,7 +732,7 @@ Caminho completo: %4 CSandMan - + Sandboxie-Plus v%1 Sandboxie-Plus v%1 @@ -723,269 +784,284 @@ Caminho completo: %4 - + Disable Forced Programs Desativar Programas Forçados - + &Sandbox &Sandbox - + Create New Box Criar Nova Caixa - + Terminate All Processes Terminar Todos os Processos - + Window Finder - + &Maintenance &Manutenção - + Connect Conectar - + Disconnect Desconectar - + Stop All Parar Todos - + &Advanced &Avançado - + Install Driver Instalar Drive - + Start Driver Iniciar Drive - + Stop Driver Parar Drive - + Uninstall Driver Desinstalar Drive - + Install Service Instalar Serviço - + Start Service Iniciar Serviço - + Stop Service Parar Serviço - + Uninstall Service Desinstalar Serviço - + Exit Sair - + &View &Exibir - + Simple View Simples - + Advanced View Avançada - + Always on Top Sempre Visível - + Show Hidden Boxes - + Clean Up Limpar - + Cleanup Processes Limpar Processos - + Cleanup Message Log Limpar Log de Mensagens - + Cleanup Resource Log Limpar Log de Recurso - + Cleanup Api Call Log Limpar Log de Chamada Api - + Keep terminated Manter terminado - + &Options &Opções - + Global Settings Configurações Globais - + Reset all hidden messages Redefinir todas as mensagens ocultas - + Edit ini file Freedom to ini being all caps Editar arquivo ini - + Reload ini file Recarregar arquivo ini - + Resource Logging Log de Recursos - + API Call Logging Log de Chamada de API - + &Help Aj&uda - + Support Sandboxie-Plus with a Donation Doar para o Sandboxie-Plus - + Visit Support Forum Fórum de Suporte - + Online Documentation Documentação Online - + Check for Updates Verificar por Atualizações - + About the Qt Framework Sobre o Qt Framework - - + + About Sandboxie-Plus Sobre o Sandboxie-Plus - + Cleanup Limpar - + Do you want to close Sandboxie Manager? Gostaria de fechar o Sandboxie Manager? - + Sandboxie-Plus was running in portable mode, now it has to clean up the created services. This will prompt for administrative privileges. Sandboxie-Plus estava sendo executado em modo portable, agora tem que limpar os serviços criados. Isso solicitará privilégios administrativos. - + Failed to stop all Sandboxie components Falha ao parar todos os componentes do Sandboxie - + Failed to start required Sandboxie components Falha ao iniciar os componentes exigidos do Sandboxie - + + Default sandbox not found; creating: %1 + + + + + <p>Do you want to go to the <a href="%1">info page</a>?</p> + + + + + Don't show this message anymore. + + + + The selected window is running as part of program %1 in sandbox %2 - + The selected window is not running as part of any sandboxed program. - + Drag the Finder Tool over a window to select it, then release the mouse to check if the window is sandboxed. - + Sandboxie-Plus - Window Finder @@ -998,96 +1074,96 @@ Caminho completo: %4 Alguns modelos de compatibilidade (%1) estão faltando, provavelmente excluídos. Deseja removê-los de todas as caixas? - + Cleaned up removed templates... Limpei modelos removidos... - + Sandboxie-Plus was started in portable mode, do you want to put the SandBox folder into its parent directory? Sandboxie-Plus foi iniciado no modo portátil, você deseja colocar a pasta SandBox em seu diretório pai? - + - NOT connected - NÃO conectado - + The file %1 already exists, do you want to overwrite it? O arquivo %1 já existe, deseja sobrescrevê-lo? - + Do this for all files! Fazer isso para todos os arquivos! - + Failed to recover some files: Falha ao recuperar alguns arquivos: - + Do you want to terminate all processes in all sandboxes? - + Terminate all without asking - + Please enter the duration for disabling forced programs. Insira a duração para desabilitar programas forçados. - + Sandboxie-Plus was started in portable mode and it needs to create necessary services. This will prompt for administrative privileges. Sandboxie-Plus foi iniciado no modo portable é preciso criar os serviços necessários. Isso solicitará privilégios administrativos. - + Do you also want to reset hidden message boxes (yes), or only all log messages (no)? Você também deseja redefinir as caixas de mensagens ocultas (sim) ou apenas todas as mensagens de log (não)? - + The changes will be applied automatically whenever the file gets saved. As alterações serão aplicadas automaticamente sempre que o arquivo for salvo. - + The changes will be applied automatically as soon as the editor is closed. As alterações serão aplicadas automaticamente assim que o editor for fechado. - + To use API logging you must first set up the LogApiDll from https://github.com/sandboxie-plus/LogApiDll with one or more sandboxes. Please download the latest release and set it up with the Sandboxie.ini as instructed in the README.md of the project. Para usar o log de API, você deve primeiro configurar o LogApiDll em https://github.com/sandboxie-plus/LogApiDll com um ou mais caixas de areia. Faça o download da versão mais recente e configure-o com o Sandboxie.ini conforme instruído no README.md do projeto. - + Error Status: %1 Status de Erro: %1 - + Can not create snapshot of an empty sandbox Não é possível criar instantâneo de uma caixa de areia vazia - + A sandbox with that name already exists Uma caixa de areia com esse nome já existe - + <p>Sandboxie-Plus is an open source continuation of Sandboxie.</p><p></p><p>Visit <a href="https://sandboxie-plus.com">sandboxie-plus.com</a> for more information.</p><p></p><p></p><p></p><p>Icons from <a href="https://icons8.com">icons8.com</a></p><p></p> <p>Sandboxie-Plus é uma continuação de código aberto do Sandboxie.</p><p></p><p>Visite <a href="https://sandboxie-plus.com">sandboxie-plus.com</a> para maiores informações.</p><p></p><p></p><p></p><p>Ícones de <a href="https://icons8.com">icons8.com</a></p><p></p> @@ -1096,7 +1172,7 @@ Faça o download da versão mais recente e configure-o com o Sandboxie.ini confo Direitos administrativos necessários. - + Failed to execute: %1 Falha ao executar: %1 @@ -1105,7 +1181,7 @@ Faça o download da versão mais recente e configure-o com o Sandboxie.ini confo Falha ao se conectar ao driver - + Failed to communicate with Sandboxie Service: %1 Falha ao se comunicar com o serviço Sandboxie: %1 @@ -1118,17 +1194,17 @@ Faça o download da versão mais recente e configure-o com o Sandboxie.ini confo Versão incompatível, encontrada Sandboxie %1, versões compatíveis: %2 - + Failed to copy configuration from sandbox %1: %2 Falha ao copiar a configuração do sandbox %1: %2 - + A sandbox of the name %1 already exists Uma caixa de areia com o nome %1 já existe - + Failed to delete sandbox %1: %2 Falha ao excluir sandbox %1: %2 @@ -1137,72 +1213,72 @@ Faça o download da versão mais recente e configure-o com o Sandboxie.ini confo O nome da caixa de areia não pode ter mais de 32 caracteres. - + The sandbox name can not be a device name. O nome da caixa de areia não pode ser um nome de dispositivo. - + The sandbox name can contain only letters, digits and underscores which are displayed as spaces. O nome da caixa de areia pode conter apenas letras, números e sublinhados que são exibidos como espaços. - + Failed to terminate all processes Falha ao terminar todos os processos - + Delete protection is enabled for the sandbox A proteção de exclusão está ativada para a caixa de areia - + Error deleting sandbox folder: %1 Erro ao excluir a pasta da caixa de areia: %1 - + A sandbox must be emptied before it can be renamed. Uma caixa de areia deve ser esvaziada antes de ser renomeada. - + A sandbox must be emptied before it can be deleted. Uma caixa de areia deve ser esvaziada antes de ser excluída. - + Failed to move directory '%1' to '%2' Falha ao mover diretório '%1' para '%2' - + This Snapshot operation can not be performed while processes are still running in the box. Essa operação de instantâneo não pode ser executada enquanto os processos ainda estiverem em execução na caixa. - + Failed to create directory for new snapshot Falha ao criar diretório para novo instantâneo - + Failed to copy RegHive Falha ao copiar RegHive - + Snapshot not found Instantâneo não encontrado - + Error merging snapshot directories '%1' with '%2', the snapshot has not been fully merged. Erro ao mesclar os diretórios de instantâneo '%1' com '%2', o instantâneo não foi totalmente mesclado. - + Failed to remove old snapshot directory '%1' Falha ao remover diretório de instantâneo antigo '%1' @@ -1211,42 +1287,41 @@ Faça o download da versão mais recente e configure-o com o Sandboxie.ini confo Não é possível remover um instantâneo que é compartilhado por vários instantâneos posteriores - + Failed to remove old RegHive Falha ao remover RegHive antigo - + You are not authorized to update configuration in section '%1' Você não está autorizado a atualizar a configuração na seção '%1' - + Failed to set configuration setting %1 in section %2: %3 Falha ao definir a definição de configuração %1 na seção %2: %3 - + Unknown Error Status: %1 Status de erro desconhecido: %1 - + Don't show this announcement in the future. Não mostrar esse anúncio no futuro. - Ignore this update, notify me about the next one. - Ignore essa atualização, avise-me sobre a próxima. + Ignore essa atualização, avise-me sobre a próxima. - + No new updates found, your Sandboxie-Plus is up-to-date. Nenhuma nova atualização encontrada, seu Sandboxie-Plus está atualizado. - + <p>New Sandboxie-Plus has been downloaded to the following location:</p><p><a href="%2">%1</a></p><p>Do you want to begin the installation? If any programs are running sandboxed, they will be terminated.</p> <p>Novo Sandboxie-Plus foi baixado para o seguinte local:</p><p><a href="%2">%1</a></p><p>Gostaria de iniciar a instalação? Se algum programa estiver sendo executado na caixa de areia, eles serão terminados.</p> @@ -1255,20 +1330,20 @@ Faça o download da versão mais recente e configure-o com o Sandboxie.ini confo Sandboxie-Plus estava sendo executado em modo portable, agora tem que limpar os serviços criados, isso irá solicitará privilégios administrativos. - - - - - - - + + + + + + + Don't show this message again. Não mostrar essa mensagem novamente. - - - + + + Sandboxie-Plus - Error Sandboxie-Plus - Erro @@ -1281,47 +1356,47 @@ Faça o download da versão mais recente e configure-o com o Sandboxie.ini confo Falha ao iniciar os componentes necessários do sandboxie - + Maintenance operation %1 Operação de manutenção %1 - + Maintenance operation Successful Operação de manutenção bem-sucedida - + Select box: - + Do you want to check if there is a new version of Sandboxie-Plus? Quer verificar se existe uma nova versão do Sandboxie-Plus? - + Some compatibility templates (%1) are missing, probably deleted, do you want to remove them from all boxes? - + Driver version: %1 Versão do drive: %1 - + - Portable - Portable - + Sbie Directory: %1 Diretório do Sbie: %1 - + Loaded Config: %1 Configuração Carregada: %1 @@ -1330,17 +1405,17 @@ Faça o download da versão mais recente e configure-o com o Sandboxie.ini confo - Driver NÃO conectado - + PID %1: PID %1: - + %1 (%2): %1 (%2): - + Recovering file %1 to %2 Recuperando arquivo %1 para %2 @@ -1351,17 +1426,17 @@ Faça o download da versão mais recente e configure-o com o Sandboxie.ini confo - + Only Administrators can change the config. Apenas administradores podem alterar a configuração. - + Please enter the configuration password. Por favor, insira a senha de configuração. - + Login Failed: %1 Falha no Login: %1 @@ -1374,12 +1449,11 @@ Faça o download da versão mais recente e configure-o com o Sandboxie.ini confo Sandboxie-Plus foi iniciado no modo portátil e precisa criar serviços necessários, isso solicitará privilégios administrativos. - No sandboxes found; creating: %1 - Nenhuma sandbox encontrada; criando: %1 + Nenhuma sandbox encontrada; criando: %1 - + Executing maintenance operation, please wait... Executando operação de manutenção, por favor aguarde... @@ -1394,63 +1468,63 @@ Please download the latest release and set it up with the sandboxie.ini as instr Faça o download da versão mais recente e configure-a em sandboxie.ini conforme instruído no README.md do projeto. - + Administrator rights are required for this operation. Direitos de administrador são necessários para esta operação. - + Failed to connect to the driver Falha ao se conectar com o driver - + An incompatible Sandboxie %1 was found. Compatible versions: %2 Um Sandboxie %1 incompatível foi encontrado. Versões compatíveis: %2 - + Can't find Sandboxie installation path. Não é possível encontrar o caminho de instalação do Sandboxie. - + The sandbox name can not be longer than 32 characters. O nome da caixa de área não pode ter mais de 32 caracteres. - + Can't remove a snapshot that is shared by multiple later snapshots Não é possível remover instantâneos compartilhado por vários instantâneos posteriores - + Operation failed for %1 item(s). A operação falhou para %1 item(ns). - + Do you want to open %1 in a sandboxed (yes) or unsandboxed (no) Web browser? Deseja abrir %1 em um navegador Web na caixa de areia (sim) ou fora da caixa de areia (não)? - + Remember choice for later. Lembrar escolha mais tarde. - + Checking for updates... Verificando por atualizações... - + server not reachable servidor não acessível - - + + Failed to check for updates, error: %1 Falha ao verificar atualizações, erro: %1 @@ -1459,17 +1533,17 @@ Faça o download da versão mais recente e configure-a em sandboxie.ini conforme Não mostrar esse anúncio no futuro. - + <p>There is a new version of Sandboxie-Plus available.<br /><font color='red'>New version:</font> <b>%1</b></p> <p>Há uma nova versão do Sandboxie-Plus disponível.<br /><font color='red'>Nova versão:</font> <b>%1</b></p> - + <p>Do you want to download the latest version?</p> <p>Você quer baixar a versão mais recente?</p> - + <p>Do you want to go to the <a href="%1">download page</a>?</p> <p>Você quer ir para a <a href="%1">página de download</a>?</p> @@ -1478,7 +1552,7 @@ Faça o download da versão mais recente e configure-a em sandboxie.ini conforme Ignorar essa atualização, avise-me sobre a próxima. - + Downloading new version... Baixando nova versão... @@ -1487,7 +1561,7 @@ Faça o download da versão mais recente e configure-a em sandboxie.ini conforme Nenhuma nova atualização encontrada, seu Sandboxie-Plus está atualizado. - + Failed to download update from: %1 Falha ao baixar atualização de: %1 @@ -1496,7 +1570,7 @@ Faça o download da versão mais recente e configure-a em sandboxie.ini conforme <p>Novo Sandboxie-Plus foi baixado para o seguinte local:</p><p><a href="%2">%1</a></p><p>Gostaria de iniciar a instalação. Se algum programa estiver senso executado na caixa de areia, será encerrado.</p> - + <h3>About Sandboxie-Plus</h3><p>Version %1</p><p>Copyright (c) 2020-2021 by DavidXanatos</p> <h3>Sobre Sandboxie-Plus</h3><p>Versão %1</p><p>Copyright (c) 2020-2021 by DavidXanatos</p> @@ -1741,38 +1815,43 @@ Faça o download da versão mais recente e configure-a em sandboxie.ini conforme Definir Processo do Líder - - + + Don't show this message again. Não mostrar essa mensagem novamente. - + + This Sandbox is empty. + + + + This Sandbox is already empty. Esta Caixa de Areia já está vazia. - + Do you want to delete the content of the selected sandbox? Deseja excluir o conteúdo da caixa de areia selecionada? - + Do you really want to delete the content of multiple sandboxes? Você realmente deseja excluir o conteúdo de várias caixas de areia? - + Do you want to terminate all processes in the selected sandbox(es)? - + This box does not have Internet restrictions in place, do you want to enable them? Esta caixa não possui restrições à Internet. Deseja ativá-las? - + This sandbox is disabled, do you want to enable it? @@ -1813,28 +1892,28 @@ Faça o download da versão mais recente e configure-a em sandboxie.ini conforme - + [None] [Nenhum] - + Please enter a new group name Por favor insira um novo nome de grupo - + Do you really want to remove the selected group(s)? Do you really want remove the selected group(s)? Tem certeza de que deseja remover o(s) grupo(s) selecionado(s)? - + Please enter a new name for the Sandbox. Insira um novo nome para caixa de areia. - + Do you really want to remove the selected sandbox(es)? Do you really want remove the selected sandbox(es)? Tem certeza de que deseja remover as caixas de areia selecionadas? @@ -1845,13 +1924,13 @@ Faça o download da versão mais recente e configure-a em sandboxie.ini conforme Tem certeza de que deseja excluir o conteúdo da(s) caixa(s) de areia? - - + + Create Shortcut to sandbox %1 Criar Atalho para o sandboxie %1 - + Do you want to %1 the selected process(es) Deseja %1 o(s) processo(s) selecionado(s) @@ -2070,7 +2149,7 @@ Faça o download da versão mais recente e configure-a em sandboxie.ini conforme - + Name Nome @@ -2086,13 +2165,13 @@ Faça o download da versão mais recente e configure-a em sandboxie.ini conforme - - + + Remove Remover - + Add Command Adicionar Comando @@ -2436,17 +2515,17 @@ Para acesso a arquivos, você pode usar o 'Direct All' em vez de fazê Diversos - + Do not start sandboxed services using a system token (recommended) Não iniciar serviços no sandbox usando um token de sistema (recomendado) - + Allow access to Smart Cards Permitir acesso a cartões inteligentes - + Force usage of custom dummy Manifest files (legacy behaviour) Forçar uso de arquivos de manifesto fictícios personalizados (comportamento legado) @@ -2455,7 +2534,7 @@ Para acesso a arquivos, você pode usar o 'Direct All' em vez de fazê Iniciar RpcSs com caixa de areia como um processo do SISTEMA (quebra alguma compatibilidade) - + Add sandboxed processes to job objects (recommended) Adicionar processos do sandbox a objetos de trabalho (recomendado) @@ -2465,7 +2544,7 @@ Para acesso a arquivos, você pode usar o 'Direct All' em vez de fazê Limitar acesso ao gerenciador de controle de serviço emulado para processos privilegiados - + Open System Protected Storage Abrir Armazenamento Protegido pelo Sistema @@ -2474,33 +2553,33 @@ Para acesso a arquivos, você pode usar o 'Direct All' em vez de fazê Restrições de Elevação - + Open Windows Credentials Store Abrir Credencias de Armazenamento do Windows - + Don't alter window class names created by sandboxed programs Não alterar nomes das classes de janelas criadas por programas na caixa de areia - - + + Protect the sandbox integrity itself Proteger integridade da própria caixa de areia - + Sandbox protection Proteção da caixa de areia - + Compatibility Compatibilidade - + Protect sandboxed SYSTEM processes from unprivileged unsandboxed processes Proteger processos do SISTEMA da caixa de areia de processos fora da caixa sem privilégios @@ -2509,17 +2588,17 @@ Para acesso a arquivos, você pode usar o 'Direct All' em vez de fazê Isolamento da caixa de areia - + Hide Processes Ocultar Processo - + Add Process Adicionar Processo - + Hide host processes from processes running in the sandbox. Ocultar processos do host de processos em execução na sandbox. @@ -2528,32 +2607,32 @@ Para acesso a arquivos, você pode usar o 'Direct All' em vez de fazê Remover Processo - + Don't allow sandboxed processes to see processes running in other boxes Não permitir que processos do sandbox vejam processos em execução de outras caixas - + Users Usuários - + Restrict Resource Access monitor to administrators only Restringir o monitor de acesso a recursos apenas para administradores - + Add User Adicionar Usuário - + Remove User Remover Usuário - + Add user accounts and user groups to the list below to limit use of the sandbox to only those accounts. If the list is empty, the sandbox can be used by all user accounts. Note: Forced Programs and Force Folders settings for a sandbox do not apply to user accounts which cannot use the sandbox. @@ -2562,17 +2641,17 @@ Note: Forced Programs and Force Folders settings for a sandbox do not apply to Nota: As configurações de programas e pastas forçadas para uma caixa de areia não se aplicam a contas de usuários que não podem usar o sandbox. - + Tracing Rastreamento - + Pipe Trace Rastreamento de Pipe - + Log all access events as seen by the driver to the resource access log. This options set the event mask to "*" - All access events @@ -2591,22 +2670,22 @@ Você pode personalizar o registro usando o ini, especificando ao invés de "*". - + Access Tracing Rastrear acesso - + GUI Trace Rastreamento de GUI - + Key Trace Rastreamento de Chave - + File Trace Rastreamento de Arquivo @@ -2616,97 +2695,102 @@ ao invés de "*". Levantar restrições de segurança - + Sandbox isolation Isolamento da caixa de areia - + + Allow access to Bluetooth + + + + Auto Exec Auto Executar - + Here you can specify a list of commands that are executed every time the sandbox is initially populated. Aqui você pode especificar uma lista de comandos que serão executados sempre que o sandbox for iniciado. - + IPC Trace Rastreamento IPC - + Log Debug Output to the Trace Log Registrar a saída de depuração no log de rastreamento - + COM Class Trace COM Class Trace - + <- for this one the above does not apply <- para este o acima não se aplica - + Debug Depurar - + WARNING, these options can disable core security guarantees and break sandbox security!!! AVISO, essas opções podem desativar as garantias de segurança essenciais e interromper a segurança da sandbox!!! - + These options are intended for debugging compatibility issues, please do not use them in production use. Essas opções destinam-se a depurar problemas de compatibilidade, não as use em produção. - + App Templates Modelos de Aplicativos - + Filter Categories Categorias de Filtro - + Text Filter Filtro de Texto - + Category Categoria - + This list contains a large amount of sandbox compatibility enhancing templates Esta lista contém uma grande quantidade de modelos de compatibilidade de caixa de areia - + Edit ini Section Editar Seção ini - + Edit ini Editar ini - + Cancel Cancelar - + Save Salvar @@ -2722,7 +2806,7 @@ ao invés de "*". QObject - + Drive %1 Drive %1 diff --git a/SandboxiePlus/SandMan/sandman_ru.ts b/SandboxiePlus/SandMan/sandman_ru.ts index 06e239c3..7bddebcf 100644 --- a/SandboxiePlus/SandMan/sandman_ru.ts +++ b/SandboxiePlus/SandMan/sandman_ru.ts @@ -41,17 +41,13 @@ Default По умолчанию - - Legacy (old sbie behaviour) - Устаревшее (старое поведение sbie) - Sandboxie-Plus - Create New Box - + Sandboxie-Plus - Создать новую песочницу Legacy Sandboxie Behaviour - + Устаревшее поведение Sandboxie @@ -237,6 +233,54 @@ Executables (*.exe *.cmd);;All files (*.*) Исполняемые файлы (*.exe *.cmd);;Все файлы (*.*) + + Direct + + + + Direct All + + + + Closed + + + + Closed RT + + + + Read Only + + + + Hidden + + + + Unknown + Неизвестно + + + File/Folder + + + + Registry + + + + IPC Path + + + + Wnd Class + + + + COM Object + + CPopUpMessage @@ -523,7 +567,7 @@ Full path: %4 Disabled - + Отключено @@ -708,7 +752,7 @@ Full path: %4 Ignore this update, notify me about the next one. - Игнорировать это обновление, сообщить мне о следующем. + Игнорировать это обновление, сообщить мне о следующем. Please enter the duration for disabling forced programs. @@ -912,7 +956,7 @@ Full path: %4 No sandboxes found; creating: %1 - Песочниц не найдено; создание: %1 + Песочниц не найдено; создание: %1 Cleanup Resource Log @@ -1056,14 +1100,6 @@ Please download the latest release and set it up with the Sandboxie.ini as instr Always on Top Поверх всех окон - - Sellect box: - Выберите песочницу: - - - Some compatybility templates (%1) are missing, probably deleted, do you want to remove them from all boxes? - Некоторые шаблоны совместимости (%1) отсутствуют, вероятно, удалены. Удалить их из всех песочниц? - Cleaned up removed templates... Убраны удаленные шаблоны... @@ -1078,46 +1114,58 @@ Please download the latest release and set it up with the Sandboxie.ini as instr Reset Columns - + Сбросить столбцы Window Finder - + Поиск окон Show Hidden Boxes - + Показать скрытые песочницы Select box: - + Выберите песочницу: Some compatibility templates (%1) are missing, probably deleted, do you want to remove them from all boxes? - + Некоторые шаблоны совместимости (%1) отсутствуют, вероятно, удалены. Удалить их из всех ящиков? Do you want to terminate all processes in all sandboxes? - + Вы хотите завершить все процессы во всех песочницах? Terminate all without asking - + Завершить все, не спрашивая The selected window is running as part of program %1 in sandbox %2 - + Выбранное окно работает как часть программы %1 в изолированной программной среде %2 The selected window is not running as part of any sandboxed program. - + Выбранное окно не запущено как часть какой-либо изолированной программы. Drag the Finder Tool over a window to select it, then release the mouse to check if the window is sandboxed. - + Перетащите инструмент поиска на окно, чтобы выбрать его, затем отпустите кнопку мыши, чтобы проверить, является ли окно изолированным. Sandboxie-Plus - Window Finder + Sandboxie-Plus - Поиск окон + + + Default sandbox not found; creating: %1 + + + + <p>Do you want to go to the <a href="%1">info page</a>?</p> + + + + Don't show this message anymore. @@ -1149,7 +1197,7 @@ Please download the latest release and set it up with the Sandboxie.ini as instr Title - + Заголовок @@ -1372,10 +1420,14 @@ Please download the latest release and set it up with the Sandboxie.ini as instr Do you want to terminate all processes in the selected sandbox(es)? - + Вы хотите завершить все процессы в выбранных песочницах? This sandbox is disabled, do you want to enable it? + Эта песочница отключена, вы хотите ее включить? + + + This Sandbox is empty. @@ -1471,13 +1523,9 @@ Please download the latest release and set it up with the Sandboxie.ini as instr SandboxiePlus new box Sandboxie-Plus новая песочница - - Enter a name for the new box: - Введите имя для новой песочницы: - Sandbox Name: - + Имя песочницы: @@ -2027,6 +2075,10 @@ Note: Forced Programs and Force Folders settings for a sandbox do not apply to Here you can specify a list of commands that are executed every time the sandbox is initially populated. Здесь вы можете указать список команд, которые будут выполняться каждый раз при первоначальном заполнении песочницы. + + Allow access to Bluetooth + + PopUpWindow diff --git a/SandboxiePlus/SandMan/sandman_tr.ts b/SandboxiePlus/SandMan/sandman_tr.ts index 662a4b05..b5dd3330 100644 --- a/SandboxiePlus/SandMan/sandman_tr.ts +++ b/SandboxiePlus/SandMan/sandman_tr.ts @@ -1,2229 +1,2393 @@ - - - - - CApiMonModel - - Message - Mesaj - - - Time Stamp - Zaman Damgası - - - Process - İşlem - - - - CMultiErrorDialog - - Message - Mesaj - - - Sandboxie-Plus - Error - Sandboxie-Plus - Hata - - - - CNewBoxWindow - - New Box - Yeni Korumalı Kutu - - - Hardened - Zorlanmış (hardened) - - - Default - Öntanımlı - - - Legacy (old sbie behaviour) - Eski (eski sbie davranışı) - - - - COptionsWindow - - Always show - Her zaman göster - - - Template values can not be edited. - Şablon değerleri düzenlenemez. - - - Lingerer - çevirinin oyalayıcı olduğuna emin değilim. orijinali Lingerer - Oyalayıcı - - - Browse for File - Dosya için Göz At - - - Please enter a menu title - Lütfen bir menü başlığı girin - - - Select Directory - Dizin Seç - - - Please enter a name for the new group - Lütfen yeni grup için bir isim girin - - - Please enter a program file name - Lütfen bir program dosyası adı girin - - - Template values can not be removed. - Şablon değerleri kaldırılamaz. - - - Display box name in title - Başlıkta kutu adını göster. - - - Folder - Dizin - - - Sandboxie Plus - '%1' Options - Sandboxie Plus - '%1' Ayarlar - - - Leader - Lider - - - Group: %1 - Grup: %1 - - - Process - İşlem - - - Display [#] indicator only - Yalnızca [#] göstergesini görüntüle - - - %1 (%2) - %1 (%2) - - - Border disabled - Sınır devre dışı - - - All Categories - Tüm Kategoriler - - - Please enter a file extension to be excluded - Lütfen hariç tutulacak bir dosya uzantısı girin - - - Exclusion - Hariç tutma - - - Select File - Dosya Seç - - - This template is enabled globally. To configure it, use the global options. - Bu şablon genel (global) olarak etkindir. Yapılandırmak için genel ayarları kullanın. - - - Please select group first. - Lütfen önce grubu seçin. - - - All Files (*.*) - Tüm Dosyalar (*.*) - - - Show only when title is in focus - Yalnızca başlık odaktayken göster - - - Select Program - Program Seç - - - Please enter a command - Lütfen bir komut girin - - - kilobytes (%1) - kilobayt (%1) - - - Don't alter the window title - Pencere başlığını değiştirme - - - All Programs - Tüm Programlar - - - Browse for Folder - Dizin için Göz At - - - Enter program: - Program girin: - - - Executables (*.exe|*.cmd) - Çalıştırılabilir dosyalar (*.exe|*.cmd) - - - COM objects must be specified by their GUID, like: {00000000-0000-0000-0000-000000000000} - COM nesneleri GUID'lerine göre belirtilmelidir, bunun gibi: {00000000-0000-0000-0000-000000000000} - - - RT interfaces must be specified by their name. - RT arayüzleri isimleriyle belirtilmelidir. - - - Browse for Program - Program için Göz At - - - Please enter a program path - Lütfen bir program yolu girin - - - Please enter a service identifier - Lütfen bir hizmet tanımlayıcı girin - - - Service - Hizmet - - - Program - Program - - - Please enter an auto exec command - Lütfen bir otomatik yürütme komutu girin - - - This sandbox has been deleted hence configuration can not be saved. - Bu korumalı kutu silindi, bu nedenle yapılandırma kaydedilemiyor. - - - Some changes haven't been saved yet, do you really want to close this options window? - Bazı değişiklikler henüz kaydedilmedi, bu ayarlar penceresini gerçekten kapatmak istiyor musunuz? - - - Executables (*.exe *.cmd);;All files (*.*) - Çalıştırılabilir dosyalar (*.exe *.cmd);;Tüm dosyalar (*.*) - - - - CPopUpMessage - - ? - ? - - - Hide all such messages - Tüm bu tür mesajları gizle - - - Remove this message from the list - Bu mesajı listeden kaldır - - - Dismiss - Reddet - - - Visit %1 for a detailed explanation. - Ayrıntılı açıklama için %1'i ziyaret edin. - - - - CPopUpProgress - - Remove this progress indicator from the list - Bu ilerleme göstergesini listeden kaldır - - - Dismiss - Reddet - - - - CPopUpPrompt - - No - Hayır - - - Yes - Evet - - - Requesting process terminated - Talep işlemi sonlandırıldı - - - Remember for this process - Bu işlemi hatırla - - - Terminate - Sonlandır - - - Request will time out in %1 sec - İsteğin süresi %1 saniye içinde dolacak - - - Request timed out - İsteğin süresi doldu - - - Yes and add to allowed programs - Evet ve izin verilen programlara ekle - - - - CPopUpRecovery - - Disable quick recovery until the box restarts - Korumalı kutu yeniden başlayana kadar hızlı kurtarmayı devre dışı bırak - - - Recover - Kurtarma - - - Recover the file to original location - Dosyayı orijinal konumuna kurtar - - - Dismiss - Reddet - - - Don't recover this file right now - Bu dosyayı şimdi geri yükle - - - Open file recovery for this box - Bu korumalı kutu için dosya kurtarmayı etkinleştir - - - Dismiss all from this box - Bu korumalı kutudaki her şeyi reddet - - - Recover to: - Şuraya geri yükle: - - - Browse - Göz At - - - Clear folder list - Dizin listesini temizle - - - Recover && Explore - Kurtar && Keşfet - - - Recover && Open/Run - Kurtar && Aç/Çalıştır - - - Select Directory - Dizin Seç - - - - CPopUpWindow - - an UNKNOWN process. - BİLİNMEYEN bir işlem. - - - Sandboxie-Plus Notifications - Sandboxie-Plus Bildirimleri - - - %1 (%2) - %1 (%2) - - - UNKNOWN - BİLİNMEYEN - - - Do you want to allow the print spooler to write outside the sandbox for %1 (%2)? - Yazdırma biriktiricisinin %1 (%2) için korumalı kutunun dışına yazmasına izin vermek istiyor musunuz? - - + + + + + CApiMonModel + + Message + Mesaj + + + Time Stamp + Zaman Damgası + + + Process + İşlem + + + + CMultiErrorDialog + + Message + Mesaj + + + Sandboxie-Plus - Error + Sandboxie-Plus - Hata + + + + CNewBoxWindow + + New Box + Yeni Korumalı Kutu + + + Hardened + Zorlanmış (hardened) + + + Default + Öntanımlı + + + Legacy (old sbie behaviour) + Eski (eski sbie davranışı) + + + Sandboxie-Plus - Create New Box + + + + Legacy Sandboxie Behaviour + + + + + COptionsWindow + + Always show + Her zaman göster + + + Template values can not be edited. + Şablon değerleri düzenlenemez. + + + Lingerer + çevirinin oyalayıcı olduğuna emin değilim. orijinali Lingerer + Oyalayıcı + + + Browse for File + Dosya için Göz At + + + Please enter a menu title + Lütfen bir menü başlığı girin + + + Select Directory + Dizin Seç + + + Please enter a name for the new group + Lütfen yeni grup için bir isim girin + + + Please enter a program file name + Lütfen bir program dosyası adı girin + + + Template values can not be removed. + Şablon değerleri kaldırılamaz. + + + Display box name in title + Başlıkta kutu adını göster. + + + Folder + Dizin + + + Sandboxie Plus - '%1' Options + Sandboxie Plus - '%1' Ayarlar + + + Leader + Lider + + + Group: %1 + Grup: %1 + + + Process + İşlem + + + Display [#] indicator only + Yalnızca [#] göstergesini görüntüle + + + %1 (%2) + %1 (%2) + + + Border disabled + Sınır devre dışı + + + All Categories + Tüm Kategoriler + + + Please enter a file extension to be excluded + Lütfen hariç tutulacak bir dosya uzantısı girin + + + Exclusion + Hariç tutma + + + Select File + Dosya Seç + + + This template is enabled globally. To configure it, use the global options. + Bu şablon genel (global) olarak etkindir. Yapılandırmak için genel ayarları kullanın. + + + Please select group first. + Lütfen önce grubu seçin. + + + All Files (*.*) + Tüm Dosyalar (*.*) + + + Show only when title is in focus + Yalnızca başlık odaktayken göster + + + Select Program + Program Seç + + + Please enter a command + Lütfen bir komut girin + + + kilobytes (%1) + kilobayt (%1) + + + Don't alter the window title + Pencere başlığını değiştirme + + + All Programs + Tüm Programlar + + + Browse for Folder + Dizin için Göz At + + + Enter program: + Program girin: + + + Executables (*.exe|*.cmd) + Çalıştırılabilir dosyalar (*.exe|*.cmd) + + + COM objects must be specified by their GUID, like: {00000000-0000-0000-0000-000000000000} + COM nesneleri GUID'lerine göre belirtilmelidir, bunun gibi: {00000000-0000-0000-0000-000000000000} + + + RT interfaces must be specified by their name. + RT arayüzleri isimleriyle belirtilmelidir. + + + Browse for Program + Program için Göz At + + + Please enter a program path + Lütfen bir program yolu girin + + + Please enter a service identifier + Lütfen bir hizmet tanımlayıcı girin + + + Service + Hizmet + + + Program + Program + + + Please enter an auto exec command + Lütfen bir otomatik yürütme komutu girin + + + This sandbox has been deleted hence configuration can not be saved. + Bu korumalı kutu silindi, bu nedenle yapılandırma kaydedilemiyor. + + + Some changes haven't been saved yet, do you really want to close this options window? + Bazı değişiklikler henüz kaydedilmedi, bu ayarlar penceresini gerçekten kapatmak istiyor musunuz? + + + Executables (*.exe *.cmd);;All files (*.*) + Çalıştırılabilir dosyalar (*.exe *.cmd);;Tüm dosyalar (*.*) + + + Direct + + + + Direct All + + + + Closed + + + + Closed RT + + + + Read Only + + + + Hidden + + + + Unknown + Bilinmeyen + + + File/Folder + + + + Registry + + + + IPC Path + + + + Wnd Class + + + + COM Object + + + + + CPopUpMessage + + ? + ? + + + Hide all such messages + Tüm bu tür mesajları gizle + + + Remove this message from the list + Bu mesajı listeden kaldır + + + Dismiss + Reddet + + + Visit %1 for a detailed explanation. + Ayrıntılı açıklama için %1'i ziyaret edin. + + + + CPopUpProgress + + Remove this progress indicator from the list + Bu ilerleme göstergesini listeden kaldır + + + Dismiss + Reddet + + + + CPopUpPrompt + + No + Hayır + + + Yes + Evet + + + Requesting process terminated + Talep işlemi sonlandırıldı + + + Remember for this process + Bu işlemi hatırla + + + Terminate + Sonlandır + + + Request will time out in %1 sec + İsteğin süresi %1 saniye içinde dolacak + + + Request timed out + İsteğin süresi doldu + + + Yes and add to allowed programs + Evet ve izin verilen programlara ekle + + + + CPopUpRecovery + + Disable quick recovery until the box restarts + Korumalı kutu yeniden başlayana kadar hızlı kurtarmayı devre dışı bırak + + + Recover + Kurtarma + + + Recover the file to original location + Dosyayı orijinal konumuna kurtar + + + Dismiss + Reddet + + + Don't recover this file right now + Bu dosyayı şimdi geri yükle + + + Open file recovery for this box + Bu korumalı kutu için dosya kurtarmayı etkinleştir + + + Dismiss all from this box + Bu korumalı kutudaki her şeyi reddet + + + Recover to: + Şuraya geri yükle: + + + Browse + Göz At + + + Clear folder list + Dizin listesini temizle + + + Recover && Explore + Kurtar && Keşfet + + + Recover && Open/Run + Kurtar && Aç/Çalıştır + + + Select Directory + Dizin Seç + + + + CPopUpWindow + + an UNKNOWN process. + BİLİNMEYEN bir işlem. + + + Sandboxie-Plus Notifications + Sandboxie-Plus Bildirimleri + + + %1 (%2) + %1 (%2) + + + UNKNOWN + BİLİNMEYEN + + + Do you want to allow the print spooler to write outside the sandbox for %1 (%2)? + Yazdırma biriktiricisinin %1 (%2) için korumalı kutunun dışına yazmasına izin vermek istiyor musunuz? + + + Do you want to allow %4 (%5) to copy a %1 large file into sandbox: %2? +File name: %3 + %4 (%5)'in %1 büyük bir dosyayı %2 korumalı kutusuna kopyalamasına izin vermek istiyor musunuz? +Dosya adı: %3 + + + Do you want to allow %1 (%2) access to the internet? +Full path: %3 + %1 (%2)'in internet erişimine izin vermek istiyor musunuz? +Tam yol: %3 + + + %1 is eligible for quick recovery from %2. +The file was written by: %3 + %1, %2'den hızlı kurtarma için uygun. +Dosyayı yazan: %3 + + + Migrating a large file %1 into the sandbox %2, %3 left. +Full path: %4 + Büyük bir dosya %1, %2 korumalı kutusuna taşınıyor, %3 kaldı. +Tam yol: %4 + + Do you want to allow %4 (%5) to copy a %1 large file into sandbox: %2? -File name: %3 - %4 (%5)'in %1 büyük bir dosyayı %2 korumalı kutusuna kopyalamasına izin vermek istiyor musunuz? -Dosya adı: %3 - - +File name: %3 + + + Do you want to allow %1 (%2) access to the internet? -Full path: %3 - %1 (%2)'in internet erişimine izin vermek istiyor musunuz? -Tam yol: %3 - - +Full path: %3 + + + %1 is eligible for quick recovery from %2. -The file was written by: %3 - %1, %2'den hızlı kurtarma için uygun. -Dosyayı yazan: %3 - - +The file was written by: %3 + + + Migrating a large file %1 into the sandbox %2, %3 left. -Full path: %4 - Büyük bir dosya %1, %2 korumalı kutusuna taşınıyor, %3 kaldı. -Tam yol: %4 - - - - CRecoveryWindow - - File Name - Dosya Adı - - - File Size - Dosya Boyutu - - - Full Path - Tam yol - - - Select Directory - Dizin Seç - - - %1 - File Recovery - %1 - Dosya Kurtarma - - - One or more selected files are located on a network share, and must be recovered to a local drive, please select a folder to recover all selected files to. - Bir veya daha fazla seçili dosya bir ağ paylaşımında bulunuyor ve yerel bir sürücüye kurtarılması gerekiyor, lütfen tüm seçili dosyaların kurtarılacağı bir dizin seçin. - - - There are %1 files and %2 folders in the sandbox, occupying %3 bytes of disk space. - Korumalı alanda %3 bayt disk alanı kaplayan %1 dosya ve %2 dizin var. - - - - CResMonModel - - Type - Tür - - - Value - Değer - - - Status - Durum - - - Time Stamp - Zaman Damgası - - - Process - İşlem - - - Unknown - Bilinmeyen - - - - CSandBoxPlus - - No Admin - Yönetici Yok - - - No INet - INet yok - - - Normal - Normal - - - API Log - API Günlüğü - - - Net Share - Net Paylaşımı - - - NOT SECURE (Debug Config) - GÜVENLİ DEĞİL (Hata Ayıklama Yapılandırması) - - - Enhanced Isolation - Geliştirilmiş İzolasyon - - - Reduced Isolation - Azaltılmış İzolasyon - - - - CSandMan - - Exit - Çıkış - - - <p>New Sandboxie-Plus has been downloaded to the following location:</p><p><a href="%2">%1</a></p><p>Do you want to begin the installation? If any programs are running sandboxed, they will be terminated.</p> - <p>Yeni Sandboxie-Plus şu konuma indirildi:</p><p><a href="%2">%1</a></p><p>Kuruluma başlamak istiyor musunuz? Herhangi bir program korumalı kutu içinde çalışıyorsa, sonlandırılacaktır.</p> - - - Sandboxie-Plus was started in portable mode and it needs to create necessary services. This will prompt for administrative privileges. - Sandboxie-Plus taşınabilir modda başlatıldı ve gerekli hizmetleri oluşturması gerekiyor. Bunun için yönetici ayrıcalıkları isteyecektir. - - - Cleanup Processes - Temizleme İşlemleri - - - Maintenance operation %1 - Bakım işlemi %1 - - - &Help - &Yardım - - - &View - &Görünüm - - - Error deleting sandbox folder: %1 - Korumalı kutu dizini silinirken hata: %1 - - - About Sandboxie-Plus - Sandboxie-Plus Hakkında - - - Driver version: %1 - Sürücü sürümü: %1 - - - Sandboxie-Plus v%1 - Sandboxie-Plus v%1 - - - Start Driver - Sürücüyü Başlat - - - Install Driver - Sürücüyü Kur - - - Uninstall Driver - Sürücüyü Kaldır - - - Check for Updates - Güncellemeleri kontrol et - - - Visit Support Forum - Destek Forumu'tnu ziyaret et - - - Failed to copy configuration from sandbox %1: %2 - Yapılandırma %1'den %2 korumalı kutusuna kopyalanamadı - - - Do you want to check if there is a new version of Sandboxie-Plus? - Sandboxie-Plus'ın yeni sürümünü kontrol etmek ister misiniz? - - - Cleanup Api Call Log - Api Çağrı Günlüğünü Temizle - - - Simple View - Basit Görünüm - - - %1 (%2): - %1 (%2): - - - Login Failed: %1 - Giriş başarısız: %1 - - - Clean Up - Temizle - - - Don't show this message again. - Bu mesajı bir daha gösterme. - - - Uninstall Service - Hizmeti Kaldır - - - Start Service - Hizmeti Başlat - - - Install Service - Hizmeti yükle - - - Failed to remove old snapshot directory '%1' - Eski anlık görüntü dizini kaldırılamadı '%1' - - - The changes will be applied automatically as soon as the editor is closed. - Düzenleyici kapanınca değişiklikler otomatik olarak uygulanacaktır. - - - Do you want to close Sandboxie Manager? - Sandboxie Yöneticisi'ni kapatmak istiyor musunuz? - - - Support Sandboxie-Plus with a Donation - Sandboxie-Plus'ı Bağış ile Destekle - - - Failed to create directory for new snapshot - Yeni anlık görüntü için dizin oluşturulamadı - - - Sandboxie-Plus was running in portable mode, now it has to clean up the created services. This will prompt for administrative privileges. - Sandboxie-Plus taşınabilir modda çalışıyordu, şimdi oluşturulan hizmetleri temizlemesi gerekiyor. Bu, yönetici ayrıcalıkları isteyecektir. - - - - Portable - - Taşınabilir - - - Failed to download update from: %1 - %1'den güncelleme indirilemedi - - - Api Call Log - Api Çağrı Günlüğü - - - Stop Driver - Sürücüyü Durdur - - - Don't show this announcement in the future. - Bu duyuruyu gelecekte gösterme. - - - Sbie Messages - Sbie Mesajları - - - Failed to recover some files: - - Bazı dosyalar kurtarılamadı: - - - - Failed to move directory '%1' to '%2' - '%1' dizini, '%2' dizinine taşınamadı - - - Recovering file %1 to %2 - %1'dan %2'a dosya kurtarılıyor - - - Resource Logging - Kaynak Günlüğü - - - Online Documentation - Çevrimiçi Belgeler - - - Ignore this update, notify me about the next one. - Bu güncellemeyi yoksay, bir sonrakini bana bildir. - - - Please enter the duration for disabling forced programs. - Zorlanmış programların devre dışı bırakma süresini girin. - - - Sbie Directory: %1 - Sbie Dizini: %1 - - - <p>Do you want to download the latest version?</p> - <p>En son sürümü indirmek ister misiniz?</p> - - - Sandboxie-Plus - Error - Sandboxie-Plus - Hata - - - Time|Message - Zaman|Mesaj - - - &Options - &Ayarlar - - - Show/Hide - Göster/Gizle - - - Resource Monitor - Kaynak İzleme - - - A sandbox must be emptied before it can be deleted. - Bir korumalı kutu, silinmeden önce boşaltılmalıdır. - - - The sandbox name can contain only letters, digits and underscores which are displayed as spaces. - Korumalı kutu adı yalnızca harf, rakam ve alt çizgi içerebilir. - - - A sandbox must be emptied before it can be renamed. - Bir korumalı kutu, yeniden adlandırılmadan önce boşaltılmalıdır. - - - API Call Logging - API Çağrı Günlüğü - - - Loaded Config: %1 - Yüklü Yapılandırma: %1 - - - Reload ini file - İni dosyasını yeniden yükle - - - &Maintenance - &Bakım - - - The sandbox name can not be a device name. - Korumalı kutu adı bir cihaz adı olamaz. - - - Operation failed for %1 item(s). - %1 öge için işlem başarısız oldu. - - - Global Settings - Genel Ayarlar - - - Downloading new version... - Yeni sürüm indiriliyor... - - - &Sandbox - &KumKutusu - - - <h3>About Sandboxie-Plus</h3><p>Version %1</p><p>Copyright (c) 2020-2021 by DavidXanatos</p> - <h3>Sandboxie-Plus Hakkında</h3><p>Sürüm %1</p><p>Telif hakkı (c) 2020-2021 DavidXanatos</p> - - - Cleanup - Temizle - - - Failed to check for updates, error: %1 - Güncellemeler kontrol edilemedi, hata: %1 - - - Disconnect - Bağlantıyı kes - - - Connect - Bağlan - - - Only Administrators can change the config. - Yapılandırmayı yalnızca Yöneticiler değiştirebilir. - - - Disable Forced Programs - Zorlanmış Programları Devre Dışı Bırak - - - Snapshot not found - Anlık görüntü bulunamadı - - - Failed to remove old RegHive - Eski RegHive kaldırılamadı - - - Stop All - Tümünü durdur - - - Delete protection is enabled for the sandbox - Korumalı kutu için silme koruması etkinleştirildi - - - &Advanced - &Gelişmiş - - - Executing maintenance operation, please wait... - Bakım işlemi yapılıyor, lütfen bekleyin... - - - <p>There is a new version of Sandboxie-Plus available.<br /><font color='red'>New version:</font> <b>%1</b></p> - <p>Sandboxie-Plus'ın yeni bir sürümü var.<br /><font color='red'>Yeni sürüm:</font> <b>%1</b></p> - - - Stop Service - Hizmeti durdur - - - Create New Box - Yeni Kutu Oluştur - - - Failed to terminate all processes - Tüm işlemler sonlandırılamadı - - - Advanced View - Gelişmiş Görünüm - - - Failed to delete sandbox %1: %2 - %1: %2 korumalı kutusu silinemedi - - - <p>İndirme sayfasına <a href="%1">gitmek ister misiniz</a>?</p> - <p>Вы хотите перейти на <a href="%1">страницу загрузки</a>?</p> - - - Maintenance operation Successful - Bakım işlemi Başarılı - - - PID %1: - PID %1: - - - Error Status: %1 - Hata durumu: %1 - - - Terminate All Processes - Tüm işlemleri sonlandır - - - Please enter the configuration password. - Lütfen yapılandırma parolasını girin. - - - You are not authorized to update configuration in section '%1' - Bölümdeki konfigürasyonu güncelleme yetkiniz yok '%1' - - - server not reachable - sunucuya ulaşılamıyor - - - Error merging snapshot directories '%1' with '%2', the snapshot has not been fully merged. - '%1' ve '%2' anlık görüntü dizinleri birleştirilirken hata oluştu, anlık görüntü tam olarak birleştirilmedi. - - - Edit ini file - İni dosyasını düzenle - - - Checking for updates... - Güncellemeler kontrol ediliyor... - - - No sandboxes found; creating: %1 - Korumalı kutu bulunamadı; oluşturuluyor: %1 - - - Cleanup Resource Log - Kaynak Günlüğünü Temizle - - - Cleanup Message Log - Mesaj Günlüğünü Temizle - - - About the Qt Framework - Qt Framework hakkında - - - Keep terminated - Sonlandırılmış tut - - - A sandbox of the name %1 already exists - %1 adında bir korumalı kutu zaten var - - - Failed to set configuration setting %1 in section %2: %3 - %2: %3 bölümünde %1 yapılandırma parametresi ayarlanamadı - - - Reset all hidden messages - Tüm gizli mesajları sıfırla - - - - NOT connected - - Bağlı DEĞİL - - - Do you also want to reset hidden message boxes (yes), or only all log messages (no)? - Gizli mesaj kutularını dahil herşeyi (evet) veya sadece tüm günlük mesajlarını (hayır) sıfırlamak mı istiyorsunuz? - - - The changes will be applied automatically whenever the file gets saved. - Dosya her kaydedildiğinde değişiklikler otomatik olarak uygulanacaktır. - - - Administrator rights are required for this operation. - Bu işlem için yönetici hakları gereklidir. - - - Failed to execute: %1 - %1 çalıştırılamadı - - - Failed to connect to the driver - Sürücüye bağlanılamadı - - - Failed to communicate with Sandboxie Service: %1 - Sandboxie Hizmeti ile iletişim kurulamadı: %1 - - - An incompatible Sandboxie %1 was found. Compatible versions: %2 - Uyumsuz bir Sandboxie %1 bulundu. Uyumlu versiyonlar: %2 - - - Can't find Sandboxie installation path. - Sandboxie kurulum yolu bulunamıyor. - - - The sandbox name can not be longer than 32 characters. - Korumalı kutu adı 32 karakterden uzun olamaz. - - - This Snapshot operation can not be performed while processes are still running in the box. - Bu Anlık Görüntü işlemi, işlemler kutuda hala çalışırken gerçekleştirilemez. - - - Failed to copy RegHive - RegHive kopyalanamadı - - - Can't remove a snapshot that is shared by multiple later snapshots - Sonraki birden çok anlık görüntü tarafından paylaşılan bir anlık görüntü kaldırılamaz - - - Unknown Error Status: %1 - Bilinmeyen Hata Durumu: %1 - - - Do you want to open %1 in a sandboxed (yes) or unsandboxed (no) Web browser? - %1'i korumalı (evet) veya korumasız (hayır) bir tarayıcıda mı açmak istiyorsunuz? - - - Remember choice for later. - Seçimi hatırla. - - - Copy Cell - Hücreyi Kopyala - - - Copy Row - Satırı Kopyala - - - Copy Panel - Paneli Kopyala - - - Failed to stop all Sandboxie components - Tüm Sandboxie bileşenleri durdurulamadı - - - Failed to start required Sandboxie components - Gerekli Sandboxie bileşenleri başlatılamadı - - - Sandboxie-Plus was started in portable mode, do you want to put the SandBox folder into its parent directory? - Sandboxie-Plus taşınabilir modda başlatıldı, SandBox klasörünü kendi ana dizinine koymak ister misiniz? - - - The file %1 already exists, do you want to overwrite it? - %1 dosyası zaten var, üzerine yazmak istiyor musunuz? - - - Do this for all files! - Bunu tüm dosyalar için yap! - - - To use API logging you must first set up the LogApiDll from https://github.com/sandboxie-plus/LogApiDll with one or more sandboxes. -Please download the latest release and set it up with the Sandboxie.ini as instructed in the README.md of the project. - API günlüğünü kullanmak için önce https://github.com/sandboxie-plus/LogApiDll adresinden bir veya daha fazla korumalı kutu ile LogApiDll'yi kurmanız gerekir. - Lütfen en son sürümü indirin ve projenin README.md dosyasında belirtildiği gibi Sandboxie.ini ile kurun. - - - No new updates found, your Sandboxie-Plus is up-to-date. - Yeni güncelleme bulunamadı, Sandboxie-Plus'ınız güncel. - - - <p>Sandboxie-Plus is an open source continuation of Sandboxie.</p><p></p><p>Visit <a href="https://sandboxie-plus.com">sandboxie-plus.com</a> for more information.</p><p></p><p></p><p></p><p>Icons from <a href="https://icons8.com">icons8.com</a></p><p></p> - <p>Sandboxie-Plus, Sandboxie'nin açık kaynaklı bir devamıdır.</p><p></p><p>Daha fazla bilgi için <a href="https://sandboxie-plus.com">sandboxie-plus.com</a> ziyaret edin.</p><p></p><p></p><p></p><p>İkonlar: <a href="https://icons8.com">icons8.com</a></p><p></p> - - - Always on Top - Her zaman üstte - - - Sellect box: - Kutu Seç: - - - Some compatybility templates (%1) are missing, probably deleted, do you want to remove them from all boxes? - Bazı uyumluluk şablonları (%1) eksik, büyük olasılıkla silinmiş, bunları tüm kutulardan kaldırmak istiyor musunuz? - - - Cleaned up removed templates... - Kaldırılan şablonlar temizlendi... - - - Can not create snapshot of an empty sandbox - Boş bir korumalı kutunun anlık görüntüsü oluşturulamaz - - - A sandbox with that name already exists - Bu adda bir korumalı kutu zaten var - - - - CSbieModel - - Name - Ad - - - Box Groupe - Kutu Grubu - - - Status - Durum - - - Start Time - Başlangıç Zamanı - - - Process ID - İşlem Kimliği - - - Path / Command Line - Yol / Komut Satırı - - - - CSbieProcess - - Terminated - Sonlandırılmış - - - Running - Çalışıyor - - - - CSbieView - - Run - Çalıştır - - - Create Shortcut to sandbox %1 - %1 korumalı kutusuna kısayol oluştur - - - Options: - - Ayarlar: - - - - Drop Admin Rights - Yönetici haklarını bırak - - - Run eMail Client - ePosta istemcisini çalıştır - - - Remove Group - Grubu Kaldır - - - Sandbox Options - KumKutusu Ayarları - - - Sandbox Presets - KumKutusu ÖnAyarları - - - Do you want to %1 the selected process(es) - Seçili işlemleri %1 etmek istiyor musunuz? - - - Move to Group - Gruba Taşı - - - Remove Sandbox - KumKutusunu Kaldır - - - Rename Sandbox - KumKutusunu Yeniden Adlandır - - - Run from Start Menu - Başlat Menüsünden Çalıştır - - - Preset - Önayar - - - Please enter a new group name - Lütfen yeni bir grup adı girin - - - Enable API Call logging - API Çağrısı günlük kaydını etkinleştir - - - [None] - [Yok] - - - Please enter a new name for the Sandbox. - Lütfen Korumalı Kutu için yeni bir ad girin. - - - Add Group - Grup ekle - - - Delete Content - İçeriği Sil - - - Do you really want to remove the selected sandbox(es)? - Seçili korumalı kutu(lar)ı gerçekten kaldırmak istiyor musunuz? - - - Run Program - Program çalıştır - - - IPC root: %1 - - IPC kökü: %1 - - - - Block and Terminate - Engelle ve Sonlandır - - - Registry root: %1 - - Kayıt kökü: %1 - - - - File root: %1 - - Dosya kökü: %1 - - - - Terminate - Sonlandır - - - Set Leader Process - Lider İşlemi Seç - - - Terminate All Programs - Tüm Programları Sonlandır - - - Do you really want to remove the selected group(s)? - Seçili grup(lar)ı gerçekten kaldırmak istiyor musunuz? - - - Run Web Browser - Web Tarayıcı Çalıştır - - - Allow Network Shares - Ağ Paylaşımlarına İzin Ver - - - Run Cmd.exe - Cmd.exe'yi çalıştır - - - Snapshots Manager - Anlık Görüntü Yöneticisi - - - Run Explorer - Dosya Gezginini Çalıştır - - - Block Internet Access - İnternet Erişimini Engelle - - - Set Linger Process - Oyalayıcı İşlemi Ayarla - Установить отложенный процесса - - - Create New Box - Yeni KumKutusu Oluştur - - - Pin to Run Menu - Çalıştır Menüsüne Sabitle - - - Recover Files - Dosyaları Kurtar - - - Explore Content - İçeriği Keşfet - - - Create Shortcut - Kısayol Oluştur - - - Allow internet access - İnternet erişimine izin ver - - - Force into this sandbox - Bu korumalı kutuya zorla - - - This box does not have Internet restrictions in place, do you want to enable them? - Bu kutuda İnternet kısıtlamaları yok, bunları etkinleştirmek istiyor musunuz? - - - Don't show this message again. - Bu mesajı bir daha gösterme. - - - This Sandbox is already empty. - Bu KumKutusu zaten boş. - - - Do you want to delete the content of the selected sandbox? - Seçili korumalı kutunun içeriğini silmek istiyor musunuz? - - - Do you really want to delete the content of multiple sandboxes? - Birden çok korumalı kutunun içeriğini gerçekten silmek istiyor musunuz? - - - - CSettingsWindow - - Close - Kapat - - - Please enter the new configuration password. - Lütfen yeni yapılandırma parolasını girin. - - - Close to Tray - Tepsi durumuna kapat - - - Select Directory - Dizin Seç - - - Please enter a program file name - Lütfen bir program dosyası adı girin - - - Folder - Dizin - - - Prompt before Close - Kapatmadan önce sor - - - Process - İşlem - - - Sandboxie Plus - Settings - Sandboxie Plus - Ayarlar - - - Please re-enter the new configuration password. - Lütfen yeni yapılandırma parolasını tekrar girin. - - - Passwords did not match, please retry. - Parolalar eşleşmedi, lütfen tekrar deneyin. - - - - CSnapshotsWindow - - Do you really want to delete the selected snapshot? - Seçilen anlık görüntüyü gerçekten silmek istiyor musunuz? - - - New Snapshot - Yeni Anlık Görüntü - - - Snapshot - Anlık Görüntü - - - Do you really want to switch the active snapshot? Doing so will delete the current state! - Aktif anlık görüntüyü gerçekten değiştirmek istiyor musunuz? Bunu yapmak mevcut durumu siler! - - - %1 - Snapshots - %1 - Anlık görüntüler - - - Please enter a name for the new Snapshot. - Lütfen yeni Anlık Görüntü için bir ad girin. - - - - NewBoxWindow - - Copy options from an existing box: - Mevcut bir kutudan seçenekleri kopyalayın: - - - Initial sandbox configuration: - İlk korumalı kutu yapılandırması: - - - Select restriction/isolation template: - Kısıtlama/izolasyon şablonunu seçin: - - - SandboxiePlus new box - SandboxiePlus yeni kutu - - - Enter a name for the new box: - Yeni kutu için bir ad girin: - - - - OptionsWindow - - Name - Ad - - - Path - Yol - - - Save - Kaydet - - - Type - Tür - - - Allow only selected programs to start in this sandbox. * - Bu korumalı kutuda yalnızca seçili programların başlamasına izin ver. * - - - Force Folder - Dizini zorla - - - Add IPC Path - IPC Yolu Ekle - - - Sandbox Indicator in title: - Başlıktaki Korumalı Kutu Göstergesi: - - - Debug - Hata ayıklama - - - Users - Kullanıcılar - - - Block network files and folders, unless specifically opened. - Özel olarak açılmadıkça ağ dosyalarını ve klasörlerini engelle. - - - Command Line - Komut Satırı - - - Don't alter window class names created by sandboxed programs - Korumalı alandaki programlar tarafından oluşturulan pencere sınıfı adlarını değiştirme - - - Internet Restrictions - İnternet Kısıtlamaları - - - Configure which processes can access what resources. Double click on an entry to edit it. -'Direct' File and Key access only applies to program binaries located outside the sandbox. -Note that all Close...=!<program>,... exclusions have the same limitations. -For files access you can use 'Direct All' instead to make it apply to all programs. - Hangi işlemlerin hangi kaynaklara erişebileceğini yapılandırın. Düzenlemek için bir girişi çift tıklayın. -'Doğrudan' Dosya ve Anahtar erişimi, yalnızca sanal alanın dışında bulunan program ikili dosyaları için geçerlidir. -Tüm...=!<program>,... kapat istisnalarının aynı sınırlamalara sahip olduğunu unutmayın. -Dosyalara erişim için tek tek tüm programlara uygulamak yerine 'Tümünü Yönlendir' kullanabilirsiniz. - - - Log Debug Output to the Trace Log - İzleme Günlüğünde Hata Ayıklamayı kaydet - - - Forced Programs - Zorlanmış Programlar - - - Add Wnd Class - Wnd Sınıfı Ekle - - - Access Tracing - Erişim İzleme - - - File Options - Dosya Ayarları - - - General Options - Genel Ayarlar - - - Open Windows Credentials Store - Windows Kimlik Bilgileri Mağazasını Aç - - - kilobytes - kilobayt - - - Lingering programs will be automatically terminated if they are still running after all other processes have been terminated. - -If leader processes are defined, all others are treated as lingering processes. - Kalan programlar, diğer tüm işlemler sonlandırıldıktan sonra hala çalışıyorsa otomatik olarak sonlandırılacaktır. - - Lider işlemler tanımlanırsa, diğer tüm süreçler oyalayıcı süreçler olarak değerlendirilir. - - - Allow all programs to start in this sandbox. - Tüm programların bu kutuda başlamasına izin ver. - - - Enable Immediate Recovery prompt to be able to recover files as soon as thay are created. - Dosyaları oluşturulur oluşturulmaz kurtarabilmek için Anında Kurtarma istemini etkinleştir. - - - General restrictions - Genel kısıtlamalar - - - Move Up - Yukarı Taşı - - - Access - Erişim - - - These options are intended for debugging compatibility issues, please do not use them in production use. - Bu seçenekler uyumluluk sorunlarını gidermek için tasarlanmıştır, lütfen bunları üretim kullanımında kullanmayın. - - - Text Filter - Metin Filtresi - - - Cancel - İptal - - - Restrict Resource Access monitor to administrators only - Kaynak Erişimi izleyicisini yalnızca yöneticilerle kısıtla - - - Protect the sandbox integrity itself - Korumalı kutu bütünlüğünün kendisini koruyun - - - Add Folder - Dizin Ekle - - - Prompt user whether to allow an exemption from the blockade. - Kullanıcıya ablukadan muafiyete izin verip vermeyeceğini sor. - - - IPC Trace - IPC İzleme - - - Limit access to the emulated service control manager to privileged processes - Öykünülmüş hizmet kontrol yöneticisine erişimi ayrıcalıklı işlemlerle sınırla - - - Remove - Kaldır - - - Add File/Folder - Dosya/Dizin Ekle - - - Block internet access for all programs except those added to the list. - Listeye eklenenler dışındaki tüm programlar için internet erişimini engelle. - - - Issue message 1307 when a program is denied internet access - Bir programın internet erişimi reddedildiğinde hata mesajı 1307 - - - Compatibility - Uyumluluk - - - Stop Behaviour - Durma Davranışı - - - Note: Programs installed to this sandbox won't be able to access the internet at all. - Not: Bu kutuya yüklenen programlar internete hiçbir şekilde erişemez. - - - Box Options - Kutu Ayarları - - - Don't allow sandboxed processes to see processes running in other boxes - Korumalı kutudaki işlemlerin diğer kutularda çalışan işlemleri görmesine izin verme - - - Add Group - Grup Ekle - - - Sandboxed window border: - Korumalı kutuya sahip pencere sınırı: - - - Prevent selected programs from starting in this sandbox. - Seçilen programların bu kutuda başlamasını önle. - - - Miscellaneous - Çeşitli - - - Issue message 2102 when a file is too large - Dosya çok büyük olduğunda hata mesajı 2102 - - - File Recovery - Dosya Kurtarma - - - Box Delete options - Kutu Silme seçenekleri - - - Pipe Trace - Boru İzleme - - - File Trace - Dosya İzleme - - - Program - Program - - - Add Process - İşlem Ekle - - - Add Program - Program Ekle - - - Filter Categories - Kategorileri Filtrele - - - Copy file size limit: - Dosya boyutu sınırını kopyala: - - - Open System Protected Storage - Sistem Korumalı Depolama'yı aç - - - Protect the system from sandboxed processes - Sistemi korumalı kutudaki işlemlerden koru - - - Add Leader Program - Lider Program Ekle - - - SandboxiePlus Options - SandboxiePlus Ayarları - - - Category - Kategori - - - Drop rights from Administrators and Power Users groups - Yöneticiler ve Yetkili Kullanıcılar gruplarından hakları kaldır - - - Add Reg Key - Kayıt Anahtarı Ekle - - - Sandbox protection - KumKutusu koruması - - - You can group programs together and give them a group name. Program groups can be used with some of the settings instead of program names. - Programları birlikte gruplayabilir ve onlara bir grup adı verebilirsiniz. Program grupları, program adları yerine bazı ayarlarla kullanılabilir. - - - Protect sandboxed SYSTEM processes from unprivileged unsandboxed processes - Korumalı kutuya alınmış SİSTEM işlemlerini ayrıcalıksız korumalı kutuda olmayan işlemlerden koruyun - - - Add Command - Komut Ekle - - - Hide Processes - İşlemleri Gizle - - - When the Quick Recovery function is invoked, the following folders will be checked for sandboxed content. - Hızlı Kurtarma işlevi çalıştırıldığında, aşağıdaki dizinler korumalı kutudaki içerik açısından kontrol edilecektir. - - - Log all access events as seen by the driver to the resource access log. - -This options set the event mask to "*" - All access events -You can customize the logging using the ini by specifying -"A" - Allowed accesses -"D" - Denied accesses -"I" - Ignore access requests -instead of "*". - Sürücü tarafından görülen tüm erişim olaylarını kaynak erişim günlüğüne kaydet. - -Bu seçenekler olay maskesini "*" olarak ayarlar - Tüm erişim olayları -İni kullanarak günlüğe kaydetmeyi özelleştirebilirsiniz. -"A" - İzin verilen erişim(ler) -"D" - Reddedilen erişim(ler) -"I" - Yoksayılan erişim(ler) -"*" yerine. - - - px Width - px Genişliği - - - Add User - Kullanıcı Ekle - - - Programs entered here, or programs started from entered locations, will be put in this sandbox automatically, unless thay are explicitly started in another sandbox. - Buraya girilen programlar veya girilen konumlardan başlatılan programlar, başka bir korumalı kutuda açıkça belirtilmedikçe otomatik olarak bu kutuya yerleştirilecektir. - - - Force Program - Program Zorla - - - WARNING, these options can disable core security guarantees and break sandbox security!!! - UYARI, bu seçenekler temel güvenlik garantilerini devre dışı bırakabilir ve korumalı kutu güvenliğini bozabilir!!! - - - Edit ini - İni'yi düzenle - - - Show Templates - Şablonları Göster - - - Ignore Folder - Dizini Yoksay - - - GUI Trace - GUI İzleme - - - Key Trace - Tuş İzleme - - - Tracing - İzleme - - - Appearance - Görünüm - - - Add sandboxed processes to job objects (recommended) - İş nesnelerine KumKutu'lu süreçler ekleyin (önerilir) - - - Remove Program - Programı Kaldır - - - You can exclude folders and file types (or file extensions) from Immediate Recovery. - Dizinleri ve dosya türlerini (veya dosya uzantılarını) Anında Kurtarma'nın dışında bırakabilirsiniz. - - - Run Menu - Çalıştır Menüsü - - - App Templates - Uygulama Şablonları - - - Remove User - Kullanıcıyı Kaldır - - - Ignore Extension - Uzantıyı Yoksay - - - Move Down - Aşağı taşı - - - Protect this sandbox from deletion or emptying - Bu korumalı kutuyu silinmeye veya boşalmaya karşı koruyun - - - Add user accounts and user groups to the list below to limit use of the sandbox to only those accounts. If the list is empty, the sandbox can be used by all user accounts. - -Note: Forced Programs and Force Folders settings for a sandbox do not apply to user accounts which cannot use the sandbox. - Korumalı kutunun kullanımını yalnızca bu hesaplarla sınırlamak için aşağıdaki listeye kullanıcı hesaplarını ve kullanıcı gruplarını ekleyin. Liste boşsa, korumalı alan tüm kullanıcı hesapları tarafından kullanılabilir. - -Not: Bir korumalı kutuya ilişkin Zorlanmış Programlar ve Zorlanmış Dizinler ayarları, korumalı kutuyu kullanamayan kullanıcı hesapları için geçerli değildir. - - - * Note: Programs installed to this sandbox won't be able to start at all. - * Not: Bu korumalı kutuda yüklenen programlar hiçbir şekilde başlatılamaz. - - - This list contains a large amount of sandbox compatibility enhancing templates - Bu liste, çok sayıda korumalı kutu uyumluluğunu geliştiren şablon içerir - - - Add Lingering Program - oyalayıcı diye çevirdim. - Oyalayıcı program ekle - - - Program Groups - Program Grupları - - - Issue message 1308 when a program fails to start - Bir program başlatılamadığında hata mesajı 1308 - - - Resource Access - Kaynak Erişimi - - - Advanced Options - Gelişmiş Ayarlar - - - Hide host processes from processes running in the sandbox. - Korumalı kutuda çalışan işlemlerden ana bilgisayar işlemlerini gizle. - - - File Migration - Dosya Taşıma - - - Auto delete content when last sandboxed process terminates - Korumalı kutudaki son işlem sonlandırıldığında içeriği otomatik olarak sil - - - Add COM Object - COM Nesnesi Ekle - - - You can configure custom entries for the sandbox run menu. - Korumalı kutu çalıştırma menüsü için özel girişleri yapılandırabilirsiniz. - - - Start Restrictions - Kısıtlamaları Başlat - - - Force usage of custom dummy Manifest files (legacy behaviour) - Özel sahte Manifest dosyalarının kullanımını zorla (eski davranış) - - - Edit ini Section - İni bölümünü düzenle - - - Prevent change to network and firewall parameters - Ağ ve güvenlik duvarı parametrelerinde değişikliği önleyin - - - COM Class Trace - COM Sınıf İzleme - - - <- for this one the above does not apply - <- bunun için yukarıdakiler geçerli değildir - - - Block access to the printer spooler - Yazıcı biriktiricisine erişimi engelle - - - Allow the print spooler to print to files outside the sandbox - Yazdırma biriktiricisinin korumalı kutu dışındaki dosyalara yazdırmasına izin ver - - - Printing - Yazdırma - - - Remove spooler restriction, printers can be installed outside the sandbox - Biriktirici kısıtlamasını kaldır, yazıcılar korumalı kutunun dışına kurulabilir - - - Add program - Program ekle - - - Auto Start - Otomatik Başlat - - - Here you can specify programs and/or services that are to be started automatically in the sandbox when it is activated - Burada, etkinleştirildiğinde korumalı kutuda otomatik olarak başlatılacak programları ve/veya hizmetleri belirtebilirsiniz. - - - Add service - Hizmet ekle - - - Do not start sandboxed services using a system token (recommended) - Korumalı kutudaki hizmetleri bir sistem belirteci kullanarak başlatma (önerilir) - - - Allow access to Smart Cards - Akıllı Kartlara erişime izin ver - - - Lift security restrictions - Güvenlik kısıtlamalarını kaldır - - - Sandbox isolation - Korumalı kutu izolasyonu - - - Auto Exec - Otomatik Yürütme - - - Here you can specify a list of commands that are executed every time the sandbox is initially populated. - Burada, korumalı kutu başlangıçta her doldurulduğunda yürütülen komutların bir listesini belirtebilirsiniz. - - - - PopUpWindow - - SandboxiePlus Notifications - SandboxiePlus Bildirimleri - - - - QObject - - Drive %1 - Sürücü %1 - - - - QPlatformTheme - - Cancel - İptal - - - Apply - Uygula - - - OK - TAMAM - - - &Yes - &Evet - - - &No - &Hayır - - - - RecoveryWindow - - Close - Kapat - - - SandboxiePlus Settings - SandboxiePlus Ayarları - - - Add Folder - Dizin ekle - - - Recover to - Şuraya kurtar - - - Recover - Kurtar - - - Refresh - Yenile - - - Delete all - Tümünü sil - - - Show All Files - Tüm Dosyaları Göster - - - TextLabel - Metin Etiketi - - - - SettingsWindow - - Name - Ad - - - Path - Yol - - - Change Password - Parola değiştir - - - Clear password when main window becomes hidden - Ana pencere gizlendiğinde parolayı temizle - - - SandboxiePlus Settings - SandboxiePlus Ayarları - - - Password must be entered in order to make changes - Değişiklik yapmak için parola girilmelidir - - - Check periodically for updates of Sandboxie-Plus - Sandboxie-Plus güncellemelerini periyodik kontrol et - - - General Options - Genel Ayarlar - - - Program Restrictions - Program Kısıtlamaları - - - Restart required (!) - Yeniden başlatma gerekir (!) - - - Tray options - Tepsi ayarları - - - Use Dark Theme - Koyu Tema Kullan - - - Enable - Etkinleştir - - - Add Folder - Dizin Ekle - - - Only Administrator user accounts can make changes - Yalnızca Yönetici hesapları değişiklik yapabilir - - - Config protection - Yapılandırma koruması - - - Add Program - Program Ekle - - - Sandboxie has detected the following software applications in your system. Click OK to apply configuration settings, which will improve compatibility with these applications. These configuration settings will have effect in all existing sandboxes and in any new sandboxes. - Sandboxie, sisteminizde aşağıdaki yazılım uygulamalarını tespit etti. Bu uygulamalarla uyumluluğu artıracak yapılandırma ayarlarını uygulamak için Tamam'ı tıklayın. Bu yapılandırma, mevcut tüm korumalı kutularda ve tüm yeni oluşturulacaklarda etkili olacaktır. - - - Watch Sandboxie.ini for changes - Değişiklikler için Sandboxie.ini dosyasını izle - - - Show Sys-Tray - Sistem Tepsisini Göster - - - In the future, don't check software compatibility - Bir daha yazılım uyumluluğunu kontrol etme - - - Disable - Devre dışı bırak - - - When any of the following programs is launched outside any sandbox, Sandboxie will issue message SBIE1301. - Şu programlardan biri KumKutusu dışında başlatıldığında, Sandboxie SBIE1301 hatası verecektir. - - - Remove Program - Programı Kaldır - - - Software Compatibility - Yazılım Uyumluluğu - - - On main window close: - Ana pencerede kapat: - - - Add 'Run Sandboxed' to the explorer context menu - Dosya gezgini bağlam menüsüne 'Korumalı kutuda başlat' seçeneği ekle - - - Issue message 1308 when a program fails to start - Bir program başlatılamadığında hata mesajı 1308 - - - Sandbox default - KumKutusu öntanımlısı - - - Separate user folders - Ayrı kullanıcı klasörleri - - - Advanced Options - Gelişmiş Ayarlar - - - Prevent the listed programs from starting on this system - Listelenen programların bu sistemde başlamasını önleyin - - - Only Administrator user accounts can use Disable Forced Programs command - Yalnızca Yönetici hesapları Zorlanmış Programları Devre Dışı Bırak komutunu kullanabilir 'Zorunlu programları devre dışı bırakın' - - - Show Notifications for relevant log Messages - İlgili günlük mesajları için bildirimleri göster - - - Open urls from this ui sandboxed - Bu kullanıcı arayüzündeki linkleri korumalı kutuda aç - - - Sandbox <a href="sbie://docs/filerootpath">file system root</a>: - KumKutusu <a href="sbie://docs/filerootpath">dosya sistemi kökü</a>: - - - Sandbox <a href="sbie://docs/ipcrootpath">ipc root</a>: - KumKutusu <a href="sbie://docs/ipcrootpath">ipc kökü</a>: - - - Sandbox <a href="sbie://docs/keyrootpath">registry root</a>: - KumKutusu <a href="sbie://docs/keyrootpath">kayıt kökü</a>: - - - Portable root folder - Taşınabilir kök dizin - - - Start UI with Windows - Windows başlangıcında kullanıcı arayüzünü başlat - - - Start UI when a sandboxed process is started - Korumalı kutuda bir işlem başladığında kullanıcı arayüzünü başlat - - - Show first recovery window when emptying sandboxes - Korumalı kutuları boşaltırken önce kurtarma penceresini göster - - - ... - ... - - - Other settings - Diğer ayarlar - - - - SnapshotsWindow - - Name: - Ad: - - - Remove Snapshot - Anlık Görüntüyü Kaldır - - - SandboxiePlus Settings - SandboxiePlus Ayarları - - - Description: - Açıklama: - - - Go to Snapshot - Anlık Görüntüye Git - - - Take Snapshot - Anlık Görüntü Al - - - Selected Snapshot Details - Seçili Anlık Görüntü Ayrıntıları - - - Snapshot Actions - Anlık Görüntü Eylemleri - - - +Full path: %4 + + + + + CRecoveryWindow + + File Name + Dosya Adı + + + File Size + Dosya Boyutu + + + Full Path + Tam yol + + + Select Directory + Dizin Seç + + + %1 - File Recovery + %1 - Dosya Kurtarma + + + One or more selected files are located on a network share, and must be recovered to a local drive, please select a folder to recover all selected files to. + Bir veya daha fazla seçili dosya bir ağ paylaşımında bulunuyor ve yerel bir sürücüye kurtarılması gerekiyor, lütfen tüm seçili dosyaların kurtarılacağı bir dizin seçin. + + + There are %1 files and %2 folders in the sandbox, occupying %3 bytes of disk space. + Korumalı alanda %3 bayt disk alanı kaplayan %1 dosya ve %2 dizin var. + + + + CResMonModel + + Type + Tür + + + Value + Değer + + + Status + Durum + + + Time Stamp + Zaman Damgası + + + Process + İşlem + + + Unknown + Bilinmeyen + + + + CSandBoxPlus + + No Admin + Yönetici Yok + + + No INet + INet yok + + + Normal + Normal + + + API Log + API Günlüğü + + + Net Share + Net Paylaşımı + + + NOT SECURE (Debug Config) + GÜVENLİ DEĞİL (Hata Ayıklama Yapılandırması) + + + Enhanced Isolation + Geliştirilmiş İzolasyon + + + Reduced Isolation + Azaltılmış İzolasyon + + + Disabled + + + + + CSandMan + + Exit + Çıkış + + + <p>New Sandboxie-Plus has been downloaded to the following location:</p><p><a href="%2">%1</a></p><p>Do you want to begin the installation? If any programs are running sandboxed, they will be terminated.</p> + <p>Yeni Sandboxie-Plus şu konuma indirildi:</p><p><a href="%2">%1</a></p><p>Kuruluma başlamak istiyor musunuz? Herhangi bir program korumalı kutu içinde çalışıyorsa, sonlandırılacaktır.</p> + + + Sandboxie-Plus was started in portable mode and it needs to create necessary services. This will prompt for administrative privileges. + Sandboxie-Plus taşınabilir modda başlatıldı ve gerekli hizmetleri oluşturması gerekiyor. Bunun için yönetici ayrıcalıkları isteyecektir. + + + Cleanup Processes + Temizleme İşlemleri + + + Maintenance operation %1 + Bakım işlemi %1 + + + &Help + &Yardım + + + &View + &Görünüm + + + Error deleting sandbox folder: %1 + Korumalı kutu dizini silinirken hata: %1 + + + About Sandboxie-Plus + Sandboxie-Plus Hakkında + + + Driver version: %1 + Sürücü sürümü: %1 + + + Sandboxie-Plus v%1 + Sandboxie-Plus v%1 + + + Start Driver + Sürücüyü Başlat + + + Install Driver + Sürücüyü Kur + + + Uninstall Driver + Sürücüyü Kaldır + + + Check for Updates + Güncellemeleri kontrol et + + + Visit Support Forum + Destek Forumu'tnu ziyaret et + + + Failed to copy configuration from sandbox %1: %2 + Yapılandırma %1'den %2 korumalı kutusuna kopyalanamadı + + + Do you want to check if there is a new version of Sandboxie-Plus? + Sandboxie-Plus'ın yeni sürümünü kontrol etmek ister misiniz? + + + Cleanup Api Call Log + Api Çağrı Günlüğünü Temizle + + + Simple View + Basit Görünüm + + + %1 (%2): + %1 (%2): + + + Login Failed: %1 + Giriş başarısız: %1 + + + Clean Up + Temizle + + + Don't show this message again. + Bu mesajı bir daha gösterme. + + + Uninstall Service + Hizmeti Kaldır + + + Start Service + Hizmeti Başlat + + + Install Service + Hizmeti yükle + + + Failed to remove old snapshot directory '%1' + Eski anlık görüntü dizini kaldırılamadı '%1' + + + The changes will be applied automatically as soon as the editor is closed. + Düzenleyici kapanınca değişiklikler otomatik olarak uygulanacaktır. + + + Do you want to close Sandboxie Manager? + Sandboxie Yöneticisi'ni kapatmak istiyor musunuz? + + + Support Sandboxie-Plus with a Donation + Sandboxie-Plus'ı Bağış ile Destekle + + + Failed to create directory for new snapshot + Yeni anlık görüntü için dizin oluşturulamadı + + + Sandboxie-Plus was running in portable mode, now it has to clean up the created services. This will prompt for administrative privileges. + Sandboxie-Plus taşınabilir modda çalışıyordu, şimdi oluşturulan hizmetleri temizlemesi gerekiyor. Bu, yönetici ayrıcalıkları isteyecektir. + + + - Portable + - Taşınabilir + + + Failed to download update from: %1 + %1'den güncelleme indirilemedi + + + Api Call Log + Api Çağrı Günlüğü + + + Stop Driver + Sürücüyü Durdur + + + Don't show this announcement in the future. + Bu duyuruyu gelecekte gösterme. + + + Sbie Messages + Sbie Mesajları + + + Failed to recover some files: + + Bazı dosyalar kurtarılamadı: + + + + Failed to move directory '%1' to '%2' + '%1' dizini, '%2' dizinine taşınamadı + + + Recovering file %1 to %2 + %1'dan %2'a dosya kurtarılıyor + + + Resource Logging + Kaynak Günlüğü + + + Online Documentation + Çevrimiçi Belgeler + + + Ignore this update, notify me about the next one. + Bu güncellemeyi yoksay, bir sonrakini bana bildir. + + + Please enter the duration for disabling forced programs. + Zorlanmış programların devre dışı bırakma süresini girin. + + + Sbie Directory: %1 + Sbie Dizini: %1 + + + <p>Do you want to download the latest version?</p> + <p>En son sürümü indirmek ister misiniz?</p> + + + Sandboxie-Plus - Error + Sandboxie-Plus - Hata + + + Time|Message + Zaman|Mesaj + + + &Options + &Ayarlar + + + Show/Hide + Göster/Gizle + + + Resource Monitor + Kaynak İzleme + + + A sandbox must be emptied before it can be deleted. + Bir korumalı kutu, silinmeden önce boşaltılmalıdır. + + + The sandbox name can contain only letters, digits and underscores which are displayed as spaces. + Korumalı kutu adı yalnızca harf, rakam ve alt çizgi içerebilir. + + + A sandbox must be emptied before it can be renamed. + Bir korumalı kutu, yeniden adlandırılmadan önce boşaltılmalıdır. + + + API Call Logging + API Çağrı Günlüğü + + + Loaded Config: %1 + Yüklü Yapılandırma: %1 + + + Reload ini file + İni dosyasını yeniden yükle + + + &Maintenance + &Bakım + + + The sandbox name can not be a device name. + Korumalı kutu adı bir cihaz adı olamaz. + + + Operation failed for %1 item(s). + %1 öge için işlem başarısız oldu. + + + Global Settings + Genel Ayarlar + + + Downloading new version... + Yeni sürüm indiriliyor... + + + &Sandbox + &KumKutusu + + + <h3>About Sandboxie-Plus</h3><p>Version %1</p><p>Copyright (c) 2020-2021 by DavidXanatos</p> + <h3>Sandboxie-Plus Hakkında</h3><p>Sürüm %1</p><p>Telif hakkı (c) 2020-2021 DavidXanatos</p> + + + Cleanup + Temizle + + + Failed to check for updates, error: %1 + Güncellemeler kontrol edilemedi, hata: %1 + + + Disconnect + Bağlantıyı kes + + + Connect + Bağlan + + + Only Administrators can change the config. + Yapılandırmayı yalnızca Yöneticiler değiştirebilir. + + + Disable Forced Programs + Zorlanmış Programları Devre Dışı Bırak + + + Snapshot not found + Anlık görüntü bulunamadı + + + Failed to remove old RegHive + Eski RegHive kaldırılamadı + + + Stop All + Tümünü durdur + + + Delete protection is enabled for the sandbox + Korumalı kutu için silme koruması etkinleştirildi + + + &Advanced + &Gelişmiş + + + Executing maintenance operation, please wait... + Bakım işlemi yapılıyor, lütfen bekleyin... + + + <p>There is a new version of Sandboxie-Plus available.<br /><font color='red'>New version:</font> <b>%1</b></p> + <p>Sandboxie-Plus'ın yeni bir sürümü var.<br /><font color='red'>Yeni sürüm:</font> <b>%1</b></p> + + + Stop Service + Hizmeti durdur + + + Create New Box + Yeni Kutu Oluştur + + + Failed to terminate all processes + Tüm işlemler sonlandırılamadı + + + Advanced View + Gelişmiş Görünüm + + + Failed to delete sandbox %1: %2 + %1: %2 korumalı kutusu silinemedi + + + <p>İndirme sayfasına <a href="%1">gitmek ister misiniz</a>?</p> + <p>Вы хотите перейти на <a href="%1">страницу загрузки</a>?</p> + + + Maintenance operation Successful + Bakım işlemi Başarılı + + + PID %1: + PID %1: + + + Error Status: %1 + Hata durumu: %1 + + + Terminate All Processes + Tüm işlemleri sonlandır + + + Please enter the configuration password. + Lütfen yapılandırma parolasını girin. + + + You are not authorized to update configuration in section '%1' + Bölümdeki konfigürasyonu güncelleme yetkiniz yok '%1' + + + server not reachable + sunucuya ulaşılamıyor + + + Error merging snapshot directories '%1' with '%2', the snapshot has not been fully merged. + '%1' ve '%2' anlık görüntü dizinleri birleştirilirken hata oluştu, anlık görüntü tam olarak birleştirilmedi. + + + Edit ini file + İni dosyasını düzenle + + + Checking for updates... + Güncellemeler kontrol ediliyor... + + + No sandboxes found; creating: %1 + Korumalı kutu bulunamadı; oluşturuluyor: %1 + + + Cleanup Resource Log + Kaynak Günlüğünü Temizle + + + Cleanup Message Log + Mesaj Günlüğünü Temizle + + + About the Qt Framework + Qt Framework hakkında + + + Keep terminated + Sonlandırılmış tut + + + A sandbox of the name %1 already exists + %1 adında bir korumalı kutu zaten var + + + Failed to set configuration setting %1 in section %2: %3 + %2: %3 bölümünde %1 yapılandırma parametresi ayarlanamadı + + + Reset all hidden messages + Tüm gizli mesajları sıfırla + + + - NOT connected + - Bağlı DEĞİL + + + Do you also want to reset hidden message boxes (yes), or only all log messages (no)? + Gizli mesaj kutularını dahil herşeyi (evet) veya sadece tüm günlük mesajlarını (hayır) sıfırlamak mı istiyorsunuz? + + + The changes will be applied automatically whenever the file gets saved. + Dosya her kaydedildiğinde değişiklikler otomatik olarak uygulanacaktır. + + + Administrator rights are required for this operation. + Bu işlem için yönetici hakları gereklidir. + + + Failed to execute: %1 + %1 çalıştırılamadı + + + Failed to connect to the driver + Sürücüye bağlanılamadı + + + Failed to communicate with Sandboxie Service: %1 + Sandboxie Hizmeti ile iletişim kurulamadı: %1 + + + An incompatible Sandboxie %1 was found. Compatible versions: %2 + Uyumsuz bir Sandboxie %1 bulundu. Uyumlu versiyonlar: %2 + + + Can't find Sandboxie installation path. + Sandboxie kurulum yolu bulunamıyor. + + + The sandbox name can not be longer than 32 characters. + Korumalı kutu adı 32 karakterden uzun olamaz. + + + This Snapshot operation can not be performed while processes are still running in the box. + Bu Anlık Görüntü işlemi, işlemler kutuda hala çalışırken gerçekleştirilemez. + + + Failed to copy RegHive + RegHive kopyalanamadı + + + Can't remove a snapshot that is shared by multiple later snapshots + Sonraki birden çok anlık görüntü tarafından paylaşılan bir anlık görüntü kaldırılamaz + + + Unknown Error Status: %1 + Bilinmeyen Hata Durumu: %1 + + + Do you want to open %1 in a sandboxed (yes) or unsandboxed (no) Web browser? + %1'i korumalı (evet) veya korumasız (hayır) bir tarayıcıda mı açmak istiyorsunuz? + + + Remember choice for later. + Seçimi hatırla. + + + Copy Cell + Hücreyi Kopyala + + + Copy Row + Satırı Kopyala + + + Copy Panel + Paneli Kopyala + + + Failed to stop all Sandboxie components + Tüm Sandboxie bileşenleri durdurulamadı + + + Failed to start required Sandboxie components + Gerekli Sandboxie bileşenleri başlatılamadı + + + Sandboxie-Plus was started in portable mode, do you want to put the SandBox folder into its parent directory? + Sandboxie-Plus taşınabilir modda başlatıldı, SandBox klasörünü kendi ana dizinine koymak ister misiniz? + + + The file %1 already exists, do you want to overwrite it? + %1 dosyası zaten var, üzerine yazmak istiyor musunuz? + + + Do this for all files! + Bunu tüm dosyalar için yap! + + + To use API logging you must first set up the LogApiDll from https://github.com/sandboxie-plus/LogApiDll with one or more sandboxes. +Please download the latest release and set it up with the Sandboxie.ini as instructed in the README.md of the project. + API günlüğünü kullanmak için önce https://github.com/sandboxie-plus/LogApiDll adresinden bir veya daha fazla korumalı kutu ile LogApiDll'yi kurmanız gerekir. + Lütfen en son sürümü indirin ve projenin README.md dosyasında belirtildiği gibi Sandboxie.ini ile kurun. + + + No new updates found, your Sandboxie-Plus is up-to-date. + Yeni güncelleme bulunamadı, Sandboxie-Plus'ınız güncel. + + + <p>Sandboxie-Plus is an open source continuation of Sandboxie.</p><p></p><p>Visit <a href="https://sandboxie-plus.com">sandboxie-plus.com</a> for more information.</p><p></p><p></p><p></p><p>Icons from <a href="https://icons8.com">icons8.com</a></p><p></p> + <p>Sandboxie-Plus, Sandboxie'nin açık kaynaklı bir devamıdır.</p><p></p><p>Daha fazla bilgi için <a href="https://sandboxie-plus.com">sandboxie-plus.com</a> ziyaret edin.</p><p></p><p></p><p></p><p>İkonlar: <a href="https://icons8.com">icons8.com</a></p><p></p> + + + Always on Top + Her zaman üstte + + + Sellect box: + Kutu Seç: + + + Some compatybility templates (%1) are missing, probably deleted, do you want to remove them from all boxes? + Bazı uyumluluk şablonları (%1) eksik, büyük olasılıkla silinmiş, bunları tüm kutulardan kaldırmak istiyor musunuz? + + + Cleaned up removed templates... + Kaldırılan şablonlar temizlendi... + + + Can not create snapshot of an empty sandbox + Boş bir korumalı kutunun anlık görüntüsü oluşturulamaz + + + A sandbox with that name already exists + Bu adda bir korumalı kutu zaten var + + + Reset Columns + + + + Window Finder + + + + Show Hidden Boxes + + + + Select box: + + + + Default sandbox not found; creating: %1 + + + + Some compatibility templates (%1) are missing, probably deleted, do you want to remove them from all boxes? + + + + Do you want to terminate all processes in all sandboxes? + + + + Terminate all without asking + + + + <p>Do you want to go to the <a href="%1">info page</a>?</p> + + + + <p>Do you want to go to the <a href="%1">download page</a>?</p> + + + + Don't show this message anymore. + + + + The selected window is running as part of program %1 in sandbox %2 + + + + The selected window is not running as part of any sandboxed program. + + + + Drag the Finder Tool over a window to select it, then release the mouse to check if the window is sandboxed. + + + + Sandboxie-Plus - Window Finder + + + + + CSbieModel + + Name + Ad + + + Box Groupe + Kutu Grubu + + + Status + Durum + + + Start Time + Başlangıç Zamanı + + + Process ID + İşlem Kimliği + + + Path / Command Line + Yol / Komut Satırı + + + Title + + + + + CSbieProcess + + Terminated + Sonlandırılmış + + + Running + Çalışıyor + + + + CSbieView + + Run + Çalıştır + + + Create Shortcut to sandbox %1 + %1 korumalı kutusuna kısayol oluştur + + + Options: + + Ayarlar: + + + + Drop Admin Rights + Yönetici haklarını bırak + + + Run eMail Client + ePosta istemcisini çalıştır + + + Remove Group + Grubu Kaldır + + + Sandbox Options + KumKutusu Ayarları + + + Sandbox Presets + KumKutusu ÖnAyarları + + + Do you want to %1 the selected process(es) + Seçili işlemleri %1 etmek istiyor musunuz? + + + Move to Group + Gruba Taşı + + + Remove Sandbox + KumKutusunu Kaldır + + + Rename Sandbox + KumKutusunu Yeniden Adlandır + + + Run from Start Menu + Başlat Menüsünden Çalıştır + + + Preset + Önayar + + + Please enter a new group name + Lütfen yeni bir grup adı girin + + + Enable API Call logging + API Çağrısı günlük kaydını etkinleştir + + + [None] + [Yok] + + + Please enter a new name for the Sandbox. + Lütfen Korumalı Kutu için yeni bir ad girin. + + + Add Group + Grup ekle + + + Delete Content + İçeriği Sil + + + Do you really want to remove the selected sandbox(es)? + Seçili korumalı kutu(lar)ı gerçekten kaldırmak istiyor musunuz? + + + Run Program + Program çalıştır + + + IPC root: %1 + + IPC kökü: %1 + + + + Block and Terminate + Engelle ve Sonlandır + + + Registry root: %1 + + Kayıt kökü: %1 + + + + File root: %1 + + Dosya kökü: %1 + + + + Terminate + Sonlandır + + + Set Leader Process + Lider İşlemi Seç + + + Terminate All Programs + Tüm Programları Sonlandır + + + Do you really want to remove the selected group(s)? + Seçili grup(lar)ı gerçekten kaldırmak istiyor musunuz? + + + Run Web Browser + Web Tarayıcı Çalıştır + + + Allow Network Shares + Ağ Paylaşımlarına İzin Ver + + + Run Cmd.exe + Cmd.exe'yi çalıştır + + + Snapshots Manager + Anlık Görüntü Yöneticisi + + + Run Explorer + Dosya Gezginini Çalıştır + + + Block Internet Access + İnternet Erişimini Engelle + + + Set Linger Process + Oyalayıcı İşlemi Ayarla + Установить отложенный процесса + + + Create New Box + Yeni KumKutusu Oluştur + + + Pin to Run Menu + Çalıştır Menüsüne Sabitle + + + Recover Files + Dosyaları Kurtar + + + Explore Content + İçeriği Keşfet + + + Create Shortcut + Kısayol Oluştur + + + Allow internet access + İnternet erişimine izin ver + + + Force into this sandbox + Bu korumalı kutuya zorla + + + This box does not have Internet restrictions in place, do you want to enable them? + Bu kutuda İnternet kısıtlamaları yok, bunları etkinleştirmek istiyor musunuz? + + + Don't show this message again. + Bu mesajı bir daha gösterme. + + + This Sandbox is already empty. + Bu KumKutusu zaten boş. + + + Do you want to delete the content of the selected sandbox? + Seçili korumalı kutunun içeriğini silmek istiyor musunuz? + + + Do you really want to delete the content of multiple sandboxes? + Birden çok korumalı kutunun içeriğini gerçekten silmek istiyor musunuz? + + + This Sandbox is empty. + + + + Do you want to terminate all processes in the selected sandbox(es)? + + + + This sandbox is disabled, do you want to enable it? + + + + + CSettingsWindow + + Close + Kapat + + + Please enter the new configuration password. + Lütfen yeni yapılandırma parolasını girin. + + + Close to Tray + Tepsi durumuna kapat + + + Select Directory + Dizin Seç + + + Please enter a program file name + Lütfen bir program dosyası adı girin + + + Folder + Dizin + + + Prompt before Close + Kapatmadan önce sor + + + Process + İşlem + + + Sandboxie Plus - Settings + Sandboxie Plus - Ayarlar + + + Please re-enter the new configuration password. + Lütfen yeni yapılandırma parolasını tekrar girin. + + + Passwords did not match, please retry. + Parolalar eşleşmedi, lütfen tekrar deneyin. + + + + CSnapshotsWindow + + Do you really want to delete the selected snapshot? + Seçilen anlık görüntüyü gerçekten silmek istiyor musunuz? + + + New Snapshot + Yeni Anlık Görüntü + + + Snapshot + Anlık Görüntü + + + Do you really want to switch the active snapshot? Doing so will delete the current state! + Aktif anlık görüntüyü gerçekten değiştirmek istiyor musunuz? Bunu yapmak mevcut durumu siler! + + + %1 - Snapshots + %1 - Anlık görüntüler + + + Please enter a name for the new Snapshot. + Lütfen yeni Anlık Görüntü için bir ad girin. + + + + NewBoxWindow + + Copy options from an existing box: + Mevcut bir kutudan seçenekleri kopyalayın: + + + Initial sandbox configuration: + İlk korumalı kutu yapılandırması: + + + Select restriction/isolation template: + Kısıtlama/izolasyon şablonunu seçin: + + + SandboxiePlus new box + SandboxiePlus yeni kutu + + + Enter a name for the new box: + Yeni kutu için bir ad girin: + + + Sandbox Name: + + + + + OptionsWindow + + Name + Ad + + + Path + Yol + + + Save + Kaydet + + + Type + Tür + + + Allow only selected programs to start in this sandbox. * + Bu korumalı kutuda yalnızca seçili programların başlamasına izin ver. * + + + Force Folder + Dizini zorla + + + Add IPC Path + IPC Yolu Ekle + + + Sandbox Indicator in title: + Başlıktaki Korumalı Kutu Göstergesi: + + + Debug + Hata ayıklama + + + Users + Kullanıcılar + + + Block network files and folders, unless specifically opened. + Özel olarak açılmadıkça ağ dosyalarını ve klasörlerini engelle. + + + Command Line + Komut Satırı + + + Don't alter window class names created by sandboxed programs + Korumalı alandaki programlar tarafından oluşturulan pencere sınıfı adlarını değiştirme + + + Internet Restrictions + İnternet Kısıtlamaları + + + Configure which processes can access what resources. Double click on an entry to edit it. +'Direct' File and Key access only applies to program binaries located outside the sandbox. +Note that all Close...=!<program>,... exclusions have the same limitations. +For files access you can use 'Direct All' instead to make it apply to all programs. + Hangi işlemlerin hangi kaynaklara erişebileceğini yapılandırın. Düzenlemek için bir girişi çift tıklayın. +'Doğrudan' Dosya ve Anahtar erişimi, yalnızca sanal alanın dışında bulunan program ikili dosyaları için geçerlidir. +Tüm...=!<program>,... kapat istisnalarının aynı sınırlamalara sahip olduğunu unutmayın. +Dosyalara erişim için tek tek tüm programlara uygulamak yerine 'Tümünü Yönlendir' kullanabilirsiniz. + + + Log Debug Output to the Trace Log + İzleme Günlüğünde Hata Ayıklamayı kaydet + + + Forced Programs + Zorlanmış Programlar + + + Add Wnd Class + Wnd Sınıfı Ekle + + + Access Tracing + Erişim İzleme + + + File Options + Dosya Ayarları + + + General Options + Genel Ayarlar + + + Open Windows Credentials Store + Windows Kimlik Bilgileri Mağazasını Aç + + + kilobytes + kilobayt + + + Lingering programs will be automatically terminated if they are still running after all other processes have been terminated. + +If leader processes are defined, all others are treated as lingering processes. + Kalan programlar, diğer tüm işlemler sonlandırıldıktan sonra hala çalışıyorsa otomatik olarak sonlandırılacaktır. + + Lider işlemler tanımlanırsa, diğer tüm süreçler oyalayıcı süreçler olarak değerlendirilir. + + + Allow all programs to start in this sandbox. + Tüm programların bu kutuda başlamasına izin ver. + + + Enable Immediate Recovery prompt to be able to recover files as soon as thay are created. + Dosyaları oluşturulur oluşturulmaz kurtarabilmek için Anında Kurtarma istemini etkinleştir. + + + General restrictions + Genel kısıtlamalar + + + Move Up + Yukarı Taşı + + + Access + Erişim + + + These options are intended for debugging compatibility issues, please do not use them in production use. + Bu seçenekler uyumluluk sorunlarını gidermek için tasarlanmıştır, lütfen bunları üretim kullanımında kullanmayın. + + + Text Filter + Metin Filtresi + + + Cancel + İptal + + + Restrict Resource Access monitor to administrators only + Kaynak Erişimi izleyicisini yalnızca yöneticilerle kısıtla + + + Protect the sandbox integrity itself + Korumalı kutu bütünlüğünün kendisini koruyun + + + Add Folder + Dizin Ekle + + + Prompt user whether to allow an exemption from the blockade. + Kullanıcıya ablukadan muafiyete izin verip vermeyeceğini sor. + + + IPC Trace + IPC İzleme + + + Limit access to the emulated service control manager to privileged processes + Öykünülmüş hizmet kontrol yöneticisine erişimi ayrıcalıklı işlemlerle sınırla + + + Remove + Kaldır + + + Add File/Folder + Dosya/Dizin Ekle + + + Block internet access for all programs except those added to the list. + Listeye eklenenler dışındaki tüm programlar için internet erişimini engelle. + + + Issue message 1307 when a program is denied internet access + Bir programın internet erişimi reddedildiğinde hata mesajı 1307 + + + Compatibility + Uyumluluk + + + Stop Behaviour + Durma Davranışı + + + Note: Programs installed to this sandbox won't be able to access the internet at all. + Not: Bu kutuya yüklenen programlar internete hiçbir şekilde erişemez. + + + Box Options + Kutu Ayarları + + + Don't allow sandboxed processes to see processes running in other boxes + Korumalı kutudaki işlemlerin diğer kutularda çalışan işlemleri görmesine izin verme + + + Add Group + Grup Ekle + + + Sandboxed window border: + Korumalı kutuya sahip pencere sınırı: + + + Prevent selected programs from starting in this sandbox. + Seçilen programların bu kutuda başlamasını önle. + + + Miscellaneous + Çeşitli + + + Issue message 2102 when a file is too large + Dosya çok büyük olduğunda hata mesajı 2102 + + + File Recovery + Dosya Kurtarma + + + Box Delete options + Kutu Silme seçenekleri + + + Pipe Trace + Boru İzleme + + + File Trace + Dosya İzleme + + + Program + Program + + + Add Process + İşlem Ekle + + + Add Program + Program Ekle + + + Filter Categories + Kategorileri Filtrele + + + Copy file size limit: + Dosya boyutu sınırını kopyala: + + + Open System Protected Storage + Sistem Korumalı Depolama'yı aç + + + Protect the system from sandboxed processes + Sistemi korumalı kutudaki işlemlerden koru + + + Add Leader Program + Lider Program Ekle + + + SandboxiePlus Options + SandboxiePlus Ayarları + + + Category + Kategori + + + Drop rights from Administrators and Power Users groups + Yöneticiler ve Yetkili Kullanıcılar gruplarından hakları kaldır + + + Add Reg Key + Kayıt Anahtarı Ekle + + + Sandbox protection + KumKutusu koruması + + + You can group programs together and give them a group name. Program groups can be used with some of the settings instead of program names. + Programları birlikte gruplayabilir ve onlara bir grup adı verebilirsiniz. Program grupları, program adları yerine bazı ayarlarla kullanılabilir. + + + Protect sandboxed SYSTEM processes from unprivileged unsandboxed processes + Korumalı kutuya alınmış SİSTEM işlemlerini ayrıcalıksız korumalı kutuda olmayan işlemlerden koruyun + + + Add Command + Komut Ekle + + + Hide Processes + İşlemleri Gizle + + + When the Quick Recovery function is invoked, the following folders will be checked for sandboxed content. + Hızlı Kurtarma işlevi çalıştırıldığında, aşağıdaki dizinler korumalı kutudaki içerik açısından kontrol edilecektir. + + + Log all access events as seen by the driver to the resource access log. + +This options set the event mask to "*" - All access events +You can customize the logging using the ini by specifying +"A" - Allowed accesses +"D" - Denied accesses +"I" - Ignore access requests +instead of "*". + Sürücü tarafından görülen tüm erişim olaylarını kaynak erişim günlüğüne kaydet. + +Bu seçenekler olay maskesini "*" olarak ayarlar - Tüm erişim olayları +İni kullanarak günlüğe kaydetmeyi özelleştirebilirsiniz. +"A" - İzin verilen erişim(ler) +"D" - Reddedilen erişim(ler) +"I" - Yoksayılan erişim(ler) +"*" yerine. + + + px Width + px Genişliği + + + Add User + Kullanıcı Ekle + + + Programs entered here, or programs started from entered locations, will be put in this sandbox automatically, unless thay are explicitly started in another sandbox. + Buraya girilen programlar veya girilen konumlardan başlatılan programlar, başka bir korumalı kutuda açıkça belirtilmedikçe otomatik olarak bu kutuya yerleştirilecektir. + + + Force Program + Program Zorla + + + WARNING, these options can disable core security guarantees and break sandbox security!!! + UYARI, bu seçenekler temel güvenlik garantilerini devre dışı bırakabilir ve korumalı kutu güvenliğini bozabilir!!! + + + Edit ini + İni'yi düzenle + + + Show Templates + Şablonları Göster + + + Ignore Folder + Dizini Yoksay + + + GUI Trace + GUI İzleme + + + Key Trace + Tuş İzleme + + + Tracing + İzleme + + + Appearance + Görünüm + + + Add sandboxed processes to job objects (recommended) + İş nesnelerine KumKutu'lu süreçler ekleyin (önerilir) + + + Remove Program + Programı Kaldır + + + You can exclude folders and file types (or file extensions) from Immediate Recovery. + Dizinleri ve dosya türlerini (veya dosya uzantılarını) Anında Kurtarma'nın dışında bırakabilirsiniz. + + + Run Menu + Çalıştır Menüsü + + + App Templates + Uygulama Şablonları + + + Remove User + Kullanıcıyı Kaldır + + + Ignore Extension + Uzantıyı Yoksay + + + Move Down + Aşağı taşı + + + Protect this sandbox from deletion or emptying + Bu korumalı kutuyu silinmeye veya boşalmaya karşı koruyun + + + Add user accounts and user groups to the list below to limit use of the sandbox to only those accounts. If the list is empty, the sandbox can be used by all user accounts. + +Note: Forced Programs and Force Folders settings for a sandbox do not apply to user accounts which cannot use the sandbox. + Korumalı kutunun kullanımını yalnızca bu hesaplarla sınırlamak için aşağıdaki listeye kullanıcı hesaplarını ve kullanıcı gruplarını ekleyin. Liste boşsa, korumalı alan tüm kullanıcı hesapları tarafından kullanılabilir. + +Not: Bir korumalı kutuya ilişkin Zorlanmış Programlar ve Zorlanmış Dizinler ayarları, korumalı kutuyu kullanamayan kullanıcı hesapları için geçerli değildir. + + + * Note: Programs installed to this sandbox won't be able to start at all. + * Not: Bu korumalı kutuda yüklenen programlar hiçbir şekilde başlatılamaz. + + + This list contains a large amount of sandbox compatibility enhancing templates + Bu liste, çok sayıda korumalı kutu uyumluluğunu geliştiren şablon içerir + + + Add Lingering Program + oyalayıcı diye çevirdim. + Oyalayıcı program ekle + + + Program Groups + Program Grupları + + + Issue message 1308 when a program fails to start + Bir program başlatılamadığında hata mesajı 1308 + + + Resource Access + Kaynak Erişimi + + + Advanced Options + Gelişmiş Ayarlar + + + Hide host processes from processes running in the sandbox. + Korumalı kutuda çalışan işlemlerden ana bilgisayar işlemlerini gizle. + + + File Migration + Dosya Taşıma + + + Auto delete content when last sandboxed process terminates + Korumalı kutudaki son işlem sonlandırıldığında içeriği otomatik olarak sil + + + Add COM Object + COM Nesnesi Ekle + + + You can configure custom entries for the sandbox run menu. + Korumalı kutu çalıştırma menüsü için özel girişleri yapılandırabilirsiniz. + + + Start Restrictions + Kısıtlamaları Başlat + + + Force usage of custom dummy Manifest files (legacy behaviour) + Özel sahte Manifest dosyalarının kullanımını zorla (eski davranış) + + + Edit ini Section + İni bölümünü düzenle + + + Prevent change to network and firewall parameters + Ağ ve güvenlik duvarı parametrelerinde değişikliği önleyin + + + COM Class Trace + COM Sınıf İzleme + + + <- for this one the above does not apply + <- bunun için yukarıdakiler geçerli değildir + + + Block access to the printer spooler + Yazıcı biriktiricisine erişimi engelle + + + Allow the print spooler to print to files outside the sandbox + Yazdırma biriktiricisinin korumalı kutu dışındaki dosyalara yazdırmasına izin ver + + + Printing + Yazdırma + + + Remove spooler restriction, printers can be installed outside the sandbox + Biriktirici kısıtlamasını kaldır, yazıcılar korumalı kutunun dışına kurulabilir + + + Add program + Program ekle + + + Auto Start + Otomatik Başlat + + + Here you can specify programs and/or services that are to be started automatically in the sandbox when it is activated + Burada, etkinleştirildiğinde korumalı kutuda otomatik olarak başlatılacak programları ve/veya hizmetleri belirtebilirsiniz. + + + Add service + Hizmet ekle + + + Do not start sandboxed services using a system token (recommended) + Korumalı kutudaki hizmetleri bir sistem belirteci kullanarak başlatma (önerilir) + + + Allow access to Smart Cards + Akıllı Kartlara erişime izin ver + + + Lift security restrictions + Güvenlik kısıtlamalarını kaldır + + + Sandbox isolation + Korumalı kutu izolasyonu + + + Auto Exec + Otomatik Yürütme + + + Here you can specify a list of commands that are executed every time the sandbox is initially populated. + Burada, korumalı kutu başlangıçta her doldurulduğunda yürütülen komutların bir listesini belirtebilirsiniz. + + + Allow access to Bluetooth + + + + + PopUpWindow + + SandboxiePlus Notifications + SandboxiePlus Bildirimleri + + + + QObject + + Drive %1 + Sürücü %1 + + + + QPlatformTheme + + Cancel + İptal + + + Apply + Uygula + + + OK + TAMAM + + + &Yes + &Evet + + + &No + &Hayır + + + + RecoveryWindow + + Close + Kapat + + + SandboxiePlus Settings + SandboxiePlus Ayarları + + + Add Folder + Dizin ekle + + + Recover to + Şuraya kurtar + + + Recover + Kurtar + + + Refresh + Yenile + + + Delete all + Tümünü sil + + + Show All Files + Tüm Dosyaları Göster + + + TextLabel + Metin Etiketi + + + + SettingsWindow + + Name + Ad + + + Path + Yol + + + Change Password + Parola değiştir + + + Clear password when main window becomes hidden + Ana pencere gizlendiğinde parolayı temizle + + + SandboxiePlus Settings + SandboxiePlus Ayarları + + + Password must be entered in order to make changes + Değişiklik yapmak için parola girilmelidir + + + Check periodically for updates of Sandboxie-Plus + Sandboxie-Plus güncellemelerini periyodik kontrol et + + + General Options + Genel Ayarlar + + + Program Restrictions + Program Kısıtlamaları + + + Restart required (!) + Yeniden başlatma gerekir (!) + + + Tray options + Tepsi ayarları + + + Use Dark Theme + Koyu Tema Kullan + + + Enable + Etkinleştir + + + Add Folder + Dizin Ekle + + + Only Administrator user accounts can make changes + Yalnızca Yönetici hesapları değişiklik yapabilir + + + Config protection + Yapılandırma koruması + + + Add Program + Program Ekle + + + Sandboxie has detected the following software applications in your system. Click OK to apply configuration settings, which will improve compatibility with these applications. These configuration settings will have effect in all existing sandboxes and in any new sandboxes. + Sandboxie, sisteminizde aşağıdaki yazılım uygulamalarını tespit etti. Bu uygulamalarla uyumluluğu artıracak yapılandırma ayarlarını uygulamak için Tamam'ı tıklayın. Bu yapılandırma, mevcut tüm korumalı kutularda ve tüm yeni oluşturulacaklarda etkili olacaktır. + + + Watch Sandboxie.ini for changes + Değişiklikler için Sandboxie.ini dosyasını izle + + + Show Sys-Tray + Sistem Tepsisini Göster + + + In the future, don't check software compatibility + Bir daha yazılım uyumluluğunu kontrol etme + + + Disable + Devre dışı bırak + + + When any of the following programs is launched outside any sandbox, Sandboxie will issue message SBIE1301. + Şu programlardan biri KumKutusu dışında başlatıldığında, Sandboxie SBIE1301 hatası verecektir. + + + Remove Program + Programı Kaldır + + + Software Compatibility + Yazılım Uyumluluğu + + + On main window close: + Ana pencerede kapat: + + + Add 'Run Sandboxed' to the explorer context menu + Dosya gezgini bağlam menüsüne 'Korumalı kutuda başlat' seçeneği ekle + + + Issue message 1308 when a program fails to start + Bir program başlatılamadığında hata mesajı 1308 + + + Sandbox default + KumKutusu öntanımlısı + + + Separate user folders + Ayrı kullanıcı klasörleri + + + Advanced Options + Gelişmiş Ayarlar + + + Prevent the listed programs from starting on this system + Listelenen programların bu sistemde başlamasını önleyin + + + Only Administrator user accounts can use Disable Forced Programs command + Yalnızca Yönetici hesapları Zorlanmış Programları Devre Dışı Bırak komutunu kullanabilir 'Zorunlu programları devre dışı bırakın' + + + Show Notifications for relevant log Messages + İlgili günlük mesajları için bildirimleri göster + + + Open urls from this ui sandboxed + Bu kullanıcı arayüzündeki linkleri korumalı kutuda aç + + + Sandbox <a href="sbie://docs/filerootpath">file system root</a>: + KumKutusu <a href="sbie://docs/filerootpath">dosya sistemi kökü</a>: + + + Sandbox <a href="sbie://docs/ipcrootpath">ipc root</a>: + KumKutusu <a href="sbie://docs/ipcrootpath">ipc kökü</a>: + + + Sandbox <a href="sbie://docs/keyrootpath">registry root</a>: + KumKutusu <a href="sbie://docs/keyrootpath">kayıt kökü</a>: + + + Portable root folder + Taşınabilir kök dizin + + + Start UI with Windows + Windows başlangıcında kullanıcı arayüzünü başlat + + + Start UI when a sandboxed process is started + Korumalı kutuda bir işlem başladığında kullanıcı arayüzünü başlat + + + Show first recovery window when emptying sandboxes + Korumalı kutuları boşaltırken önce kurtarma penceresini göster + + + ... + ... + + + Other settings + Diğer ayarlar + + + + SnapshotsWindow + + Name: + Ad: + + + Remove Snapshot + Anlık Görüntüyü Kaldır + + + SandboxiePlus Settings + SandboxiePlus Ayarları + + + Description: + Açıklama: + + + Go to Snapshot + Anlık Görüntüye Git + + + Take Snapshot + Anlık Görüntü Al + + + Selected Snapshot Details + Seçili Anlık Görüntü Ayrıntıları + + + Snapshot Actions + Anlık Görüntü Eylemleri + + + diff --git a/SandboxiePlus/SandMan/sandman_zh-TW.ts b/SandboxiePlus/SandMan/sandman_zh-TW.ts new file mode 100644 index 00000000..f87c0243 --- /dev/null +++ b/SandboxiePlus/SandMan/sandman_zh-TW.ts @@ -0,0 +1,2386 @@ + + + + + CApiMonModel + + Message + 訊息 + + + Time Stamp + 時間標記 + + + Process + 處理程序 + + + + CMultiErrorDialog + + Message + 訊息 + + + Sandboxie-Plus - Error + Sandboxie-Plus - 錯誤 + + + + CNewBoxWindow + + New Box + 新沙盒 + + + Hardened + 強化 + + + Default + 預設 + + + Legacy (old sbie behaviour) + 遺留 (舊沙盒行為) + + + Sandboxie-Plus - Create New Box + Sandboxie-Plus - 建立新沙盒 + + + Legacy Sandboxie Behaviour + 遺留 Sandboxie 行為 + + + + COptionsWindow + + Always show + 總是顯示 + + + Template values can not be edited. + 模板值無法編輯。 + + + Lingerer + 駐留項目 + + + Browse for File + 瀏覽檔案 + + + Please enter a menu title + 請輸入選單標題 + + + Select Directory + 選取目錄 + + + Please enter a name for the new group + 請輸入新的群組名稱 + + + Please enter a program file name + 請輸入程式檔名稱 + + + Template values can not be removed. + 模板值無法刪除。 + + + Display box name in title + 標題顯示沙盒名稱 + + + Folder + 資料夾 + + + Sandboxie Plus - '%1' Options + Sandboxie Plus - '%1' 選項 + + + Leader + 導引 + + + Group: %1 + 群組: %1 + + + Process + 處理程序 + + + Display [#] indicator only + 只顯示 [#] 標記 + + + COM objects must be specified by their GUID, like: {00000000-0000-0000-0000-000000000000} + COM 物件必須被它們的 GUID 所限定,例如: {00000000-0000-0000-0000-000000000000} + + + %1 (%2) + %1 (%2) + + + Border disabled + 邊框禁用 + + + All Categories + 所有類別 + + + Please enter a file extension to be excluded + 請輸入要排除的副檔名 + + + Exclusion + 排除 + + + Select File + 選取檔案 + + + This template is enabled globally. To configure it, use the global options. + 此模板已全域性啟用。請使用全域性選項配置。 + + + Please select group first. + 請先選取群組。 + + + All Files (*.*) + 所有檔案 (*.*) + + + Show only when title is in focus + 僅在標題處在焦點時顯示 + + + Select Program + 選取程式 + + + Please enter a command + 請輸入命令 + + + kilobytes (%1) + KB (%1) + + + Don't alter the window title + 不要改變視窗標題 + + + All Programs + 所有程式 + + + Browse for Folder + 瀏覽資料夾 + + + Enter program: + 輸入程式: + + + Executables (*.exe|*.cmd) + 可執行檔案 (*.exe|*.cmd) + + + RT interfaces must be specified by their name. + RT 介面必須被它們名稱所限定。 + + + Browse for Program + 瀏覽程式 + + + Please enter a program path + 請輸入程式路徑 + + + Please enter a service identifier + 請輸入服務識別符號 + + + Service + 服務 + + + Program + 程式 + + + Please enter an auto exec command + 請輸入自動執行命令 + + + This sandbox has been deleted hence configuration can not be saved. + 沙盒已刪除,故配置沒有被儲存 + + + Some changes haven't been saved yet, do you really want to close this options window? + 一些變更尚未儲存,您確定關閉此選項視窗嗎? + + + Executables (*.exe *.cmd);;All files (*.*) + 可執行檔案 (*.exe *.cmd);;所有檔案 (*.*) + + + Direct + + + + Direct All + + + + Closed + + + + Closed RT + + + + Read Only + + + + Hidden + + + + Unknown + 未知 + + + File/Folder + + + + Registry + + + + IPC Path + + + + Wnd Class + + + + COM Object + + + + + CPopUpMessage + + ? + + + + Hide all such messages + 隱藏所有類似訊息 + + + Remove this message from the list + 從清單中刪除此訊息 + + + Dismiss + 忽略 + + + Visit %1 for a detailed explanation. + 訪問 %1 以取得詳細說明。 + + + + CPopUpProgress + + Remove this progress indicator from the list + 在清單中刪除此處理程序標記 + + + Dismiss + 忽略 + + + + CPopUpPrompt + + No + + + + Yes + + + + Requesting process terminated + 請求的處理程序被終止 + + + Remember for this process + 標記此處理程序 + + + Terminate + 終止 + + + Request will time out in %1 sec + 請求將在 %1 秒後逾時 + + + Request timed out + 請求逾時 + + + Yes and add to allowed programs + 確定並新增到允許的程式中 + + + + CPopUpRecovery + + Recover to: + 恢復到: + + + Browse + 瀏覽 + + + Clear folder list + 清除資料夾清單 + + + Recover + 恢復 + + + Recover the file to original location + 恢復檔案到原始位址 + + + Recover && Explore + 恢復 && 瀏覽 + + + Recover && Open/Run + 恢復 && 開啟/執行 + + + Open file recovery for this box + 為此沙盒開啟檔案恢復 + + + Dismiss + 忽略 + + + Don't recover this file right now + 此時暫不恢復此檔案 + + + Dismiss all from this box + 此沙盒忽略全部 + + + Disable quick recovery until the box restarts + 在沙盒重新啟動前禁用快速恢復 + + + Select Directory + 選取目錄 + + + + CPopUpWindow + + an UNKNOWN process. + 未知處理程序。 + + + Sandboxie-Plus Notifications + Sandboxie-Plus 通知 + + + %1 (%2) + %1 (%2) + + + UNKNOWN + 未知 + + + Do you want to allow the print spooler to write outside the sandbox for %1 (%2)? + 您想允許列印服務在沙盒外寫入,因為 %1 (%2) 嗎? + + + Do you want to allow %4 (%5) to copy a %1 large file into sandbox: %2? +File name: %3 + 您確定允許 %4 (%5) 複製大型檔案 %1 至沙盒: %2? +檔案名稱: %3 + + + Do you want to allow %1 (%2) access to the internet? +Full path: %3 + 您確定允許 %1 (%2) 訪問網路嗎? +完整位址: %3 + + + %1 is eligible for quick recovery from %2. +The file was written by: %3 + %1 可以從 %2 快速恢復。 +檔案寫入自: %3 + + + Migrating a large file %1 into the sandbox %2, %3 left. +Full path: %4 + 移動大檔案 %1 至沙盒 %2,%3 遺留。 +完整位址: %4 + + + Do you want to allow %4 (%5) to copy a %1 large file into sandbox: %2? +File name: %3 + + + + Do you want to allow %1 (%2) access to the internet? +Full path: %3 + + + + %1 is eligible for quick recovery from %2. +The file was written by: %3 + + + + Migrating a large file %1 into the sandbox %2, %3 left. +Full path: %4 + + + + + CRecoveryWindow + + File Name + 檔案名稱 + + + File Size + 檔案大小 + + + Full Path + 詳細位址 + + + Select Directory + 選取取目錄 + + + %1 - File Recovery + %1 - 檔案恢復 + + + One or more selected files are located on a network share, and must be recovered to a local drive, please select a folder to recover all selected files to. + 一個或多個被選取的檔案位於網路共享,並且必須恢復到本地磁碟,請選取用於恢復所選檔案的資料夾。 + + + There are %1 files and %2 folders in the sandbox, occupying %3 bytes of disk space. + 有 %1 檔案和 %2 資料夾位於沙盒中,佔用磁碟 %3 位元組。 + + + + CResMonModel + + Type + 類別 + + + Value + + + + Status + 狀態 + + + Time Stamp + 時間標記 + + + Process + 處理程序 + + + Unknown + 未知 + + + + CSandBoxPlus + + No Admin + 無管理員 + + + No INet + 無 INet + + + Normal + 標準 + + + API Log + API 日誌 + + + Net Share + 網路共享 + + + NOT SECURE (Debug Config) + 不安全(除錯配置) + + + Enhanced Isolation + 增強隔離 + + + Reduced Isolation + 弱化隔離 + + + Disabled + 禁用 + + + + CSandMan + + Exit + 退出 + + + <p>New Sandboxie-Plus has been downloaded to the following location:</p><p><a href="%2">%1</a></p><p>Do you want to begin the installation? If any programs are running sandboxed, they will be terminated.</p> + <p>新版本 Sandboxie-Plus 將被下載到:</p><p><a href="%2">%1</a></p><p>您想要開始安裝嗎?正在沙盒運作的其他程式將會被終止。</p> + + + Sandboxie-Plus was started in portable mode and it needs to create necessary services. This will prompt for administrative privileges. + Sandboxie-Plus 已於便攜模式中啟動,需建立必要的服務。將會提示管理員授權。 + + + Cleanup Processes + 清理處理程序 + + + Maintenance operation %1 + 維護作業 %1 + + + &Help + &幫助 + + + &View + &檢視 + + + Error deleting sandbox folder: %1 + 刪除沙盒資料夾錯誤: %1 + + + About Sandboxie-Plus + 關於 Sandboxie-Plus + + + Driver version: %1 + 驅動程式版本: %1 + + + Sandboxie-Plus v%1 + Sandboxie-Plus v%1 + + + Start Driver + 啟動驅動程式 + + + Install Driver + 安裝驅動程式 + + + Uninstall Driver + 解除安裝驅動程式 + + + Check for Updates + 檢查更新 + + + Visit Support Forum + 支援論壇 + + + Failed to copy configuration from sandbox %1: %2 + 複製沙盒配置 %1: %2 失敗 + + + Do you want to check if there is a new version of Sandboxie-Plus? + 你想要檢查 Sandboxie-Plus 是否存在新版本嗎? + + + Cleanup Api Call Log + 清理 API 呼叫日誌 + + + Simple View + 簡易檢視 + + + %1 (%2): + %1 (%2): + + + Login Failed: %1 + 登入失敗: %1 + + + Clean Up + 清理 + + + Don't show this message again. + 不再顯示此訊息。 + + + Uninstall Service + 解除安裝服務 + + + Start Service + 啟動服務 + + + Install Service + 安裝服務 + + + Failed to remove old snapshot directory '%1' + 刪除舊版快照目錄 '%1' 失敗 + + + The changes will be applied automatically as soon as the editor is closed. + 變更將在編輯器關閉後自動提交。 + + + Can't remove a snapshot that is shared by multiple later snapshots + 無法刪除由多個後續快照共享的快照 + + + Do you want to close Sandboxie Manager? + 您確定要關閉 Sandboxie 管理員? + + + Support Sandboxie-Plus with a Donation + 捐贈支持 Sandboxie-Plus + + + Unknown Error Status: %1 + 未知錯誤程式碼: %1 + + + Failed to create directory for new snapshot + 建立新的快照目錄失敗 + + + Sandboxie-Plus was running in portable mode, now it has to clean up the created services. This will prompt for administrative privileges. + Sandboxie-Plus 正運作於便攜模式中,現在將清理所建立的服務。將會提示管理員授權。 + + + - Portable + - 便攜 + + + Failed to download update from: %1 + 在: %1 下載更新失敗 + + + Api Call Log + API 呼叫日誌 + + + The sandbox name can not be longer than 32 characters. + 沙盒名稱不能超過32個字元。 + + + Stop Driver + 停止驅動程式 + + + Don't show this announcement in the future. + 此後不再顯示此通告。 + + + Sbie Messages + Sbie 訊息 + + + Failed to recover some files: + + 恢復某些檔案失敗: + + + + Failed to move directory '%1' to '%2' + 移動目錄 '%1' 至 '%2' 失敗 + + + Recovering file %1 to %2 + 恢復檔案 %1 至 %2 + + + Resource Logging + 資源日誌 + + + Online Documentation + 線上文件 + + + Ignore this update, notify me about the next one. + 忽略此升級,下一個再提示我。 + + + Please enter the duration for disabling forced programs. + 請輸入禁用強制執行程式的時間。 + + + Sbie Directory: %1 + Sbie 目錄: %1 + + + - NOT connected + - 未連線 + + + <p>Do you want to download the latest version?</p> + <p>確定要下載最新版本嗎?</p> + + + Sandboxie-Plus - Error + Sandboxie-Plus - 錯誤 + + + The changes will be applied automatically whenever the file gets saved. + 每當檔案儲存後更改將自動套用。 + + + Time|Message + 時間|訊息 + + + &Options + &選項 + + + Show/Hide + 顯示/隱藏 + + + Resource Monitor + 資源監控 + + + Do you want to open %1 in a sandboxed (yes) or unsandboxed (no) Web browser? + 確定要在沙盒化 (是) 未沙盒化 (否) 的瀏覽器中開啟 %1 嗎? + + + Reset all hidden messages + 重置所有隱藏訊息 + + + A sandbox must be emptied before it can be deleted. + 刪除沙盒之前必須清空。 + + + The sandbox name can contain only letters, digits and underscores which are displayed as spaces. + 沙盒名稱不能為空白,只能包含字母、數字和下劃線。 + + + A sandbox must be emptied before it can be renamed. + 重新命名沙盒之前必須清空。 + + + API Call Logging + API 呼叫日誌 + + + Loaded Config: %1 + 載入的配置: %1 + + + Reload ini file + 重新載入 ini 檔案 + + + Remember choice for later. + 以後記住選擇。 + + + &Maintenance + &維護 + + + The sandbox name can not be a device name. + 沙盒名稱不能為裝置名稱。 + + + Operation failed for %1 item(s). + %1 項作業失敗。 + + + Global Settings + 全域性設定 + + + Downloading new version... + 下載新版本... + + + &Sandbox + &沙盒 + + + <h3>About Sandboxie-Plus</h3><p>Version %1</p><p>Copyright (c) 2020-2021 by DavidXanatos</p> + <h3>關於 Sandboxie-Plus</h3><p>版本 %1</p><p>Copyright (c) 2020-2021 by DavidXanatos</p> + + + Cleanup + 清理 + + + Failed to check for updates, error: %1 + 檢查更新失敗,錯誤: %1 + + + Disconnect + 斷開連線 + + + Connect + 連線 + + + Only Administrators can change the config. + 僅限管理員可更改配置。 + + + Disable Forced Programs + 禁用強制執行程式 + + + Snapshot not found + 未發現快照 + + + Failed to remove old RegHive + 刪除舊版登錄檔項目失敗 + + + Stop All + 停止所有 + + + Can't find Sandboxie installation path. + 無法找到 Sandboxie 安裝位址。 + + + Delete protection is enabled for the sandbox + 沙盒的刪除保護被已啟用 + + + &Advanced + &進階 + + + An incompatible Sandboxie %1 was found. Compatible versions: %2 + 已發現不相容的 Sandboxie %1。相容版本為: %2 + + + Administrator rights are required for this operation. + 此作業需要管理員授權。 + + + Executing maintenance operation, please wait... + 執行維護作業,請稍等... + + + <p>There is a new version of Sandboxie-Plus available.<br /><font color='red'>New version:</font> <b>%1</b></p> + <p>有新版本 Sandboxie-Plus 可用。<br /><font color='red'>新版本:</font> <b>%1</b></p> + + + Stop Service + 停止服務 + + + Create New Box + 建立新沙盒 + + + Failed to copy RegHive + 複製登錄檔項目失敗 + + + Failed to terminate all processes + 終止所有處理程序失敗 + + + Advanced View + 進階檢視 + + + Failed to delete sandbox %1: %2 + 刪除沙盒 %1: %2 失敗 + + + <p>Do you want to go to the <a href="%1">download page</a>?</p> + <p>確定要開啟 <a href="%1">下載頁面</a>?</p> + + + Maintenance operation Successful + 維護作業成功 + + + PID %1: + PID %1: + + + Error Status: %1 + 錯誤程式碼: %1 + + + Terminate All Processes + 終止所有處理程序 + + + Please enter the configuration password. + 請輸入配置密碼。 + + + Do you also want to reset hidden message boxes (yes), or only all log messages (no)? + 確定連隱藏訊息視窗一起重置 (是) 或僅用於所有日誌訊息 (否)? + + + You are not authorized to update configuration in section '%1' + 您無權在此處更新配置 '%1' + + + Failed to connect to the driver + 連線驅動程式失敗 + + + Failed to communicate with Sandboxie Service: %1 + 無法與 Sandboxie 服務取得聯絡: %1 + + + Failed to execute: %1 + 執行失敗: %1 + + + This Snapshot operation can not be performed while processes are still running in the box. + 因處理程序正在沙盒中運作,此快照操作無法完成。 + + + server not reachable + 伺服器無法訪問 + + + Error merging snapshot directories '%1' with '%2', the snapshot has not been fully merged. + 合併快照目錄 '%1' 和 '%2' 錯誤,快照沒有全部合併。 + + + Edit ini file + 編輯 ini 檔案 + + + Checking for updates... + 檢查更新... + + + No sandboxes found; creating: %1 + 沒找到沙盒;建立: %1 + + + Cleanup Resource Log + 清理資源日誌 + + + Cleanup Message Log + 清理訊息日誌 + + + About the Qt Framework + 關於 Qt 框架 + + + Keep terminated + 保持終止 + + + A sandbox of the name %1 already exists + 沙盒名稱 %1 已存在 + + + Failed to set configuration setting %1 in section %2: %3 + 配置設定 %1 失敗於 %2: %3 + + + Copy Cell + 複製單元格 + + + Copy Row + 複製列 + + + Copy Panel + 複製表格 + + + Failed to stop all Sandboxie components + 停止所有 Sandboxie 元件失敗 + + + Failed to start required Sandboxie components + 啟動所需 Sandboxie 元件失敗 + + + Sandboxie-Plus was started in portable mode, do you want to put the SandBox folder into its parent directory? + Sandboxie-Plus 於便攜模式中啟動,您想將沙盒目錄放到它的上級目錄嗎? + + + The file %1 already exists, do you want to overwrite it? + 檔案 %1 已存在,您確定要覆蓋它嗎? + + + Do this for all files! + 為所有檔案執行此操作! + + + To use API logging you must first set up the LogApiDll from https://github.com/sandboxie-plus/LogApiDll with one or more sandboxes. +Please download the latest release and set it up with the Sandboxie.ini as instructed in the README.md of the project. + 要使用API記錄日誌首先必須從 https://github.com/sandboxie-plus/LogApiDll 下載 LogApiDll,並使用沙盒建立。 +請下載最新發布版本,並使用 sandboxie.ini 安裝,詳情請參考 README.md 中此項目的說明。 + + + No new updates found, your Sandboxie-Plus is up-to-date. + 無可用更新,您的 Sandboxie-Plus 已為最新 + + + <p>Sandboxie-Plus is an open source continuation of Sandboxie.</p><p></p><p>Visit <a href="https://sandboxie-plus.com">sandboxie-plus.com</a> for more information.</p><p></p><p></p><p></p><p>Icons from <a href="https://icons8.com">icons8.com</a></p><p></p> + <p>Sandboxie-Plus 是著名程式 Sandboxie 的開源延續。</p><p></p><p>訪問 <a href="https://sandboxie-plus.com">sandboxie-plus.com</a> 以取得更多資訊。</p><p></p><p></p><p></p><p>圖示來自 <a href="https://icons8.com">icons8.com</a></p><p></p> + + + Always on Top + 保持視窗置頂 + + + Sellect box: + 選取沙盒: + + + Some compatybility templates (%1) are missing, probably deleted, do you want to remove them from all boxes? + 一些相容性模板 (%1) 丟失,可能已被刪除,您確定要從所有沙盒中刪除它們嗎? + + + Cleaned up removed templates... + 清理已刪除的模板... + + + Can not create snapshot of an empty sandbox + 無法為空白沙盒建立快照 + + + A sandbox with that name already exists + 已存在同名沙盒 + + + Reset Columns + 重設欄 + + + Window Finder + 尋找視窗 + + + Show Hidden Boxes + 顯示隱藏沙盒 + + + Select box: + 選取沙盒: + + + Some compatibility templates (%1) are missing, probably deleted, do you want to remove them from all boxes? + 一些相容性模板已丟失,可能是已被刪除,是否從所有沙盒中移除它們? + + + Do you want to terminate all processes in all sandboxes? + 是否終止所有沙盒中的所有處理程式? + + + Terminate all without asking + 終止全部並不再詢問 + + + The selected window is running as part of program %1 in sandbox %2 + 所選取的視窗正作為沙盒 %2 中的程式 %1 運作 + + + The selected window is not running as part of any sandboxed program. + 所選取的視窗並不屬於任何沙盒化程式。 + + + Drag the Finder Tool over a window to select it, then release the mouse to check if the window is sandboxed. + 托拽尋找工具至一個視窗上以選取它,然後釋放滑鼠以檢查其是否已被沙盒化。 + + + Sandboxie-Plus - Window Finder + Sandboxie-Plus - 尋找視窗 + + + Default sandbox not found; creating: %1 + + + + <p>Do you want to go to the <a href="%1">info page</a>?</p> + + + + Don't show this message anymore. + + + + + CSbieModel + + Name + 名稱 + + + Box Groupe + 沙盒群組 + + + Status + 狀態 + + + Path / Command Line + 位址 / 命令列 + + + Start Time + 開始時間 + + + Process ID + 處理程序 ID + + + Title + 標題 + + + + CSbieProcess + + Terminated + 已終止 + + + Running + 運作中 + + + + CSbieView + + Run + 執行 + + + Create Shortcut to sandbox %1 + 為沙盒 %1 建立捷徑 + + + Options: + + 選項: + + + + Drop Admin Rights + 撤銷管理員授權 + + + Run eMail Client + 執行郵件用戶端 + + + Remove Group + 刪除群組 + + + Sandbox Options + 沙盒選項 + + + Sandbox Presets + 沙盒預設 + + + Do you want to %1 the selected process(es) + 確定要 %1 所選處理程序 + + + Move to Group + 移動至群組 + + + Remove Sandbox + 刪除沙盒 + + + Rename Sandbox + 重新命名沙盒 + + + Run from Start Menu + 從開始選單執行 + + + Preset + 預設 + + + Please enter a new group name + 請輸入新的群組名稱 + + + Enable API Call logging + 啟用 API 呼叫日誌 + + + [None] + [無] + + + Please enter a new name for the Sandbox. + 請為沙盒輸入新名稱 + + + Add Group + 新增群組 + + + Delete Content + 刪除內容 + + + Create Shortcut + 建立捷徑 + + + Do you really want to remove the selected sandbox(es)? + 確定要刪除所選沙盒嗎? + + + Run Program + 執行程式 + + + IPC root: %1 + + IPC 根目錄: %1 + + + + Block and Terminate + 阻止並終止 + + + Registry root: %1 + + 登錄檔根目錄: %1 + + + + File root: %1 + + 檔案根目錄: %1 + + + + Terminate + 終止 + + + Set Leader Process + 設定導引處理程序 + + + Terminate All Programs + 終止所有程式 + + + Do you really want to remove the selected group(s)? + 確定要刪除所選群組嗎? + + + Run Web Browser + 執行網頁瀏覽器 + + + Force into this sandbox + 強制加入此沙盒 + + + Allow Network Shares + 允許網路共享 + + + Run Cmd.exe + 執行 Cmd.exe + + + Snapshots Manager + 快照管理 + + + Run Explorer + 執行檔案總管 + + + Block Internet Access + 禁止網路訪問 + + + Set Linger Process + 設定駐留處理程序 + + + Create New Box + 建立新沙盒 + + + Pin to Run Menu + 固定到執行選單 + + + Recover Files + 恢復檔案 + + + This box does not have Internet restrictions in place, do you want to enable them? + 此沙盒無網際網路限制,確定要啟用它們嗎? + + + Explore Content + 瀏覽內容 + + + Allow internet access + 允許網路訪問 + + + Don't show this message again. + 不再顯示此訊息 + + + This Sandbox is already empty. + 此沙盒為空。 + + + Do you want to delete the content of the selected sandbox? + 您確定要刪除所選沙盒的內容? + + + Do you really want to delete the content of multiple sandboxes? + 您確定要刪除多個沙盒的內容? + + + Do you want to terminate all processes in the selected sandbox(es)? + 您確定要終止選定沙盒中的所有處理程序? + + + This sandbox is disabled, do you want to enable it? + 此沙盒已禁用,是否啟用? + + + This Sandbox is empty. + + + + + CSettingsWindow + + Close + 關閉 + + + Please enter the new configuration password. + 請輸入新配置密碼。 + + + Close to Tray + 關閉到工作列 + + + Select Directory + 選取目錄 + + + Please enter a program file name + 請輸入程式檔名 + + + Folder + 資料夾 + + + Prompt before Close + 關閉前提示 + + + Process + 處理程序 + + + Sandboxie Plus - Settings + Sandboxie Plus - 設定 + + + Please re-enter the new configuration password. + 請再次輸入新配置密碼。 + + + Passwords did not match, please retry. + 密碼不正確,請重新輸入。 + + + + CSnapshotsWindow + + Do you really want to delete the selected snapshot? + 確定要刪除所選快照? + + + New Snapshot + 新快照 + + + Snapshot + 快照 + + + Do you really want to switch the active snapshot? Doing so will delete the current state! + 確定要切換正在使用的快照?這樣做會刪除當前狀態! + + + %1 - Snapshots + %1 - 快照 + + + Please enter a name for the new Snapshot. + 請輸入新快照名稱。 + + + + NewBoxWindow + + Copy options from an existing box: + 從已有沙盒複製選項: + + + Initial sandbox configuration: + 初始沙盒配置: + + + Select restriction/isolation template: + 選取限制/隔離模板: + + + SandboxiePlus new box + SandboxiePlus 新沙盒 + + + Enter a name for the new box: + 輸入新沙盒名稱: + + + Sandbox Name: + 沙盒名稱: + + + + OptionsWindow + + Name + 名稱 + + + Path + 位址 + + + Save + 儲存 + + + Type + 類別 + + + Allow only selected programs to start in this sandbox. * + 僅允許被選取的程式在此沙盒中啟動。 * + + + Force Folder + 強制執行資料夾 + + + Add IPC Path + 新增 IPC 位址 + + + Sandbox Indicator in title: + 在標題顯示沙盒標記: + + + Debug + 除錯 + + + Users + 使用者 + + + <- for this one the above does not apply + <- 因為此原因,以上不套用 + + + Block network files and folders, unless specifically opened. + 禁用網路檔案和資料夾,除非額外開啟。 + + + Command Line + 命令列 + + + Don't alter window class names created by sandboxed programs + 不要改變由沙盒程式建立的視窗類名 + + + Prevent change to network and firewall parameters + 阻止更改網路和防火牆引數 + + + Internet Restrictions + 網路限制 + + + Configure which processes can access what resources. Double click on an entry to edit it. +'Direct' File and Key access only applies to program binaries located outside the sandbox. +Note that all Close...=!<program>,... exclusions have the same limitations. +For files access you can use 'Direct All' instead to make it apply to all programs. + 配置處理程序所訪問的資源。雙擊進入編輯。 +'管理' 檔案和機碼僅適用於沙盒外的程式二進位制檔案。 +注意所有關閉的...=!<程式>,... 例外也有相同限制。 +想要管理檔案訪問可使用 '管理全部' 使其套用至至全部程式。 + + + Log Debug Output to the Trace Log + 日誌除錯輸出到追蹤日誌 + + + Forced Programs + 強制執行程式 + + + Add Wnd Class + 新增視窗類別 + + + Access Tracing + 訪問追蹤 + + + File Options + 檔案選項 + + + General Options + 通用選項 + + + Open Windows Credentials Store + 開啟 Windows 憑證儲存空間 + + + kilobytes + KB + + + Lingering programs will be automatically terminated if they are still running after all other processes have been terminated. + +If leader processes are defined, all others are treated as lingering processes. + 如果其他所有程式已經終止後,駐留程式仍在運作,將自動終止。 + +如果導引處理程序已確定,所有其他處理程序將被視為駐留處理程序。 + + + Allow all programs to start in this sandbox. + 允許所有程式在此沙盒中啟動。 + + + Enable Immediate Recovery prompt to be able to recover files as soon as thay are created. + 啟用快速恢復提示以便建立檔案時能儘快恢復。 + + + General restrictions + 通用限制 + + + Move Up + 上移 + + + Access + 訪問 + + + These options are intended for debugging compatibility issues, please do not use them in production use. + 這些選項是計劃除錯裝置而設計的,在日常使用時請不要使用。 + + + Text Filter + 文字過濾 + + + Cancel + 取消 + + + Restrict Resource Access monitor to administrators only + 限制資源訪問監視器僅限管理員使用 + + + Protect the sandbox integrity itself + 沙盒完整性保護 + + + Add Folder + 新增資料夾 + + + Prompt user whether to allow an exemption from the blockade. + 提示使用者是否允許例外免於封鎖。 + + + IPC Trace + IPC 追蹤 + + + Limit access to the emulated service control manager to privileged processes + 限制訪問模擬服務控制管理員來提權處理程序 + + + Remove + 刪除 + + + Add File/Folder + 新增檔案/資料夾 + + + Block internet access for all programs except those added to the list. + 禁止所有程式訪問網路,除了這些新增至清單中的。 + + + Issue message 1307 when a program is denied internet access + 錯誤程式碼1307,程式被拒絕訪問網路 + + + Compatibility + 相容性 + + + Stop Behaviour + 停止行為 + + + Note: Programs installed to this sandbox won't be able to access the internet at all. + 注意: 安裝在此沙盒裡的程式將完全無法訪問網路。 + + + Box Options + 沙盒選項 + + + Don't allow sandboxed processes to see processes running in other boxes + 不允許沙盒化的處理程序檢視其他沙盒裡處理程序的運作 + + + Add Group + 新增群組 + + + Sandboxed window border: + 沙盒化視窗邊框: + + + Prevent selected programs from starting in this sandbox. + 阻止所選程式在此沙盒中啟動。 + + + Miscellaneous + 其他 + + + Issue message 2102 when a file is too large + 問題程式碼 2102,檔案過大 + + + File Recovery + 檔案恢復 + + + Box Delete options + 沙盒刪除選項 + + + Pipe Trace + Pipe 追蹤 + + + File Trace + 檔案追蹤 + + + Program + 程式 + + + Add Process + 新增處理程序 + + + Add Program + 新增程式 + + + Filter Categories + 篩選類別 + + + Copy file size limit: + 複製檔案大小限制: + + + Open System Protected Storage + 開放系統保護儲存空間 + + + Protect the system from sandboxed processes + 保護系統免受來自沙盒化處理程序的訪問 + + + Add Leader Program + 新增導引程式 + + + SandboxiePlus Options + SandboxiePlus 選項 + + + Category + 類別 + + + Drop rights from Administrators and Power Users groups + 撤銷管理員和超級使用者群組的授權 + + + Add Reg Key + 新增登錄檔機碼 + + + Sandbox protection + 沙盒保護 + + + You can group programs together and give them a group name. Program groups can be used with some of the settings instead of program names. + 您可將程式分組並且為它們設定群組名稱。程式群組可以代替程式名稱被用於一些設定。 + + + Protect sandboxed SYSTEM processes from unprivileged unsandboxed processes + 保護沙盒化系統處理程序免受來自未授權的未沙盒化處理程序訪問 + + + COM Class Trace + COM 元件追蹤 + + + Add Command + 新增命令 + + + Hide Processes + 隱藏處理程序 + + + When the Quick Recovery function is invoked, the following folders will be checked for sandboxed content. + 當快速恢復功能被啟用,將檢查下列資料夾沙盒化內容。 + + + px Width + px 寬度 + + + Add User + 新增使用者 + + + Programs entered here, or programs started from entered locations, will be put in this sandbox automatically, unless thay are explicitly started in another sandbox. + 此處輸入的程式,或指定位置啟動的程式,將自動加入此沙盒,除非它們被確定已在其他沙盒啟動。 + + + Force Program + 強制運作程式 + + + WARNING, these options can disable core security guarantees and break sandbox security!!! + 警告,這些選項可以使核心安全保障失效並且破壞沙盒安全!!! + + + Edit ini + 編輯 ini + + + Show Templates + 顯示模板 + + + Ignore Folder + 忽略資料夾 + + + GUI Trace + GUI 追蹤 + + + Key Trace + 機碼追蹤 + + + Tracing + 追蹤 + + + Appearance + 外觀 + + + Add sandboxed processes to job objects (recommended) + 新增沙盒化處理程序到工作物件(建議) + + + Remove Program + 刪除程式 + + + You can exclude folders and file types (or file extensions) from Immediate Recovery. + 您可從快速恢復中排除資料夾和檔案類別 (或副檔名) 。 + + + Run Menu + 執行選單 + + + App Templates + 應用程式模板 + + + Remove User + 刪除使用者 + + + Ignore Extension + 忽略副檔名 + + + Move Down + 下移 + + + Protect this sandbox from deletion or emptying + 保護此沙盒刪除或清空 + + + Add user accounts and user groups to the list below to limit use of the sandbox to only those accounts. If the list is empty, the sandbox can be used by all user accounts. + +Note: Forced Programs and Force Folders settings for a sandbox do not apply to user accounts which cannot use the sandbox. + 新增使用者賬戶和使用者群組到下面清單中來僅限這些賬戶使用沙盒。如果清單內容為空,所有賬戶都將可以使用沙盒。 + +注意: 沙盒的強制執行程式和強制執行資料夾設定不接受不能執行沙盒的賬戶。 + + + * Note: Programs installed to this sandbox won't be able to start at all. + * 注意: 安裝在此沙盒裡的程式將完全無法啟動。 + + + This list contains a large amount of sandbox compatibility enhancing templates + 此清單包含大量沙盒相容性增強模板 + + + Add Lingering Program + 新增駐留程式 + + + Program Groups + 程式群組 + + + Issue message 1308 when a program fails to start + 錯誤程式碼 1308,程式啟動失敗 + + + Resource Access + 資源訪問 + + + Advanced Options + 進階選項 + + + Hide host processes from processes running in the sandbox. + 隱藏沙盒中執行中處理程序的主處理程序。 + + + File Migration + 檔案轉移 + + + Auto delete content when last sandboxed process terminates + 當最後的沙盒化的處理程序終止後自動刪除內容 + + + Add COM Object + 新增 COM 物件 + + + You can configure custom entries for the sandbox run menu. + 您可為沙盒執行選單配置自訂條目。 + + + Start Restrictions + 啟動限制 + + + Force usage of custom dummy Manifest files (legacy behaviour) + 強制使用自訂虛擬 Manifest 檔案(遺留行為) + + + Edit ini Section + 編輯 ini 部分 + + + Block access to the printer spooler + 阻止訪問列印服務 + + + Allow the print spooler to print to files outside the sandbox + 允許列印服務在沙盒外列印檔案 + + + Printing + 列印 + + + Remove spooler restriction, printers can be installed outside the sandbox + 移除列印限制,印表機可安裝至沙盒外 + + + Add program + 新增程式 + + + Auto Start + 自動啟動 + + + Here you can specify programs and/or services that are to be started automatically in the sandbox when it is activated + 這裡您可以指定將在沙盒啟用時自動啟動的程式或服務 + + + Add service + 新增服務 + + + Do not start sandboxed services using a system token (recommended) + 不啟動使用系統令牌的沙盒化服務 (建議) + + + Allow access to Smart Cards + 允許訪問智慧卡片 + + + Lift security restrictions + 提升安全限制 + + + Sandbox isolation + 沙盒隔離 + + + Auto Exec + 自動執行 + + + Here you can specify a list of commands that are executed every time the sandbox is initially populated. + 這裡您可以指定每次沙盒啟動被執行的命令清單。 + + + Log all access events as seen by the driver to the resource access log. + +This options set the event mask to "*" - All access events +You can customize the logging using the ini by specifying +"A" - Allowed accesses +"D" - Denied accesses +"I" - Ignore access requests +instead of "*". + 將驅動程式所見所有訪問事件記錄到資源訪問日誌中。 + +這些選項設定事件標記到 "*" - 所有訪問事件 +您可以通過 ini 來詳細訂製記錄 +"A" - 允許訪問 +"D" - 拒絕訪問 +"I" - 忽略拒絕請求 +代替 "*". + + + Allow access to Bluetooth + + + + + PopUpWindow + + SandboxiePlus Notifications + SandboxiePlus 通知 + + + + QObject + + Drive %1 + 磁碟 %1 + + + + QPlatformTheme + + OK + 確定 + + + Apply + 套用 + + + Cancel + 取消 + + + &Yes + &是 + + + &No + &否 + + + + RecoveryWindow + + Close + 關閉 + + + SandboxiePlus Settings + SandboxiePlus 設定 + + + Add Folder + 新增資料夾 + + + Recover to + 恢復至 + + + Recover + 恢復 + + + Refresh + 重新整理 + + + Delete all + 刪除全部 + + + Show All Files + 顯示所有檔案 + + + TextLabel + 文字標籤 + + + + SettingsWindow + + Name + 名稱 + + + Path + 路徑 + + + Change Password + 更改密碼 + + + Clear password when main window becomes hidden + 主視窗隱藏時清除密碼 + + + SandboxiePlus Settings + SandboxiePlus 設定 + + + Password must be entered in order to make changes + 必須輸入密碼以進行更改 + + + Check periodically for updates of Sandboxie-Plus + 定期檢查 Sandboxie-Plus 的更新 + + + General Options + 一般選項 + + + Program Restrictions + 程式限制 + + + Restart required (!) + 需要重新啟動 (!) + + + Tray options + 磁碟選項 + + + Use Dark Theme + 使用暗色主題 + + + Enable + 啟用 + + + Add Folder + 新增資料夾 + + + Only Administrator user accounts can make changes + 僅限管理員賬戶進行更改 + + + Config protection + 配置保護 + + + Sandbox <a href="sbie://docs/keyrootpath">registry root</a>: + 沙盒 <a href="sbie://docs/keyrootpath">登錄檔根目錄</a>: + + + Add Program + 新增程式 + + + Sandboxie has detected the following software applications in your system. Click OK to apply configuration settings, which will improve compatibility with these applications. These configuration settings will have effect in all existing sandboxes and in any new sandboxes. + Sandboxie 在您系統中檢測到下列軟體程式. 點選 確定 接受配置設定,將增強這些軟體程式的相容性。這些配置設定將影響所有已存在的沙盒和之後的新沙盒。 + + + Watch Sandboxie.ini for changes + 檢視 Sandboxie.ini 變更 + + + Show Sys-Tray + 系統工具列顯示 + + + Open urls from this ui sandboxed + 在此使用者介面開啟的連結都將沙盒化 + + + In the future, don't check software compatibility + 以後不再檢查軟體相容性 + + + Disable + 禁用 + + + When any of the following programs is launched outside any sandbox, Sandboxie will issue message SBIE1301. + 當下列程式在任意沙盒之外啟動時,Sandboxie 將出現錯誤程式碼 SBIE1301。 + + + Remove Program + 刪除程式 + + + Software Compatibility + 軟體相容性 + + + On main window close: + 主窗體關閉時: + + + Add 'Run Sandboxed' to the explorer context menu + 在檔案總管新增'在沙盒中執行' + + + Issue message 1308 when a program fails to start + 錯誤程式碼 1308,程式啟動失敗 + + + Sandbox default + 沙盒預設 + + + Separate user folders + 獨立使用者資料夾 + + + Advanced Options + 進階選項 + + + Prevent the listed programs from starting on this system + 阻止清單中程式在此系統中啟動 + + + Only Administrator user accounts can use Disable Forced Programs command + 僅管理員賬戶可使用禁用強制執行程式命令 + + + Sandbox <a href="sbie://docs/ipcrootpath">ipc root</a>: + 沙盒 <a href="sbie://docs/ipcrootpath">IPC 根目錄</a>: + + + Show Notifications for relevant log Messages + 顯示相關日誌訊息的通知 + + + Sandbox <a href="sbie://docs/filerootpath">file system root</a>: + 沙盒 <a href="sbie://docs/filerootpath">檔案系統根目錄</a>: + + + Portable root folder + 便攜化根目錄 + + + Start UI with Windows + 開機啟動 UI + + + Start UI when a sandboxed process is started + 當沙盒化處理程序啟動時啟動 UI + + + Show first recovery window when emptying sandboxes + 當清空沙盒時顯示第一個恢復視窗 + + + ... + ... + + + Other settings + 其他設定 + + + + SnapshotsWindow + + Name: + 名稱: + + + Remove Snapshot + 刪除快照 + + + SandboxiePlus Settings + SandboxiePlus 設定 + + + Description: + 說明: + + + Go to Snapshot + 進入快照 + + + Take Snapshot + 抓取快照 + + + Selected Snapshot Details + 所選快照內容 + + + Snapshot Actions + 快照行為 + + + diff --git a/SandboxiePlus/SandMan/sandman_zh.ts b/SandboxiePlus/SandMan/sandman_zh.ts index f75ea9d0..41209fe7 100644 --- a/SandboxiePlus/SandMan/sandman_zh.ts +++ b/SandboxiePlus/SandMan/sandman_zh.ts @@ -1,2318 +1,2282 @@ - - - - - CApiMonModel - - Message - 信息 - - - Time Stamp - 时间戳 - - - Process - 进程 - - - - CMultiErrorDialog - - Message - 信息 - - - Sandboxie-Plus - Error - Sandboxie-Plus - 错误 - - - - CNewBoxWindow - - New Box - 新沙盒 - - - Hardened - 加强 - - - Default - 默认 - - - Legacy (old sbie behaviour) - 遗留 (旧沙盒行为) - - - Sandboxie-Plus - Create New Box - - - - Legacy Sandboxie Behaviour - - - - - COptionsWindow - - Always show - 总是显示 - - - Template values can not be edited. - 模板值无法编辑. - - - Lingerer - 驻留项 - - - Browse for File - 浏览文件 - - - Please enter a menu title - 请输入清单标题 - - - Select Directory - 选择目录 - - - Please enter a name for the new group - 请输入新的组名称 - - - Please enter a program file name - 请输入程序文件名称 - - - Template values can not be removed. - 模板值无法删除. - - - Display box name in title - 标题显示沙盒名称 - - - Folder - 文件夹 - - - Sandboxie Plus - '%1' Options - Sandboxie Plus - '%1' 选项 - - - Leader - 引导 - - - Group: %1 - 组: %1 - - - Process - 进程 - - - Display [#] indicator only - 只显示 [#] 标记 - - - COM objects must be specified by their GUID, like: {00000000-0000-0000-0000-000000000000} - COM对象必须被它们的GUID制定,例如: {00000000-0000-0000-0000-000000000000} - - - %1 (%2) - %1 (%2) - - - Border disabled - 边框禁用 - - - All Categories - 所有类别 - - - Please enter a file extension to be excluded - 请输入要排除的文件扩展名 - - - Exclusion - 排除 - - - Select File - 选择文件 - - - This template is enabled globally. To configure it, use the global options. - 此模板已全局启用.请使用全局选项配置. - - - Please select group first. - 请先选择组. - - - All Files (*.*) - 所有文件 (*.*) - - - Show only when title is in focus - 仅在标题处在焦点时显示 - - - Select Program - 选择程序 - - - Please enter a command - 请输入命令 - - - kilobytes (%1) - kb (%1) - - - Don't alter the window title - 不要改变窗口标题 - - - All Programs - 所有程序 - - - Browse for Folder - 浏览文件夹 - - - Enter program: - 输入程序: - - - Executables (*.exe|*.cmd) - 可执行文件 (*.exe|*.cmd) - - - RT interfaces must be specified by their name. - RT接口必须被它们名称制定. - - - Browse for Program - 浏览程序 - - - Please enter a program path - 请输入程序路径 - - - Please enter a service identifier - 请输入服务标识符 - - - Service - 服务 - - - Program - 程序 - - - Please enter an auto exec command - 请输入自动运行命令 - - - This sandbox has been deleted hence configuration can not be saved. - 沙盒已删除,故配置没有被保存 - - - Some changes haven't been saved yet, do you really want to close this options window? - 一些变更还未保存, 您确定关闭此选项窗口吗? - - - Executables (*.exe *.cmd);;All files (*.*) - 可执行文件 (*.exe *.cmd);;所有文件 (*.*) - - - - CPopUpMessage - - ? - ? - - - Hide all such messages - 隐藏所有类似消息 - - - Remove this message from the list - 列表中删除此信息 - - - Dismiss - 忽略 - - - Visit %1 for a detailed explanation. - 访问 %1 详细说明 - - - - CPopUpProgress - - Remove this progress indicator from the list - 在列表中删除此进程标记 - - - Dismiss - 忽略 - - - - CPopUpPrompt - - No - - - - Yes - - - - Requesting process terminated - 请求进程被终止 - - - Remember for this process - 标记此进程 - - - Terminate - 终止 - - - Request will time out in %1 sec - 请求将在 %1 秒后超时 - - - Request timed out - 请求超时 - - - Yes and add to allowed programs - 确定并添加到允许的程序中 - - - - CPopUpRecovery - - Recover to: - 恢复到: - - - Browse - 浏览 - - - Clear folder list - 清除文件夹列表 - - - Recover - 恢复 - - - Recover the file to original location - 恢复文件到原始路径 - - - Recover && Explore - 恢复 && 浏览 - - - Recover && Open/Run - 恢复 && 打开/运行 - - - Open file recovery for this box - 为此沙盒打开文件恢复 - - - Dismiss - 忽略 - - - Don't recover this file right now - 此时暂不恢复此文件 - - - Dismiss all from this box - 此沙盒忽略全部 - - - Disable quick recovery until the box restarts - 在沙盒重启前禁用快速恢复 - - - Select Directory - 选择目录 - - - - CPopUpWindow - - an UNKNOWN process. - 未知进程. - - - Sandboxie-Plus Notifications - Sandboxie-Plus通知 - - - %1 (%2) - %1 (%2) - - - UNKNOWN - 未知 - - - Do you want to allow the print spooler to write outside the sandbox for %1 (%2)? - 您想允许打印服务在沙盒外写入因 %1 (%2) 吗? - - - Do you want to allow %4 (%5) to copy a %1 large file into sandbox: %2? -File name: %3 - 您确定允许 %4 (%5) 复制大文件 %1 到沙盒: %2? -文件名称: %3 - - - Do you want to allow %1 (%2) access to the internet? -Full path: %3 - 您确定允许 %1 (%2) 访问网络吗? -完整路径: %3 - - - %1 is eligible for quick recovery from %2. -The file was written by: %3 - %1 可以从 %2 快速恢复. -文件写入自: %3 - - - Migrating a large file %1 into the sandbox %2, %3 left. -Full path: %4 - 移动大文件 %1 到沙盒 %2, %3 遗留. -完整路径: %4 - - + + + + + CApiMonModel + + Message + 信息 + + + Time Stamp + 时间戳 + + + Process + 进程 + + + + CMultiErrorDialog + + Message + 信息 + + + Sandboxie-Plus - Error + Sandboxie-Plus - 错误 + + + + CNewBoxWindow + + New Box + 新沙盒 + + + Hardened + 加强 + + + Default + 默认 + + + Sandboxie-Plus - Create New Box + Sandboxie-Plus - 创建新沙盒 + + + Legacy Sandboxie Behaviour + 保留沙盒行为 + + + + COptionsWindow + + Always show + 总是显示 + + + Template values can not be edited. + 模板值无法编辑. + + + Lingerer + 驻留项 + + + Browse for File + 浏览文件 + + + Please enter a menu title + 请输入清单标题 + + + Select Directory + 选择目录 + + + Please enter a name for the new group + 请输入新的组名称 + + + Please enter a program file name + 请输入程序文件名称 + + + Template values can not be removed. + 模板值无法删除. + + + Display box name in title + 标题显示沙盒名称 + + + Folder + 文件夹 + + + Sandboxie Plus - '%1' Options + Sandboxie Plus - '%1' 选项 + + + Leader + 引导 + + + Group: %1 + 组: %1 + + + Process + 进程 + + + Display [#] indicator only + 只显示 [#] 标记 + + + COM objects must be specified by their GUID, like: {00000000-0000-0000-0000-000000000000} + COM对象必须被它们的GUID制定,例如: {00000000-0000-0000-0000-000000000000} + + + %1 (%2) + %1 (%2) + + + Border disabled + 边框禁用 + + + All Categories + 所有类别 + + + Please enter a file extension to be excluded + 请输入要排除的文件扩展名 + + + Exclusion + 排除 + + + Select File + 选择文件 + + + This template is enabled globally. To configure it, use the global options. + 此模板已全局启用.请使用全局选项配置. + + + Please select group first. + 请先选择组. + + + All Files (*.*) + 所有文件 (*.*) + + + Show only when title is in focus + 仅在标题处在焦点时显示 + + + Select Program + 选择程序 + + + Please enter a command + 请输入命令 + + + kilobytes (%1) + kb (%1) + + + Don't alter the window title + 不要改变窗口标题 + + + All Programs + 所有程序 + + + Browse for Folder + 浏览文件夹 + + + Enter program: + 输入程序: + + + Executables (*.exe|*.cmd) + 可执行文件 (*.exe|*.cmd) + + + RT interfaces must be specified by their name. + RT接口必须被它们名称制定. + + + Browse for Program + 浏览程序 + + + Please enter a program path + 请输入程序路径 + + + Please enter a service identifier + 请输入服务标识符 + + + Service + 服务 + + + Program + 程序 + + + Please enter an auto exec command + 请输入自动运行命令 + + + This sandbox has been deleted hence configuration can not be saved. + 沙盒已删除,故配置没有被保存 + + + Some changes haven't been saved yet, do you really want to close this options window? + 一些变更还未保存, 您确定关闭此选项窗口吗? + + + Executables (*.exe *.cmd);;All files (*.*) + 可执行文件 (*.exe *.cmd);;所有文件 (*.*) + + + + CPopUpMessage + + ? + ? + + + Hide all such messages + 隐藏所有类似消息 + + + Remove this message from the list + 列表中删除此信息 + + + Dismiss + 忽略 + + + Visit %1 for a detailed explanation. + 访问 %1 详细说明 + + + + CPopUpProgress + + Remove this progress indicator from the list + 在列表中删除此进程标记 + + + Dismiss + 忽略 + + + + CPopUpPrompt + + No + + + + Yes + + + + Requesting process terminated + 请求进程被终止 + + + Remember for this process + 标记此进程 + + + Terminate + 终止 + + + Request will time out in %1 sec + 请求将在 %1 秒后超时 + + + Request timed out + 请求超时 + + + Yes and add to allowed programs + 确定并添加到允许的程序中 + + + + CPopUpRecovery + + Recover to: + 恢复到: + + + Browse + 浏览 + + + Clear folder list + 清除文件夹列表 + + + Recover + 恢复 + + + Recover the file to original location + 恢复文件到原始路径 + + + Recover && Explore + 恢复 && 浏览 + + + Recover && Open/Run + 恢复 && 打开/运行 + + + Open file recovery for this box + 为此沙盒打开文件恢复 + + + Dismiss + 忽略 + + + Don't recover this file right now + 此时暂不恢复此文件 + + + Dismiss all from this box + 此沙盒忽略全部 + + + Disable quick recovery until the box restarts + 在沙盒重启前禁用快速恢复 + + + Select Directory + 选择目录 + + + + CPopUpWindow + + an UNKNOWN process. + 未知进程. + + + Sandboxie-Plus Notifications + Sandboxie-Plus通知 + + + %1 (%2) + %1 (%2) + + + UNKNOWN + 未知 + + + Do you want to allow the print spooler to write outside the sandbox for %1 (%2)? + 您想允许打印服务在沙盒外写入因 %1 (%2) 吗? + + Do you want to allow %4 (%5) to copy a %1 large file into sandbox: %2? -File name: %3 - - - +File name: %3 + 您确定允许 %4 (%5) 复制大文件 %1 到沙盒: %2? +文件名称: %3 + + Do you want to allow %1 (%2) access to the internet? -Full path: %3 - - - +Full path: %3 + 您确定允许 %1 (%2) 访问网络吗? +完整路径: %3 + + %1 is eligible for quick recovery from %2. -The file was written by: %3 - - - +The file was written by: %3 + %1 可以从 %2 快速恢复. +文件写入自: %3 + + Migrating a large file %1 into the sandbox %2, %3 left. -Full path: %4 - - - - - CRecoveryWindow - - File Name - 文件名称 - - - File Size - 文件大小 - - - Full Path - 详细路径 - - - Select Directory - 选择目录 - - - %1 - File Recovery - %1 - 文件恢复 - - - One or more selected files are located on a network share, and must be recovered to a local drive, please select a folder to recover all selected files to. - 一个或多个被选择的文件位于网络共享, 并必须恢复到本地磁盘, 请选择要将所选文件恢复到的文件夹. - - - There are %1 files and %2 folders in the sandbox, occupying %3 bytes of disk space. - 有 %1 文件和 %2 文件夹在沙盒中, 占用磁盘 %3 字节. - - - - CResMonModel - - Type - 类型 - - - Value - - - - Status - 状态 - - - Time Stamp - 时间戳 - - - Process - 进程 - - - Unknown - 未知 - - - - CSandBoxPlus - - No Admin - 无管理员 - - - No INet - 无INet - - - Normal - 标准 - - - API Log - API日志 - - - Net Share - 网络共享 - - - NOT SECURE (Debug Config) - 不安全(调试配置) - - - Enhanced Isolation - 增强隔离 - - - Reduced Isolation - 减弱隔离 - - - Disabled - - - - - CSandMan - - Exit - 退出 - - - <p>New Sandboxie-Plus has been downloaded to the following location:</p><p><a href="%2">%1</a></p><p>Do you want to begin the installation? If any programs are running sandboxed, they will be terminated.</p> - <p>新版本Sandboxie-Plus 将被下载到:</p><p><a href="%2">%1</a></p><p>您想要开始安装吗? 正在沙盒运行的其他程序将会被终止.</p> - - - Sandboxie-Plus was started in portable mode and it needs to create necessary services. This will prompt for administrative privileges. - 便携模式启动Sandboxie-Plus,需要创建必需的服务.将会提示管理员权限. - - - Cleanup Processes - 清理所有操作 - - - Maintenance operation %1 - 运行维护 %1 - - - &Help - &帮助 - - - &View - &视图 - - - Error deleting sandbox folder: %1 - 删除沙盒文件夹错误: %1 - - - About Sandboxie-Plus - 关于Sandboxie-Plus - - - Driver version: %1 - 驱动版本: %1 - - - Sandboxie-Plus v%1 - Sandboxie-Plus v%1 - - - Start Driver - 启动驱动 - - - Install Driver - 安装驱动 - - - Uninstall Driver - 卸载驱动 - - - Check for Updates - 检查更新 - - - Visit Support Forum - 支持论坛 - - - Failed to copy configuration from sandbox %1: %2 - 复制沙盒配置 %1: %2 失败 - - - Do you want to check if there is a new version of Sandboxie-Plus? - 当有Sandboxie-Plus新版本时您想要检查吗? - - - Cleanup Api Call Log - 清理Api调用日志 - - - Simple View - 简易视图 - - - %1 (%2): - %1 (%2): - - - Login Failed: %1 - 登录失败: %1 - - - Clean Up - 清理 - - - Don't show this message again. - 不再显示此消息 - - - Uninstall Service - 卸载服务 - - - Start Service - 启动服务 - - - Install Service - 安装服务 - - - Failed to remove old snapshot directory '%1' - 删除旧的快照目录 '%1' 失败 - - - The changes will be applied automatically as soon as the editor is closed. - 变更将在编辑器关闭后自动提交. - - - Can't remove a snapshot that is shared by multiple later snapshots - 无法删除由多个后续快照共享的快照 - - - Do you want to close Sandboxie Manager? - 您确定要关闭Sandboxie管理器? - - - Support Sandboxie-Plus with a Donation - 捐赠支持Sandboxie-Plus - - - Unknown Error Status: %1 - 未知错误代码: %1 - - - Failed to create directory for new snapshot - 创建新的快照目录失败 - - - Sandboxie-Plus was running in portable mode, now it has to clean up the created services. This will prompt for administrative privileges. - Sandboxie-Plus运行于便携模式,现在将清理所创建的服务.将会提示管理员权限 - - - - Portable - - 便携 - - - Failed to download update from: %1 - 在: %1 下载更新失败 - - - Api Call Log - Api调用日志 - - - The sandbox name can not be longer than 32 characters. - 沙盒名称不能超过32个字符. - - - Stop Driver - 停止驱动 - - - Don't show this announcement in the future. - 此后不再显示此通告. - - - Sbie Messages - Sbie信息 - - - Failed to recover some files: - - 恢复某些文件失败: - - - - Failed to move directory '%1' to '%2' - 移动目录 '%1' 到 '%2' 失败 - - - Recovering file %1 to %2 - 恢复文件 %1 到 %2 - - - Resource Logging - 资源日志 - - - Online Documentation - 在线文档 - - - Ignore this update, notify me about the next one. - 忽略此升级,下一个再提示我. - - - Please enter the duration for disabling forced programs. - 请输入禁用强制运行程序的时间. - - - Sbie Directory: %1 - Sbie目录: %1 - - - - NOT connected - - 未连接 - - - <p>Do you want to download the latest version?</p> - <p>确定要下载最新版?</p> - - - Sandboxie-Plus - Error - Sandboxie-Plus - 错误 - - - The changes will be applied automatically whenever the file gets saved. - 每当文件保存后更改将自动应用. - - - Time|Message - 时间|信息 - - - &Options - &选项 - - - Show/Hide - 显示/隐藏 - - - Resource Monitor - 资源监控 - - - Do you want to open %1 in a sandboxed (yes) or unsandboxed (no) Web browser? - 确定要打开 %1 在沙盒化 (是) 未沙盒化 (否) 的浏览器中? - - - Reset all hidden messages - 重置所有隐藏消息 - - - A sandbox must be emptied before it can be deleted. - 删除沙盒之前必须清空. - - - The sandbox name can contain only letters, digits and underscores which are displayed as spaces. - 沙盒名称不能为空格,只能包含字母,数字和下划线. - - - A sandbox must be emptied before it can be renamed. - 重命名沙盒之前必须清空. - - - API Call Logging - API调用记录 - - - Loaded Config: %1 - 加载的配置: %1 - - - Reload ini file - 重载ini文件 - - - Remember choice for later. - 以后记住选择. - - - &Maintenance - &维护 - - - The sandbox name can not be a device name. - 沙盒名称不能为设备名称. - - - Operation failed for %1 item(s). - %1 项操作失败. - - - Global Settings - 全局设置 - - - Downloading new version... - 下载新版本... - - - &Sandbox - &沙盒 - - - <h3>About Sandboxie-Plus</h3><p>Version %1</p><p>Copyright (c) 2020-2021 by DavidXanatos</p> - <h3>关于Sandboxie-Plus</h3><p>Version %1</p><p>Copyright (c) 2020-2021 by DavidXanatos</p> - - - Cleanup - 清理 - - - Failed to check for updates, error: %1 - 检查更新失败,错误: %1 - - - Disconnect - 断开 - - - Connect - 连接 - - - Only Administrators can change the config. - 仅限管理员可更改配置. - - - Disable Forced Programs - 禁用强制运行程序 - - - Snapshot not found - 未发现快照 - - - Failed to remove old RegHive - 删除旧的注册表项失败 - - - Stop All - 停止所有 - - - Can't find Sandboxie installation path. - 未找到Sandboxie安装路径. - - - Delete protection is enabled for the sandbox - 沙盒的删除保护被启用 - - - &Advanced - &高级 - - - An incompatible Sandboxie %1 was found. Compatible versions: %2 - 不兼容的Sandboxie %1 被发现.兼容版本为: %2 - - - Administrator rights are required for this operation. - 此操作需要管理员权限. - - - Executing maintenance operation, please wait... - 执行操作维护,请稍等... - - - <p>There is a new version of Sandboxie-Plus available.<br /><font color='red'>New version:</font> <b>%1</b></p> - <p>有新版本Sandboxie-Plus可用.<br /><font color='red'>New version:</font> <b>%1</b></p> - - - Stop Service - 停止服务 - - - Create New Box - 创建新沙盒 - - - Failed to copy RegHive - 复制RegHive失败 - - - Failed to terminate all processes - 终止所有进程失败 - - - Advanced View - 高级视图 - - - Failed to delete sandbox %1: %2 - 删除沙盒 %1: %2 失败 - - - <p>Do you want to go to the <a href="%1">download page</a>?</p> - <p>确定要打开 <a href="%1">下载页面</a>?</p> - - - Maintenance operation Successful - 维护操作成功 - - - PID %1: - 进程ID %1: - - - Error Status: %1 - 错误代码: %1 - - - Terminate All Processes - 终止所有进程 - - - Please enter the configuration password. - 请输入配置密码. - - - Do you also want to reset hidden message boxes (yes), or only all log messages (no)? - 确定连隐藏信息窗口一起重置 (是) 或仅用于所有日志信息 (否)? - - - You are not authorized to update configuration in section '%1' - 您无权在此处更新配置 '%1' - - - Failed to connect to the driver - 连接驱动失败 - - - Failed to communicate with Sandboxie Service: %1 - 无法联系Sandboxie服务: %1 - - - Failed to execute: %1 - 执行失败: %1 - - - This Snapshot operation can not be performed while processes are still running in the box. - 因进程正在沙盒中运行,此快照操作无法完成. - - - server not reachable - 服务器无法访问 - - - Error merging snapshot directories '%1' with '%2', the snapshot has not been fully merged. - 合并快照目录 '%1' 和 '%2' 错误,快照没有全部合并. - - - Edit ini file - 编辑ini文件 - - - Checking for updates... - 检查更新... - - - No sandboxes found; creating: %1 - 没找到沙盒;创建: %1 - - - Cleanup Resource Log - 清理资源日志 - - - Cleanup Message Log - 清理消息日志 - - - About the Qt Framework - 关于Qt框架 - - - Keep terminated - 保持终止 - - - A sandbox of the name %1 already exists - 沙盒名称 %1 已存在 - - - Failed to set configuration setting %1 in section %2: %3 - 配置设置 %1 失败于 %2: %3 - - - Copy Cell - 复制单元格 - - - Copy Row - 复制行 - - - Copy Panel - 复制表格 - - - Failed to stop all Sandboxie components - 停止Sandboxie所有组件失败 - - - Failed to start required Sandboxie components - 启动所需Sandboxie组件失败 - - - Sandboxie-Plus was started in portable mode, do you want to put the SandBox folder into its parent directory? - Sandboxie-Plus于便携模式运行,您想将沙盒目录放到它的上级目录吗? - - - The file %1 already exists, do you want to overwrite it? - 文件 %1 已存在,您确定要覆盖它吗? - - - Do this for all files! - 所有文件执行此操作! - - - To use API logging you must first set up the LogApiDll from https://github.com/sandboxie-plus/LogApiDll with one or more sandboxes. -Please download the latest release and set it up with the Sandboxie.ini as instructed in the README.md of the project. - 要使用API记录日志首先必须从 https://github.com/sandboxie-plus/LogApiDll 下载LogApiDll,并用沙盒来建立. -请下载最新发布版,并用sandboxie.ini安装,详情请参考README.md里此项的说明. - - - No new updates found, your Sandboxie-Plus is up-to-date. - 无可用更新,您的Sandboxie-Plus是最新的 - - - <p>Sandboxie-Plus is an open source continuation of Sandboxie.</p><p></p><p>Visit <a href="https://sandboxie-plus.com">sandboxie-plus.com</a> for more information.</p><p></p><p></p><p></p><p>Icons from <a href="https://icons8.com">icons8.com</a></p><p></p> - <p>Sandboxie-Plus是著名开源程序Sandboxie的延续.</p><p></p><p>访问 <a href="https://sandboxie-plus.com">sandboxie-plus.com</a> 来获取更多信息.</p><p></p><p></p><p></p><p>图标来自 <a href="https://icons8.com">icons8.com</a></p><p></p> - - - Always on Top - 保持窗口最前 - - - Sellect box: - 选择沙盒 - - - Some compatybility templates (%1) are missing, probably deleted, do you want to remove them from all boxes? - 一些兼容性模板 (%1) 丢失, 可能被删除, 您确定在所有沙盒中删除它们? - - - Cleaned up removed templates... - 清理已删除的模板... - - - Can not create snapshot of an empty sandbox - 无法为空沙盒创建快照 - - - A sandbox with that name already exists - 已存在同名沙盒 - - - Reset Columns - - - - Window Finder - - - - Show Hidden Boxes - - - - Select box: - - - - Some compatibility templates (%1) are missing, probably deleted, do you want to remove them from all boxes? - - - - Do you want to terminate all processes in all sandboxes? - - - - Terminate all without asking - - - - The selected window is running as part of program %1 in sandbox %2 - - - - The selected window is not running as part of any sandboxed program. - - - - Drag the Finder Tool over a window to select it, then release the mouse to check if the window is sandboxed. - - - - Sandboxie-Plus - Window Finder - - - - - CSbieModel - - Name - 名称 - - - Box Groupe - 沙盒组 - - - Status - 状态 - - - Path / Command Line - 路径 / 命令行 - - - Start Time - 开始时间 - - - Process ID - 进程ID - - - Title - - - - - CSbieProcess - - Terminated - 终止 - - - Running - 运行 - - - - CSbieView - - Run - 运行 - - - Create Shortcut to sandbox %1 - 为沙盒 %1 创建快捷方式 - - - Options: - - 选项: - - - - Drop Admin Rights - 撤销管理员权限 - - - Run eMail Client - 运行邮件客户端 - - - Remove Group - 删除组 - - - Sandbox Options - 沙盒选项 - - - Sandbox Presets - 沙盒预置 - - - Do you want to %1 the selected process(es) - 确定要 %1 所选进程 - - - Move to Group - 移动到组 - - - Remove Sandbox - 删除沙盒 - - - Rename Sandbox - 重命名沙盒 - - - Run from Start Menu - 在开始菜单运行 - - - Preset - 预置 - - - Please enter a new group name - 请输入新的组名 - - - Enable API Call logging - 启用API调用日志 - - - [None] - [无] - - - Please enter a new name for the Sandbox. - 请为沙盒输入新名称 - - - Add Group - 添加组 - - - Delete Content - 删除内容 - - - Create Shortcut - 创建快捷方式 - - - Do you really want to remove the selected sandbox(es)? - 确定要删除所选沙盒吗 - - - Run Program - 运行程序 - - - IPC root: %1 - - IPC根目录: %1 - - - - Block and Terminate - 阻止并终止 - - - Registry root: %1 - - 注册表根目录: %1 - - - - File root: %1 - - 文件根目录: %1 - - - - Terminate - 终止 - - - Set Leader Process - 设置先导进程 - - - Terminate All Programs - 终止所有程序 - - - Do you really want to remove the selected group(s)? - 确定要删除所选组吗? - - - Run Web Browser - 运行网页浏览器 - - - Force into this sandbox - 强制入此沙盒 - - - Allow Network Shares - 允许网络共享 - - - Run Cmd.exe - 运行Cmd.exe - - - Snapshots Manager - 快照管理 - - - Run Explorer - 运行资源管理器 - - - Block Internet Access - 禁止网络访问 - - - Set Linger Process - 设置驻留进程 - - - Create New Box - 创建新沙盒 - - - Pin to Run Menu - 固定到运行菜单 - - - Recover Files - 恢复文件 - - - This box does not have Internet restrictions in place, do you want to enable them? - 此沙盒无互联网限制,确定要启用它们吗? - - - Explore Content - 浏览内容 - - - Allow internet access - 允许网络访问 - - - Don't show this message again. - 不再显示此消息 - - - This Sandbox is already empty. - 此沙盒已空. - - - Do you want to delete the content of the selected sandbox? - 您确定要删除所选沙盒的内容? - - - Do you really want to delete the content of multiple sandboxes? - 您确定要删除多个沙盒的内容? - - - Do you want to terminate all processes in the selected sandbox(es)? - - - - This sandbox is disabled, do you want to enable it? - - - - - CSettingsWindow - - Close - 关闭 - - - Please enter the new configuration password. - 请输入新配置密码. - - - Close to Tray - 关闭到托盘 - - - Select Directory - 选择目录 - - - Please enter a program file name - 请输入程序文件名 - - - Folder - 文件夹 - - - Prompt before Close - 关闭前提示 - - - Process - 进程 - - - Sandboxie Plus - Settings - Sandboxie Plus - 设置 - - - Please re-enter the new configuration password. - 请再次输入新配置密码. - - - Passwords did not match, please retry. - 密码不正确,请重新输入. - - - - CSnapshotsWindow - - Do you really want to delete the selected snapshot? - 确定要删除所选快照? - - - New Snapshot - 新快照 - - - Snapshot - 快照 - - - Do you really want to switch the active snapshot? Doing so will delete the current state! - 确定要切换正在使用的快照? 这样做会删除当前状态! - - - %1 - Snapshots - %1 - 快照 - - - Please enter a name for the new Snapshot. - 请输入新快照名称. - - - - NewBoxWindow - - Copy options from an existing box: - 从已有沙盒复制选项: - - - Initial sandbox configuration: - 初始沙盒配置: - - - Select restriction/isolation template: - 选择限制/隔离模板: - - - SandboxiePlus new box - SandboxiePlus新沙盒 - - - Enter a name for the new box: - 输入新沙盒名称: - - - Sandbox Name: - - - - - OptionsWindow - - Name - 名称 - - - Path - 路径 - - - Save - 保存 - - - Type - 类型 - - - Allow only selected programs to start in this sandbox. * - 仅允许被选择的程序在此沙盒中启动. * - - - Force Folder - 强制运行文件夹 - - - Add IPC Path - 添加IPC路径 - - - Sandbox Indicator in title: - 在标题显示沙盒标记: - - - Debug - 调试 - - - Users - 用户 - - - <- for this one the above does not apply - <- 因此原因以上不适用 - - - Block network files and folders, unless specifically opened. - 禁用网络文件和文件夹,除非专门打开. - - - Command Line - 命令行 - - - Don't alter window class names created by sandboxed programs - 不要改变由沙盒程序创建的窗口类名 - - - Prevent change to network and firewall parameters - 阻止更改网络和防火墙参数 - - - Internet Restrictions - 联网限制 - - - Configure which processes can access what resources. Double click on an entry to edit it. -'Direct' File and Key access only applies to program binaries located outside the sandbox. -Note that all Close...=!<program>,... exclusions have the same limitations. -For files access you can use 'Direct All' instead to make it apply to all programs. - 配置进程所访问的资源. 双击进入编辑. -'管理' 文件和键值仅适用于沙盒外的程序二进制文件. -注意所有都将关闭...=!<program>,... 例外也有相同限制. -文件访问可使用 '管理全部' 使其适用于所有程序. - - - Log Debug Output to the Trace Log - 日志调试输出到追踪日志 - - - Forced Programs - 强制运行程序 - - - Add Wnd Class - 添加窗口类 - - - Access Tracing - 访问追踪 - - - File Options - 文件选项 - - - General Options - 通用选项 - - - Open Windows Credentials Store - 打开系统证书库 - - - kilobytes - kb - - - Lingering programs will be automatically terminated if they are still running after all other processes have been terminated. - -If leader processes are defined, all others are treated as lingering processes. - 如果其他所有程序已经终止后,驻留程序仍在运行,将自动终止. - -如果引导进程已确定, 其他将被当成驻留进程. - - - Allow all programs to start in this sandbox. - 允许所有程序在此沙盒中启动. - - - Enable Immediate Recovery prompt to be able to recover files as soon as thay are created. - 启用快速恢复提示以便创建文件时能尽快恢复. - - - General restrictions - 通用限制 - - - Move Up - 上移 - - - Access - 访问 - - - These options are intended for debugging compatibility issues, please do not use them in production use. - 这些选项是计划调试设备而设计的,在日常使用时请不要使用. - - - Text Filter - 文本过滤 - - - Cancel - 取消 - - - Restrict Resource Access monitor to administrators only - 限制资源访问监视器仅限管理员 - - - Protect the sandbox integrity itself - 沙盒完整性保护 - - - Add Folder - 添加文件夹 - - - Prompt user whether to allow an exemption from the blockade. - 提示用户是否允许例外免于封锁. - - - IPC Trace - IPC追踪 - - - Limit access to the emulated service control manager to privileged processes - 限制访问模拟服务控制管理器来提权进程 - - - Remove - 删除 - - - Add File/Folder - 添加文件/文件夹 - - - Block internet access for all programs except those added to the list. - 禁止所有程序访问网络,这些添加到清单里的除外 - - - Issue message 1307 when a program is denied internet access - 错误代码1307,程序被拒绝网络访问 - - - Compatibility - 兼容性 - - - Stop Behaviour - 停止行为 - - - Note: Programs installed to this sandbox won't be able to access the internet at all. - 注意: 安装在此沙盒里程序将完全无法访问网络. - - - Box Options - 沙盒选项 - - - Don't allow sandboxed processes to see processes running in other boxes - 不允许沙盒化的进程查看其他沙盒里进程的运行 - - - Add Group - 添加组 - - - Sandboxed window border: - 沙盒化窗口边框: - - - Prevent selected programs from starting in this sandbox. - 阻止所选程序在此沙盒中启动. - - - Miscellaneous - 其他 - - - Issue message 2102 when a file is too large - 问题代码2102,文件太大 - - - File Recovery - 文件恢复 - - - Box Delete options - 沙盒删除选项 - - - Pipe Trace - Pipe追踪 - - - File Trace - 文件追踪 - - - Program - 程序 - - - Add Process - 添加进程 - - - Add Program - 添加程序 - - - Filter Categories - 筛选类别 - - - Copy file size limit: - 复制文件大小限制: - - - Open System Protected Storage - 开放系统保护存储 - - - Protect the system from sandboxed processes - 保护系统来自沙盒化的进程 - - - Add Leader Program - 添加引导程序 - - - SandboxiePlus Options - SandboxiePlus选项 - - - Category - 类别 - - - Drop rights from Administrators and Power Users groups - 撤销管理员和超级用户组的权限 - - - Add Reg Key - 添加注册表键值 - - - Sandbox protection - 沙盒保护 - - - You can group programs together and give them a group name. Program groups can be used with some of the settings instead of program names. - 您可将程序分组并且给它们组名.程序组可以代替程序名被用于一些设置. - - - Protect sandboxed SYSTEM processes from unprivileged unsandboxed processes - 保护沙盒化系统进程来自未授权的未沙盒化的进程 - - - COM Class Trace - COM组件追踪 - - - Add Command - 添加命令 - - - Hide Processes - 隐藏进程 - - - When the Quick Recovery function is invoked, the following folders will be checked for sandboxed content. - 当快速恢复功能被调用,下列文件夹将被检查沙盒化内容. - - - px Width - 宽度 - - - Add User - 添加用户 - - - Programs entered here, or programs started from entered locations, will be put in this sandbox automatically, unless thay are explicitly started in another sandbox. - 此处输入的程序,或指定位置启动的程序,将自动入此沙盒,除非它们明确在其他沙盒启动. - - - Force Program - 强制运行程序 - - - WARNING, these options can disable core security guarantees and break sandbox security!!! - 警告,这些选项可以使核心安全保障失效并且破坏沙盒安全!!! - - - Edit ini - 编辑ini - - - Show Templates - 显示模板 - - - Ignore Folder - 忽略文件夹 - - - GUI Trace - GUI追踪 - - - Key Trace - 键值追踪 - - - Tracing - 追踪 - - - Appearance - 外观 - - - Add sandboxed processes to job objects (recommended) - 添加沙盒化进程到作业对象(建议) - - - Remove Program - 删除程序 - - - You can exclude folders and file types (or file extensions) from Immediate Recovery. - 您可从快速恢复中排除文件夹和文件类型 (或文件扩展名) . - - - Run Menu - 运行菜单 - - - App Templates - 应用程序模板 - - - Remove User - 删除用户 - - - Ignore Extension - 忽略扩展名 - - - Move Down - 下移 - - - Protect this sandbox from deletion or emptying - 保护此沙盒删除或清空 - - - Add user accounts and user groups to the list below to limit use of the sandbox to only those accounts. If the list is empty, the sandbox can be used by all user accounts. - -Note: Forced Programs and Force Folders settings for a sandbox do not apply to user accounts which cannot use the sandbox. - 添加用户账户和用户组到下面清单中来仅限这些账户使用沙盒. 如果清单内容为空,所有账户均可使用沙盒. - -注意: 沙盒的强制运行程序和强制运行文件夹设置不接受不能运行沙盘的账户. - - - * Note: Programs installed to this sandbox won't be able to start at all. - * 注意: 安装在此沙盒里的程序将完全无法启动. - - - This list contains a large amount of sandbox compatibility enhancing templates - 此清单包含大量沙盒兼容性增强模板 - - - Add Lingering Program - 添加驻留程序 - - - Program Groups - 程序组 - - - Issue message 1308 when a program fails to start - 错误代码1308,程序启动失败 - - - Resource Access - 资源访问 - - - Advanced Options - 高级选项 - - - Hide host processes from processes running in the sandbox. - 隐藏沙盒中运行进程的主进程. - - - File Migration - 文件迁移 - - - Auto delete content when last sandboxed process terminates - 上一次沙盒化的进程终止后自动删除内容 - - - Add COM Object - 添加COM对象 - - - You can configure custom entries for the sandbox run menu. - 您可为沙盒运行菜单配置自定义条目. - - - Start Restrictions - 启动限制 - - - Force usage of custom dummy Manifest files (legacy behaviour) - 强制使用自定义虚拟Manifest文件(遗留行为) - - - Edit ini Section - 编辑ini部分 - - - Block access to the printer spooler - 阻止访问打印服务 - - - Allow the print spooler to print to files outside the sandbox - 允许打印服务在沙盒外打印文件 - - - Printing - 打印 - - - Remove spooler restriction, printers can be installed outside the sandbox - 移除打印限制,打印机可以在沙盒外安装 - - - Add program - 添加程序 - - - Auto Start - 自动启动 - - - Here you can specify programs and/or services that are to be started automatically in the sandbox when it is activated - 这里您可以详列将在沙盒中自动启动的程序或服务,当它被激活时 - - - Add service - 添加服务 - - - Do not start sandboxed services using a system token (recommended) - 不启动使用系统令牌的沙盒化服务 (建议) - - - Allow access to Smart Cards - 允许访问智能卡 - - - Lift security restrictions - 提升安全限制 - - - Sandbox isolation - 沙盒隔离 - - - Auto Exec - 自动运行 - - - Here you can specify a list of commands that are executed every time the sandbox is initially populated. - 这里您可以详列每次沙盒启动被执行的命令清单. - - - Log all access events as seen by the driver to the resource access log. - -This options set the event mask to "*" - All access events -You can customize the logging using the ini by specifying -"A" - Allowed accesses -"D" - Denied accesses -"I" - Ignore access requests -instead of "*". - 将驱动程序看到的所有访问事件记录到资源访问日志中. - -这些选项设置事件标记到 "*" - 所有访问事件 -您可以通过ini来详细定制记录 -"A" - 允许访问 -"D" - 拒绝访问 -"I" - 忽略拒绝请求 -代替 "*". - - - - PopUpWindow - - SandboxiePlus Notifications - SandboxiePlus通知 - - - - QObject - - Drive %1 - 磁盘 %1 - - - - QPlatformTheme - - OK - 确定 - - - Apply - 应用 - - - Cancel - 取消 - - - &Yes - &是 - - - &No - &否 - - - - RecoveryWindow - - Close - 关闭 - - - SandboxiePlus Settings - SandboxiePlus设置 - - - Add Folder - 添加文件夹 - - - Recover to - 恢复到 - - - Recover - 恢复 - - - Refresh - 刷新 - - - Delete all - 删除全部 - - - Show All Files - 显示所有文件 - - - TextLabel - 文本标签 - - - - SettingsWindow - - Name - 名称 - - - Path - 路径 - - - Change Password - 更改密码 - - - Clear password when main window becomes hidden - 主窗口隐藏时清除密码 - - - SandboxiePlus Settings - SandboxiePlus设置 - - - Password must be entered in order to make changes - 必须输入密码以便进行更改 - - - Check periodically for updates of Sandboxie-Plus - 定期检查Sandboxie-Plus的更新 - - - General Options - 通用选项 - - - Program Restrictions - 程序限制 - - - Restart required (!) - 需要重启 (!) - - - Tray options - 磁盘选项 - - - Use Dark Theme - 使用暗主题 - - - Enable - 启用 - - - Add Folder - 添加文件夹 - - - Only Administrator user accounts can make changes - 仅限管理员账户更改 - - - Config protection - 配置保护 - - - Sandbox <a href="sbie://docs/keyrootpath">registry root</a>: - 沙盒 <a href="sbie://docs/keyrootpath">注册表根目录</a>: - - - Add Program - 添加程序 - - - Sandboxie has detected the following software applications in your system. Click OK to apply configuration settings, which will improve compatibility with these applications. These configuration settings will have effect in all existing sandboxes and in any new sandboxes. - 沙盒在您系统中检测到下列软件程序. 点击 确定 接受配置设置,将增强这些软件程序的兼容性.这些配置设置将影响所有已存在的沙盒和任何新沙盒. - - - Watch Sandboxie.ini for changes - 查看Sandboxie.ini变更 - - - Show Sys-Tray - 系统托盘显示 - - - Open urls from this ui sandboxed - 在此用户界面打开的链接均沙盒化 - - - In the future, don't check software compatibility - 以后,不再检查软件兼容性 - - - Disable - 禁用 - - - When any of the following programs is launched outside any sandbox, Sandboxie will issue message SBIE1301. - 当下列程序在任意沙盒之外启动时, Sandboxie将出现错误代码SBIE1301. - - - Remove Program - 删除程序 - - - Software Compatibility - 软件兼容性 - - - On main window close: - 主窗体关闭时: - - - Add 'Run Sandboxed' to the explorer context menu - 在资源管理器添加'在沙盒中运行' - - - Issue message 1308 when a program fails to start - 错误代码1308,程序启动失败 - - - Sandbox default - 沙盒预置 - - - Separate user folders - 独立用户文件夹 - - - Advanced Options - 高级选项 - - - Prevent the listed programs from starting on this system - 阻止列表程序在此系统中启动 - - - Only Administrator user accounts can use Disable Forced Programs command - 仅管理员账户可使用禁用强制运行程序命令 - - - Sandbox <a href="sbie://docs/ipcrootpath">ipc root</a>: - 沙盒 <a href="sbie://docs/ipcrootpath">ipc根目录</a>: - - - Show Notifications for relevant log Messages - 显示相关日志信息的通知 - - - Sandbox <a href="sbie://docs/filerootpath">file system root</a>: - 沙盒 <a href="sbie://docs/filerootpath">文件系统根目录</a>: - - - Portable root folder - 便携化根目录 - - - Start UI with Windows - 开机启动UI - - - Start UI when a sandboxed process is started - 当沙盒进程启动时启动UI - - - Show first recovery window when emptying sandboxes - 当清空沙盒时显示第一个恢复窗口 - - - ... - ... - - - Other settings - 其他设置 - - - - SnapshotsWindow - - Name: - 名称: - - - Remove Snapshot - 删除快照 - - - SandboxiePlus Settings - SandboxiePlus设置 - - - Description: - 说明: - - - Go to Snapshot - 进入快照 - - - Take Snapshot - 抓取快照 - - - Selected Snapshot Details - 所选快照详情 - - - Snapshot Actions - 快照行为 - - - +Full path: %4 + 移动大文件 %1 到沙盒 %2, %3 剩余. +完整路径: %4 + + + + CRecoveryWindow + + File Name + 文件名称 + + + File Size + 文件大小 + + + Full Path + 详细路径 + + + Select Directory + 选择目录 + + + %1 - File Recovery + %1 - 文件恢复 + + + One or more selected files are located on a network share, and must be recovered to a local drive, please select a folder to recover all selected files to. + 一个或多个被选择的文件位于网络共享, 并必须恢复到本地磁盘, 请选择要将所选文件恢复到的文件夹. + + + There are %1 files and %2 folders in the sandbox, occupying %3 bytes of disk space. + 有 %1 文件和 %2 文件夹在沙盒中, 占用磁盘 %3 字节. + + + + CResMonModel + + Type + 类型 + + + Value + + + + Status + 状态 + + + Time Stamp + 时间戳 + + + Process + 进程 + + + Unknown + 未知 + + + + CSandBoxPlus + + No Admin + 无管理员 + + + No INet + 无INet + + + Normal + 标准 + + + API Log + API日志 + + + Net Share + 网络共享 + + + NOT SECURE (Debug Config) + 不安全(调试配置) + + + Enhanced Isolation + 增强隔离 + + + Reduced Isolation + 减弱隔离 + + + Disabled + 禁用 + + + + CSandMan + + Exit + 退出 + + + <p>New Sandboxie-Plus has been downloaded to the following location:</p><p><a href="%2">%1</a></p><p>Do you want to begin the installation? If any programs are running sandboxed, they will be terminated.</p> + <p>新版本Sandboxie-Plus 将被下载到:</p><p><a href="%2">%1</a></p><p>您想要开始安装吗? 正在沙盒运行的其他程序将会被终止.</p> + + + Sandboxie-Plus was started in portable mode and it needs to create necessary services. This will prompt for administrative privileges. + 便携模式启动Sandboxie-Plus,需要创建必需的服务.将会提示管理员权限. + + + Cleanup Processes + 清理所有操作 + + + Maintenance operation %1 + 运行维护 %1 + + + &Help + &帮助 + + + &View + &视图 + + + Error deleting sandbox folder: %1 + 删除沙盒文件夹错误: %1 + + + About Sandboxie-Plus + 关于Sandboxie-Plus + + + Driver version: %1 + 驱动版本: %1 + + + Sandboxie-Plus v%1 + Sandboxie-Plus v%1 + + + Start Driver + 启动驱动 + + + Install Driver + 安装驱动 + + + Uninstall Driver + 卸载驱动 + + + Check for Updates + 检查更新 + + + Visit Support Forum + 支持论坛 + + + Failed to copy configuration from sandbox %1: %2 + 复制沙盒配置 %1: %2 失败 + + + Do you want to check if there is a new version of Sandboxie-Plus? + 当有Sandboxie-Plus新版本时您想要检查吗? + + + Cleanup Api Call Log + 清理Api调用日志 + + + Simple View + 简易视图 + + + %1 (%2): + %1 (%2): + + + Login Failed: %1 + 登录失败: %1 + + + Clean Up + 清理 + + + Don't show this message again. + 不再显示此消息 + + + Uninstall Service + 卸载服务 + + + Start Service + 启动服务 + + + Install Service + 安装服务 + + + Failed to remove old snapshot directory '%1' + 删除旧的快照目录 '%1' 失败 + + + The changes will be applied automatically as soon as the editor is closed. + 变更将在编辑器关闭后自动提交. + + + Can't remove a snapshot that is shared by multiple later snapshots + 无法删除由多个后续快照共享的快照 + + + Do you want to close Sandboxie Manager? + 您确定要关闭Sandboxie管理器? + + + Support Sandboxie-Plus with a Donation + 捐赠支持Sandboxie-Plus + + + Unknown Error Status: %1 + 未知错误代码: %1 + + + Failed to create directory for new snapshot + 创建新的快照目录失败 + + + Sandboxie-Plus was running in portable mode, now it has to clean up the created services. This will prompt for administrative privileges. + Sandboxie-Plus运行于便携模式,现在将清理所创建的服务.将会提示管理员权限 + + + - Portable + - 便携 + + + Failed to download update from: %1 + 在: %1 下载更新失败 + + + Api Call Log + Api调用日志 + + + The sandbox name can not be longer than 32 characters. + 沙盒名称不能超过32个字符. + + + Stop Driver + 停止驱动 + + + Don't show this announcement in the future. + 此后不再显示此通告. + + + Sbie Messages + Sbie信息 + + + Failed to recover some files: + + 恢复某些文件失败: + + + + Failed to move directory '%1' to '%2' + 移动目录 '%1' 到 '%2' 失败 + + + Recovering file %1 to %2 + 恢复文件 %1 到 %2 + + + Resource Logging + 资源日志 + + + Online Documentation + 在线文档 + + + Ignore this update, notify me about the next one. + 忽略此升级,下一个再提示我. + + + Please enter the duration for disabling forced programs. + 请输入禁用强制运行程序的时间. + + + Sbie Directory: %1 + Sbie目录: %1 + + + - NOT connected + - 未连接 + + + <p>Do you want to download the latest version?</p> + <p>确定要下载最新版?</p> + + + Sandboxie-Plus - Error + Sandboxie-Plus - 错误 + + + The changes will be applied automatically whenever the file gets saved. + 每当文件保存后更改将自动应用. + + + Time|Message + 时间|信息 + + + &Options + &选项 + + + Show/Hide + 显示/隐藏 + + + Resource Monitor + 资源监控 + + + Do you want to open %1 in a sandboxed (yes) or unsandboxed (no) Web browser? + 确定要打开 %1 在沙盒化 (是) 未沙盒化 (否) 的浏览器中? + + + Reset all hidden messages + 重置所有隐藏消息 + + + A sandbox must be emptied before it can be deleted. + 删除沙盒之前必须清空. + + + The sandbox name can contain only letters, digits and underscores which are displayed as spaces. + 沙盒名称不能为空格,只能包含字母,数字和下划线. + + + A sandbox must be emptied before it can be renamed. + 重命名沙盒之前必须清空. + + + API Call Logging + API调用记录 + + + Loaded Config: %1 + 加载的配置: %1 + + + Reload ini file + 重载ini文件 + + + Remember choice for later. + 以后记住选择. + + + &Maintenance + &维护 + + + The sandbox name can not be a device name. + 沙盒名称不能为设备名称. + + + Operation failed for %1 item(s). + %1 项操作失败. + + + Global Settings + 全局设置 + + + Downloading new version... + 下载新版本... + + + &Sandbox + &沙盒 + + + <h3>About Sandboxie-Plus</h3><p>Version %1</p><p>Copyright (c) 2020-2021 by DavidXanatos</p> + <h3>关于Sandboxie-Plus</h3><p>Version %1</p><p>Copyright (c) 2020-2021 by DavidXanatos</p> + + + Cleanup + 清理 + + + Failed to check for updates, error: %1 + 检查更新失败,错误: %1 + + + Disconnect + 断开 + + + Connect + 连接 + + + Only Administrators can change the config. + 仅限管理员可更改配置. + + + Disable Forced Programs + 禁用强制运行程序 + + + Snapshot not found + 未发现快照 + + + Failed to remove old RegHive + 删除旧的注册表项失败 + + + Stop All + 停止所有 + + + Can't find Sandboxie installation path. + 未找到Sandboxie安装路径. + + + Delete protection is enabled for the sandbox + 沙盒的删除保护被启用 + + + &Advanced + &高级 + + + An incompatible Sandboxie %1 was found. Compatible versions: %2 + 不兼容的Sandboxie %1 被发现.兼容版本为: %2 + + + Administrator rights are required for this operation. + 此操作需要管理员权限. + + + Executing maintenance operation, please wait... + 执行操作维护,请稍等... + + + <p>There is a new version of Sandboxie-Plus available.<br /><font color='red'>New version:</font> <b>%1</b></p> + <p>有新版本Sandboxie-Plus可用.<br /><font color='red'>New version:</font> <b>%1</b></p> + + + Stop Service + 停止服务 + + + Create New Box + 创建新沙盒 + + + Failed to copy RegHive + 复制RegHive失败 + + + Failed to terminate all processes + 终止所有进程失败 + + + Advanced View + 高级视图 + + + Failed to delete sandbox %1: %2 + 删除沙盒 %1: %2 失败 + + + <p>Do you want to go to the <a href="%1">download page</a>?</p> + <p>确定要打开 <a href="%1">下载页面</a>?</p> + + + Maintenance operation Successful + 维护操作成功 + + + PID %1: + 进程ID %1: + + + Error Status: %1 + 错误代码: %1 + + + Terminate All Processes + 终止所有进程 + + + Please enter the configuration password. + 请输入配置密码. + + + Do you also want to reset hidden message boxes (yes), or only all log messages (no)? + 确定连隐藏信息窗口一起重置 (是) 或仅用于所有日志信息 (否)? + + + You are not authorized to update configuration in section '%1' + 您无权在此处更新配置 '%1' + + + Failed to connect to the driver + 连接驱动失败 + + + Failed to communicate with Sandboxie Service: %1 + 无法联系Sandboxie服务: %1 + + + Failed to execute: %1 + 执行失败: %1 + + + This Snapshot operation can not be performed while processes are still running in the box. + 因进程正在沙盒中运行,此快照操作无法完成. + + + server not reachable + 服务器无法访问 + + + Error merging snapshot directories '%1' with '%2', the snapshot has not been fully merged. + 合并快照目录 '%1' 和 '%2' 错误,快照没有全部合并. + + + Edit ini file + 编辑ini文件 + + + Checking for updates... + 检查更新... + + + No sandboxes found; creating: %1 + 没找到沙盒;创建: %1 + + + Cleanup Resource Log + 清理资源日志 + + + Cleanup Message Log + 清理消息日志 + + + About the Qt Framework + 关于Qt框架 + + + Keep terminated + 保持终止 + + + A sandbox of the name %1 already exists + 沙盒名称 %1 已存在 + + + Failed to set configuration setting %1 in section %2: %3 + 配置设置 %1 失败于 %2: %3 + + + Copy Cell + 复制单元格 + + + Copy Row + 复制行 + + + Copy Panel + 复制表格 + + + Failed to stop all Sandboxie components + 停止Sandboxie所有组件失败 + + + Failed to start required Sandboxie components + 启动所需Sandboxie组件失败 + + + Sandboxie-Plus was started in portable mode, do you want to put the SandBox folder into its parent directory? + Sandboxie-Plus于便携模式运行,您想将沙盒目录放到它的上级目录吗? + + + The file %1 already exists, do you want to overwrite it? + 文件 %1 已存在,您确定要覆盖它吗? + + + Do this for all files! + 所有文件执行此操作! + + + To use API logging you must first set up the LogApiDll from https://github.com/sandboxie-plus/LogApiDll with one or more sandboxes. +Please download the latest release and set it up with the Sandboxie.ini as instructed in the README.md of the project. + 要使用API记录日志首先必须从 https://github.com/sandboxie-plus/LogApiDll 下载LogApiDll,并用沙盒来建立. +请下载最新发布版,并用sandboxie.ini安装,详情请参考README.md里此项的说明. + + + No new updates found, your Sandboxie-Plus is up-to-date. + 无可用更新,您的Sandboxie-Plus是最新的 + + + <p>Sandboxie-Plus is an open source continuation of Sandboxie.</p><p></p><p>Visit <a href="https://sandboxie-plus.com">sandboxie-plus.com</a> for more information.</p><p></p><p></p><p></p><p>Icons from <a href="https://icons8.com">icons8.com</a></p><p></p> + <p>Sandboxie-Plus是著名开源程序Sandboxie的延续.</p><p></p><p>访问 <a href="https://sandboxie-plus.com">sandboxie-plus.com</a> 来获取更多信息.</p><p></p><p></p><p></p><p>图标来自 <a href="https://icons8.com">icons8.com</a></p><p></p> + + + Always on Top + 保持窗口最前 + + + Cleaned up removed templates... + 清理已删除的模板... + + + Can not create snapshot of an empty sandbox + 无法为空沙盒创建快照 + + + A sandbox with that name already exists + 已存在同名沙盒 + + + Reset Columns + 重置菜单 + + + Window Finder + 窗口查找器 + + + Show Hidden Boxes + 显示隐藏沙盒 + + + Select box: + 选择沙盒 + + + Some compatibility templates (%1) are missing, probably deleted, do you want to remove them from all boxes? + 一些兼容性模板 (%1) 丢失, 可能被删除, 您确定在所有沙盒中删除它们? + + + Do you want to terminate all processes in all sandboxes? + 您确定要终止所有沙盒中的所有进程吗? + + + Terminate all without asking + 不询问终止所有 + + + The selected window is running as part of program %1 in sandbox %2 + 选择的窗口正作为程序 %1 一部分运行在 %2 中 + + + The selected window is not running as part of any sandboxed program. + 选择的窗口没有作为任何沙盒化程序的一部分运行 + + + Drag the Finder Tool over a window to select it, then release the mouse to check if the window is sandboxed. + 拖动查找工具到一个窗口上去选择,然后松开鼠标检查窗口是否沙盒化 + + + Sandboxie-Plus - Window Finder + Sandboxie-Plus - 窗口查找器 + + + + CSbieModel + + Name + 名称 + + + Box Groupe + 沙盒组 + + + Status + 状态 + + + Path / Command Line + 路径 / 命令行 + + + Start Time + 开始时间 + + + Process ID + 进程ID + + + Title + 标题 + + + + CSbieProcess + + Terminated + 终止 + + + Running + 运行 + + + + CSbieView + + Run + 运行 + + + Create Shortcut to sandbox %1 + 为沙盒 %1 创建快捷方式 + + + Options: + + 选项: + + + + Drop Admin Rights + 撤销管理员权限 + + + Run eMail Client + 运行邮件客户端 + + + Remove Group + 删除组 + + + Sandbox Options + 沙盒选项 + + + Sandbox Presets + 沙盒预置 + + + Do you want to %1 the selected process(es) + 确定要 %1 所选进程 + + + Move to Group + 移动到组 + + + Remove Sandbox + 删除沙盒 + + + Rename Sandbox + 重命名沙盒 + + + Run from Start Menu + 在开始菜单运行 + + + Preset + 预置 + + + Please enter a new group name + 请输入新的组名 + + + Enable API Call logging + 启用API调用日志 + + + [None] + [无] + + + Please enter a new name for the Sandbox. + 请为沙盒输入新名称 + + + Add Group + 添加组 + + + Delete Content + 删除内容 + + + Create Shortcut + 创建快捷方式 + + + Do you really want to remove the selected sandbox(es)? + 确定要删除所选沙盒吗 + + + Run Program + 运行程序 + + + IPC root: %1 + + IPC根目录: %1 + + + + Block and Terminate + 阻止并终止 + + + Registry root: %1 + + 注册表根目录: %1 + + + + File root: %1 + + 文件根目录: %1 + + + + Terminate + 终止 + + + Set Leader Process + 设置先导进程 + + + Terminate All Programs + 终止所有程序 + + + Do you really want to remove the selected group(s)? + 确定要删除所选组吗? + + + Run Web Browser + 运行网页浏览器 + + + Force into this sandbox + 强制入此沙盒 + + + Allow Network Shares + 允许网络共享 + + + Run Cmd.exe + 运行Cmd.exe + + + Snapshots Manager + 快照管理 + + + Run Explorer + 运行资源管理器 + + + Block Internet Access + 禁止网络访问 + + + Set Linger Process + 设置驻留进程 + + + Create New Box + 创建新沙盒 + + + Pin to Run Menu + 固定到运行菜单 + + + Recover Files + 恢复文件 + + + This box does not have Internet restrictions in place, do you want to enable them? + 此沙盒无互联网限制,确定要启用它们吗? + + + Explore Content + 浏览内容 + + + Allow internet access + 允许网络访问 + + + Don't show this message again. + 不再显示此消息 + + + This Sandbox is already empty. + 此沙盒已空. + + + Do you want to delete the content of the selected sandbox? + 您确定要删除所选沙盒的内容? + + + Do you really want to delete the content of multiple sandboxes? + 您确定要删除多个沙盒的内容? + + + Do you want to terminate all processes in the selected sandbox(es)? + 您确定终止所选沙盒中的所有进程吗? + + + This sandbox is disabled, do you want to enable it? + 此沙盒被禁用,您确定启用吗? + + + + CSettingsWindow + + Close + 关闭 + + + Please enter the new configuration password. + 请输入新配置密码. + + + Close to Tray + 关闭到托盘 + + + Select Directory + 选择目录 + + + Please enter a program file name + 请输入程序文件名 + + + Folder + 文件夹 + + + Prompt before Close + 关闭前提示 + + + Process + 进程 + + + Sandboxie Plus - Settings + Sandboxie Plus - 设置 + + + Please re-enter the new configuration password. + 请再次输入新配置密码. + + + Passwords did not match, please retry. + 密码不正确,请重新输入. + + + + CSnapshotsWindow + + Do you really want to delete the selected snapshot? + 确定要删除所选快照? + + + New Snapshot + 新快照 + + + Snapshot + 快照 + + + Do you really want to switch the active snapshot? Doing so will delete the current state! + 确定要切换正在使用的快照? 这样做会删除当前状态! + + + %1 - Snapshots + %1 - 快照 + + + Please enter a name for the new Snapshot. + 请输入新快照名称. + + + + NewBoxWindow + + Copy options from an existing box: + 从已有沙盒复制选项: + + + Initial sandbox configuration: + 初始沙盒配置: + + + Select restriction/isolation template: + 选择限制/隔离模板: + + + SandboxiePlus new box + SandboxiePlus新沙盒 + + + Sandbox Name: + 沙盒名称: + + + + OptionsWindow + + Name + 名称 + + + Path + 路径 + + + Save + 保存 + + + Type + 类型 + + + Allow only selected programs to start in this sandbox. * + 仅允许被选择的程序在此沙盒中启动. * + + + Force Folder + 强制运行文件夹 + + + Add IPC Path + 添加IPC路径 + + + Sandbox Indicator in title: + 在标题显示沙盒标记: + + + Debug + 调试 + + + Users + 用户 + + + <- for this one the above does not apply + <- 因此原因以上不适用 + + + Block network files and folders, unless specifically opened. + 禁用网络文件和文件夹,除非专门打开. + + + Command Line + 命令行 + + + Don't alter window class names created by sandboxed programs + 不要改变由沙盒程序创建的窗口类名 + + + Prevent change to network and firewall parameters + 阻止更改网络和防火墙参数 + + + Internet Restrictions + 联网限制 + + + Configure which processes can access what resources. Double click on an entry to edit it. +'Direct' File and Key access only applies to program binaries located outside the sandbox. +Note that all Close...=!<program>,... exclusions have the same limitations. +For files access you can use 'Direct All' instead to make it apply to all programs. + 配置进程所访问的资源. 双击进入编辑. +'管理' 文件和键值仅适用于沙盒外的程序二进制文件. +注意所有都将关闭...=!<program>,... 例外也有相同限制. +文件访问可使用 '管理全部' 使其适用于所有程序. + + + Log Debug Output to the Trace Log + 日志调试输出到追踪日志 + + + Forced Programs + 强制运行程序 + + + Add Wnd Class + 添加窗口类 + + + Access Tracing + 访问追踪 + + + File Options + 文件选项 + + + General Options + 通用选项 + + + Open Windows Credentials Store + 打开系统证书库 + + + kilobytes + kb + + + Lingering programs will be automatically terminated if they are still running after all other processes have been terminated. + +If leader processes are defined, all others are treated as lingering processes. + 如果其他所有程序已经终止后,驻留程序仍在运行,将自动终止. + +如果引导进程已确定, 其他将被当成驻留进程. + + + Allow all programs to start in this sandbox. + 允许所有程序在此沙盒中启动. + + + Enable Immediate Recovery prompt to be able to recover files as soon as thay are created. + 启用快速恢复提示以便创建文件时能尽快恢复. + + + General restrictions + 通用限制 + + + Move Up + 上移 + + + Access + 访问 + + + These options are intended for debugging compatibility issues, please do not use them in production use. + 这些选项是计划调试设备而设计的,在日常使用时请不要使用. + + + Text Filter + 文本过滤 + + + Cancel + 取消 + + + Restrict Resource Access monitor to administrators only + 限制资源访问监视器仅限管理员 + + + Protect the sandbox integrity itself + 沙盒完整性保护 + + + Add Folder + 添加文件夹 + + + Prompt user whether to allow an exemption from the blockade. + 提示用户是否允许例外免于封锁. + + + IPC Trace + IPC追踪 + + + Limit access to the emulated service control manager to privileged processes + 限制访问模拟服务控制管理器来提权进程 + + + Remove + 删除 + + + Add File/Folder + 添加文件/文件夹 + + + Block internet access for all programs except those added to the list. + 禁止所有程序访问网络,这些添加到清单里的除外 + + + Issue message 1307 when a program is denied internet access + 错误代码1307,程序被拒绝网络访问 + + + Compatibility + 兼容性 + + + Stop Behaviour + 停止行为 + + + Note: Programs installed to this sandbox won't be able to access the internet at all. + 注意: 安装在此沙盒里程序将完全无法访问网络. + + + Box Options + 沙盒选项 + + + Don't allow sandboxed processes to see processes running in other boxes + 不允许沙盒化的进程查看其他沙盒里进程的运行 + + + Add Group + 添加组 + + + Sandboxed window border: + 沙盒化窗口边框: + + + Prevent selected programs from starting in this sandbox. + 阻止所选程序在此沙盒中启动. + + + Miscellaneous + 其他 + + + Issue message 2102 when a file is too large + 问题代码2102,文件太大 + + + File Recovery + 文件恢复 + + + Box Delete options + 沙盒删除选项 + + + Pipe Trace + Pipe追踪 + + + File Trace + 文件追踪 + + + Program + 程序 + + + Add Process + 添加进程 + + + Add Program + 添加程序 + + + Filter Categories + 筛选类别 + + + Copy file size limit: + 复制文件大小限制: + + + Open System Protected Storage + 开放系统保护存储 + + + Protect the system from sandboxed processes + 保护系统来自沙盒化的进程 + + + Add Leader Program + 添加引导程序 + + + SandboxiePlus Options + SandboxiePlus选项 + + + Category + 类别 + + + Drop rights from Administrators and Power Users groups + 撤销管理员和超级用户组的权限 + + + Add Reg Key + 添加注册表键值 + + + Sandbox protection + 沙盒保护 + + + You can group programs together and give them a group name. Program groups can be used with some of the settings instead of program names. + 您可将程序分组并且给它们组名.程序组可以代替程序名被用于一些设置. + + + Protect sandboxed SYSTEM processes from unprivileged unsandboxed processes + 保护沙盒化系统进程来自未授权的未沙盒化的进程 + + + COM Class Trace + COM组件追踪 + + + Add Command + 添加命令 + + + Hide Processes + 隐藏进程 + + + When the Quick Recovery function is invoked, the following folders will be checked for sandboxed content. + 当快速恢复功能被调用,下列文件夹将被检查沙盒化内容. + + + px Width + 宽度 + + + Add User + 添加用户 + + + Programs entered here, or programs started from entered locations, will be put in this sandbox automatically, unless thay are explicitly started in another sandbox. + 此处输入的程序,或指定位置启动的程序,将自动入此沙盒,除非它们明确在其他沙盒启动. + + + Force Program + 强制运行程序 + + + WARNING, these options can disable core security guarantees and break sandbox security!!! + 警告,这些选项可以使核心安全保障失效并且破坏沙盒安全!!! + + + Edit ini + 编辑ini + + + Show Templates + 显示模板 + + + Ignore Folder + 忽略文件夹 + + + GUI Trace + GUI追踪 + + + Key Trace + 键值追踪 + + + Tracing + 追踪 + + + Appearance + 外观 + + + Add sandboxed processes to job objects (recommended) + 添加沙盒化进程到作业对象(建议) + + + Remove Program + 删除程序 + + + You can exclude folders and file types (or file extensions) from Immediate Recovery. + 您可从快速恢复中排除文件夹和文件类型 (或文件扩展名) . + + + Run Menu + 运行菜单 + + + App Templates + 应用程序模板 + + + Remove User + 删除用户 + + + Ignore Extension + 忽略扩展名 + + + Move Down + 下移 + + + Protect this sandbox from deletion or emptying + 保护此沙盒删除或清空 + + + Add user accounts and user groups to the list below to limit use of the sandbox to only those accounts. If the list is empty, the sandbox can be used by all user accounts. + +Note: Forced Programs and Force Folders settings for a sandbox do not apply to user accounts which cannot use the sandbox. + 添加用户账户和用户组到下面清单中来仅限这些账户使用沙盒. 如果清单内容为空,所有账户均可使用沙盒. + +注意: 沙盒的强制运行程序和强制运行文件夹设置不接受不能运行沙盘的账户. + + + * Note: Programs installed to this sandbox won't be able to start at all. + * 注意: 安装在此沙盒里的程序将完全无法启动. + + + This list contains a large amount of sandbox compatibility enhancing templates + 此清单包含大量沙盒兼容性增强模板 + + + Add Lingering Program + 添加驻留程序 + + + Program Groups + 程序组 + + + Issue message 1308 when a program fails to start + 错误代码1308,程序启动失败 + + + Resource Access + 资源访问 + + + Advanced Options + 高级选项 + + + Hide host processes from processes running in the sandbox. + 隐藏沙盒中运行进程的主进程. + + + File Migration + 文件迁移 + + + Auto delete content when last sandboxed process terminates + 上一次沙盒化的进程终止后自动删除内容 + + + Add COM Object + 添加COM对象 + + + You can configure custom entries for the sandbox run menu. + 您可为沙盒运行菜单配置自定义条目. + + + Start Restrictions + 启动限制 + + + Force usage of custom dummy Manifest files (legacy behaviour) + 强制使用自定义虚拟Manifest文件(遗留行为) + + + Edit ini Section + 编辑ini部分 + + + Block access to the printer spooler + 阻止访问打印服务 + + + Allow the print spooler to print to files outside the sandbox + 允许打印服务在沙盒外打印文件 + + + Printing + 打印 + + + Remove spooler restriction, printers can be installed outside the sandbox + 移除打印限制,打印机可以在沙盒外安装 + + + Add program + 添加程序 + + + Auto Start + 自动启动 + + + Here you can specify programs and/or services that are to be started automatically in the sandbox when it is activated + 这里您可以详列将在沙盒中自动启动的程序或服务,当它被激活时 + + + Add service + 添加服务 + + + Do not start sandboxed services using a system token (recommended) + 不启动使用系统令牌的沙盒化服务 (建议) + + + Allow access to Smart Cards + 允许访问智能卡 + + + Lift security restrictions + 提升安全限制 + + + Sandbox isolation + 沙盒隔离 + + + Auto Exec + 自动运行 + + + Here you can specify a list of commands that are executed every time the sandbox is initially populated. + 这里您可以详列每次沙盒启动被执行的命令清单. + + + Log all access events as seen by the driver to the resource access log. + +This options set the event mask to "*" - All access events +You can customize the logging using the ini by specifying +"A" - Allowed accesses +"D" - Denied accesses +"I" - Ignore access requests +instead of "*". + 将驱动程序看到的所有访问事件记录到资源访问日志中. + +这些选项设置事件标记到 "*" - 所有访问事件 +您可以通过ini来详细定制记录 +"A" - 允许访问 +"D" - 拒绝访问 +"I" - 忽略拒绝请求 +代替 "*". + + + + PopUpWindow + + SandboxiePlus Notifications + SandboxiePlus通知 + + + + QObject + + Drive %1 + 磁盘 %1 + + + + QPlatformTheme + + OK + 确定 + + + Apply + 应用 + + + Cancel + 取消 + + + &Yes + &是 + + + &No + &否 + + + + RecoveryWindow + + Close + 关闭 + + + SandboxiePlus Settings + SandboxiePlus设置 + + + Add Folder + 添加文件夹 + + + Recover to + 恢复到 + + + Recover + 恢复 + + + Refresh + 刷新 + + + Delete all + 删除全部 + + + Show All Files + 显示所有文件 + + + TextLabel + 文本标签 + + + + SettingsWindow + + Name + 名称 + + + Path + 路径 + + + Change Password + 更改密码 + + + Clear password when main window becomes hidden + 主窗口隐藏时清除密码 + + + SandboxiePlus Settings + SandboxiePlus设置 + + + Password must be entered in order to make changes + 必须输入密码以便进行更改 + + + Check periodically for updates of Sandboxie-Plus + 定期检查Sandboxie-Plus的更新 + + + General Options + 通用选项 + + + Program Restrictions + 程序限制 + + + Restart required (!) + 需要重启 (!) + + + Tray options + 磁盘选项 + + + Use Dark Theme + 使用暗主题 + + + Enable + 启用 + + + Add Folder + 添加文件夹 + + + Only Administrator user accounts can make changes + 仅限管理员账户更改 + + + Config protection + 配置保护 + + + Sandbox <a href="sbie://docs/keyrootpath">registry root</a>: + 沙盒 <a href="sbie://docs/keyrootpath">注册表根目录</a>: + + + Add Program + 添加程序 + + + Sandboxie has detected the following software applications in your system. Click OK to apply configuration settings, which will improve compatibility with these applications. These configuration settings will have effect in all existing sandboxes and in any new sandboxes. + 沙盒在您系统中检测到下列软件程序. 点击 确定 接受配置设置,将增强这些软件程序的兼容性.这些配置设置将影响所有已存在的沙盒和任何新沙盒. + + + Watch Sandboxie.ini for changes + 查看Sandboxie.ini变更 + + + Show Sys-Tray + 系统托盘显示 + + + Open urls from this ui sandboxed + 在此用户界面打开的链接均沙盒化 + + + In the future, don't check software compatibility + 以后,不再检查软件兼容性 + + + Disable + 禁用 + + + When any of the following programs is launched outside any sandbox, Sandboxie will issue message SBIE1301. + 当下列程序在任意沙盒之外启动时, Sandboxie将出现错误代码SBIE1301. + + + Remove Program + 删除程序 + + + Software Compatibility + 软件兼容性 + + + On main window close: + 主窗体关闭时: + + + Add 'Run Sandboxed' to the explorer context menu + 在资源管理器添加'在沙盒中运行' + + + Issue message 1308 when a program fails to start + 错误代码1308,程序启动失败 + + + Sandbox default + 沙盒预置 + + + Separate user folders + 独立用户文件夹 + + + Advanced Options + 高级选项 + + + Prevent the listed programs from starting on this system + 阻止列表程序在此系统中启动 + + + Only Administrator user accounts can use Disable Forced Programs command + 仅管理员账户可使用禁用强制运行程序命令 + + + Sandbox <a href="sbie://docs/ipcrootpath">ipc root</a>: + 沙盒 <a href="sbie://docs/ipcrootpath">ipc根目录</a>: + + + Show Notifications for relevant log Messages + 显示相关日志信息的通知 + + + Sandbox <a href="sbie://docs/filerootpath">file system root</a>: + 沙盒 <a href="sbie://docs/filerootpath">文件系统根目录</a>: + + + Portable root folder + 便携化根目录 + + + Start UI with Windows + 开机启动UI + + + Start UI when a sandboxed process is started + 当沙盒进程启动时启动UI + + + Show first recovery window when emptying sandboxes + 当清空沙盒时显示第一个恢复窗口 + + + ... + ... + + + Other settings + 其他设置 + + + + SnapshotsWindow + + Name: + 名称: + + + Remove Snapshot + 删除快照 + + + SandboxiePlus Settings + SandboxiePlus设置 + + + Description: + 说明: + + + Go to Snapshot + 进入快照 + + + Take Snapshot + 抓取快照 + + + Selected Snapshot Details + 所选快照详情 + + + Snapshot Actions + 快照行为 + + + diff --git a/SandboxiePlus/SandboxiePlus.pro b/SandboxiePlus/SandboxiePlus.pro new file mode 100644 index 00000000..fd7fc721 --- /dev/null +++ b/SandboxiePlus/SandboxiePlus.pro @@ -0,0 +1,14 @@ +# ---------------------------------------------------- +# This file is generated by the Qt Visual Studio Tools. +# ------------------------------------------------------ + +# This is a reminder that you are using a generated .pro file. +# Remove it when you are finished editing this file. +message("You are running qmake on a generated .pro file. This may not work!") + + +TEMPLATE = subdirs +SUBDIRS += SandMan/SandMan.qc.pro \ + QSbieAPI/QSbieAPI.qc.pro \ + MiscHelpers/MiscHelpers.qc.pro \ + QtSingleApp/qtsingleapp/qtsingleapp/qtsingleapp.qc.pro diff --git a/SandboxiePlus/install_jom.cmd b/SandboxiePlus/install_jom.cmd new file mode 100644 index 00000000..d9f0a904 --- /dev/null +++ b/SandboxiePlus/install_jom.cmd @@ -0,0 +1,6 @@ +curl --ssl-no-revoke -L https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/tools_qtcreator/qt.tools.qtcreator/4.14.0-0-202012170949jom.7z -o %~dp0..\..\jom.7z +"C:\Program Files\7-Zip\7z.exe" x -o%~dp0..\..\Qt\ %~dp0..\..\jom.7z + +dir %~dp0..\..\ +dir %~dp0..\..\Qt +dir %~dp0..\..\Qt\Tools diff --git a/SandboxiePlus/qmake_plus.cmd b/SandboxiePlus/qmake_plus.cmd new file mode 100644 index 00000000..2f2b5979 --- /dev/null +++ b/SandboxiePlus/qmake_plus.cmd @@ -0,0 +1,57 @@ +REM @echo off +REM echo Current dir: %cd% +REM echo folder: %~dp0 +REM echo arch: %1 + + +IF %1 == Win32 ( + call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars32.bat" + set qt_path=%~dp0..\..\Qt\5.15.1\msvc2019 + set build_arch=Win32 +) +IF %1 == x64 ( + call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat" + set qt_path=%~dp0..\..\Qt\5.15.1\msvc2019_64 + set build_arch=x64 +) + + +mkdir %~dp0\Build_qtsingleapp_%build_arch% +cd %~dp0\Build_qtsingleapp_%build_arch% + +%qt_path%\bin\qmake.exe %~dp0\QtSingleApp\qtsingleapp\qtsingleapp\qtsingleapp.qc.pro -spec win32-msvc "CONFIG+=qtquickcompiler" +%~dp0..\..\Qt\Tools\QtCreator\bin\jom.exe -f Makefile.Release -j 8 +IF %ERRORLEVEL% NEQ 0 goto end + + +mkdir %~dp0\Build_MiscHelpers_%build_arch% +cd %~dp0\Build_MiscHelpers_%build_arch% + +%qt_path%\bin\qmake.exe %~dp0\MiscHelpers\MiscHelpers.qc.pro -spec win32-msvc "CONFIG+=qtquickcompiler" +%~dp0..\..\Qt\Tools\QtCreator\bin\jom.exe -f Makefile.Release -j 8 +IF %ERRORLEVEL% NEQ 0 goto end + + +mkdir %~dp0\Build_QSbieAPI_%build_arch% +cd %~dp0\Build_QSbieAPI_%build_arch% + +%qt_path%\bin\qmake.exe %~dp0\QSbieAPI\QSbieAPI.qc.pro -spec win32-msvc "CONFIG+=qtquickcompiler" +%~dp0..\..\Qt\Tools\QtCreator\bin\jom.exe -f Makefile.Release -j 8 +IF %ERRORLEVEL% NEQ 0 goto end + + +mkdir %~dp0\Build_SandMan_%build_arch% +cd %~dp0\Build_SandMan_%build_arch% + +%qt_path%\bin\qmake.exe %~dp0\SandMan\SandMan.qc.pro -spec win32-msvc "CONFIG+=qtquickcompiler" +%~dp0..\..\Qt\Tools\QtCreator\bin\jom.exe -f Makefile.Release -j 8 +IF %ERRORLEVEL% NEQ 0 goto end + + +cd %~dp0 + +rem dir .\bin +rem dir .\bin\%build_arch% +rem dir .\bin\%build_arch%\Release + +:end