1.0.6
This commit is contained in:
parent
e4933a83df
commit
3386c33fec
|
@ -21,6 +21,10 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|||
- fixed issue creating shortcuts introduced in a recent build [#1471](https://github.com/sandboxie-plus/Sandboxie/issues/1471)
|
||||
- fixed access issues in privacy enhanced boxes
|
||||
|
||||
### Removed
|
||||
- removed obsolete SkyNetRootKit detection from 32 bit build
|
||||
|
||||
|
||||
|
||||
|
||||
## [1.0.5 / 5.55.5] - 2021-12-25
|
||||
|
|
|
@ -129,8 +129,6 @@ int __stdcall WinMain(
|
|||
|
||||
Check_Windows_7();
|
||||
|
||||
SetupExceptionHandler();
|
||||
|
||||
HOOK_WIN32(CoImpersonateClient);
|
||||
HOOK_WIN32(LogonUserW);
|
||||
|
||||
|
|
|
@ -204,8 +204,6 @@ int __stdcall WinMain(
|
|||
|
||||
Check_Windows_7();
|
||||
|
||||
SetupExceptionHandler();
|
||||
|
||||
HOOK_WIN32(DuplicateHandle);
|
||||
|
||||
HOOK_WIN32(CreateFileW);
|
||||
|
|
|
@ -127,8 +127,6 @@ int __stdcall WinMain(
|
|||
BOOL ok;
|
||||
HANDLE hThreadEvent;
|
||||
|
||||
SetupExceptionHandler();
|
||||
|
||||
Check_Windows_7();
|
||||
|
||||
// pretend we are the SCM
|
||||
|
|
|
@ -102,8 +102,8 @@ void RemovePid(ULONG myPid)
|
|||
{
|
||||
MONITOR_PID monitorPid;
|
||||
if (map_take(&pidMap, (void*)myPid, &monitorPid, sizeof(monitorPid))) {
|
||||
CloseHandle(monitorPid.hProcHandle);
|
||||
UnregisterWait(monitorPid.hProcWait);
|
||||
CloseHandle(monitorPid.hProcHandle);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -399,8 +399,6 @@ _FX int __stdcall WinMain(
|
|||
return STATUS_LICENSE_QUOTA_EXCEEDED;
|
||||
}
|
||||
|
||||
SetupExceptionHandler();
|
||||
|
||||
if (1) {
|
||||
ULONG idThread;
|
||||
HANDLE hThread = CreateThread(
|
||||
|
|
|
@ -198,8 +198,6 @@ int __stdcall WinMain(
|
|||
|
||||
Check_Windows_7();
|
||||
|
||||
SetupExceptionHandler();
|
||||
|
||||
HOOK_WIN32(CreateProcessW);
|
||||
|
||||
memzero(&osvi, sizeof(OSVERSIONINFO));
|
||||
|
|
|
@ -806,71 +806,6 @@ BOOL Service_Start_ServiceMain(WCHAR *SvcName, const WCHAR *SvcDllName, const UC
|
|||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// VectoredExceptionHandler
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
_FX LONG VectoredExceptionHandler(EXCEPTION_POINTERS *ExceptionInfo)
|
||||
{
|
||||
static ULONG LastExcCode = -1;
|
||||
WCHAR txt[256];
|
||||
|
||||
//
|
||||
// SkyNetRootKit crashes SandboxieRpcSs with an exception address
|
||||
// beyond user space, so indicate this special condition
|
||||
//
|
||||
|
||||
if (LastExcCode != ExceptionInfo->ExceptionRecord->ExceptionCode) {
|
||||
|
||||
ULONG_PTR ExceptionAddress =
|
||||
(ULONG_PTR)ExceptionInfo->ExceptionRecord->ExceptionAddress;
|
||||
|
||||
LastExcCode = ExceptionInfo->ExceptionRecord->ExceptionCode;
|
||||
|
||||
if ((ExceptionAddress & 0xF0000000) >= 0x80000000) {
|
||||
|
||||
swprintf(txt, L"%s (%08X)", ServiceTitle, LastExcCode);
|
||||
SbieApi_Log(2204, txt);
|
||||
|
||||
wsprintf(txt,
|
||||
L"SBIE2398 Service suffers exception %08X at address %08X."
|
||||
L" Last checkpoint was %d\n",
|
||||
ExceptionInfo->ExceptionRecord->ExceptionCode,
|
||||
ExceptionInfo->ExceptionRecord->ExceptionAddress,
|
||||
ServiceStatus_CheckPoint);
|
||||
ErrorMessageBox(txt);
|
||||
}
|
||||
}
|
||||
|
||||
return EXCEPTION_CONTINUE_SEARCH;
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Setup
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
_FX void SetupExceptionHandler(void)
|
||||
{
|
||||
#ifndef _WIN64
|
||||
|
||||
typedef void *(*P_AddVectoredExceptionHandler)(
|
||||
ULONG FirstHandler,
|
||||
PVECTORED_EXCEPTION_HANDLER VectoredHandler);
|
||||
|
||||
HMODULE kernel32 = GetModuleHandle(L"kernel32.dll");
|
||||
void *ptr = GetProcAddress(kernel32, "AddVectoredExceptionHandler");
|
||||
if (!ptr)
|
||||
return;
|
||||
|
||||
((P_AddVectoredExceptionHandler)ptr)(1, VectoredExceptionHandler);
|
||||
|
||||
#endif _WIN64
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// SuspendMainThread
|
||||
//---------------------------------------------------------------------------
|
||||
|
|
|
@ -380,3 +380,17 @@ BOOLEAN map_next(map_base_t* m, map_iter_t* iter)
|
|||
printf("\r\n\r\nBucket usage %d/%d (%d%%), average nodes per used bucket %.2f\r\n", used, used+empty, 100*used/(used+empty), (double)m->nnodes/used);
|
||||
#endif
|
||||
}*/
|
||||
|
||||
BOOLEAN str_map_match(const void* key1, const void* key2) {
|
||||
const wchar_t** str1 = (const wchar_t**)key1;
|
||||
const wchar_t** str2 = (const wchar_t**)key2;
|
||||
return _wcsicmp(*str1, *str2) == 0;
|
||||
}
|
||||
|
||||
unsigned int str_map_hash(const void* key, size_t size) {
|
||||
const wchar_t** str = (const wchar_t**)key;
|
||||
unsigned int hash = 5381;
|
||||
for (unsigned short* ptr = (unsigned short*)*str; *ptr != 0; ptr++)
|
||||
hash = ((hash << 5) + hash) ^ *ptr;
|
||||
return hash;
|
||||
}
|
|
@ -70,6 +70,9 @@ BOOLEAN map_next(map_base_t *m, map_iter_t *iter);
|
|||
|
||||
//void map_dump(map_base_t *m);
|
||||
|
||||
BOOLEAN str_map_match(const void* key1, const void* key2);
|
||||
unsigned int str_map_hash(const void* key, size_t size);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -134,20 +134,6 @@ static const WCHAR *Conf_Get_Setting_Name(
|
|||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
static BOOLEAN str_map_match(const void* key1, const void* key2) {
|
||||
const wchar_t** str1 = (const wchar_t**)key1;
|
||||
const wchar_t** str2 = (const wchar_t**)key2;
|
||||
return _wcsicmp(*str1, *str2) == 0;
|
||||
}
|
||||
|
||||
static unsigned int str_map_hash(const void* key, size_t size) {
|
||||
const wchar_t** str = (const wchar_t**)key;
|
||||
unsigned int hash = 5381;
|
||||
for (unsigned short* ptr = (unsigned short*)*str; *ptr != 0; ptr++)
|
||||
hash = ((hash << 5) + hash) ^ *ptr;
|
||||
return hash;
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
|
|
@ -46,8 +46,6 @@
|
|||
|
||||
ProcessServer::ProcessServer(PipeServer *pipeServer)
|
||||
{
|
||||
InitializeCriticalSection(&m_RunSandboxed_CritSec);
|
||||
|
||||
pipeServer->Register(MSGID_PROCESS, this, Handler);
|
||||
}
|
||||
|
||||
|
|
|
@ -76,9 +76,6 @@ protected:
|
|||
HANDLE CallerProcessHandle, ULONG crflags,
|
||||
PROCESS_INFORMATION *piInput, PROCESS_INFORMATION *piReply);
|
||||
|
||||
protected:
|
||||
|
||||
CRITICAL_SECTION m_RunSandboxed_CritSec;
|
||||
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue