Build 0.9.7b

This commit is contained in:
DavidXanatos 2021-10-04 22:09:19 +02:00
parent 935d70ff3d
commit 770d47d07c
6 changed files with 36 additions and 23 deletions

View File

@ -7,6 +7,16 @@ This project adheres to [Semantic Versioning](http://semver.org/).
## [0.9.7b / 5.52.2] - 2021-10-05
### Fixed
- fixed issue loading not unicode sandboxie.ini introduced with the previouse build
## [0.9.7 / 5.52.1] - 2021-10-02
### Added

View File

@ -21,8 +21,8 @@
#ifndef _MY_VERSION_H
#define _MY_VERSION_H
#define MY_VERSION_BINARY 5,52,1
#define MY_VERSION_STRING "5.52.1"
#define MY_VERSION_BINARY 5,52,2
#define MY_VERSION_STRING "5.52.2"
#define MY_VERSION_COMPAT "5.52.0" // this refers to the driver ABI compatibility
// These #defines are used by either Resource Compiler, or by NSIC installer

View File

@ -633,7 +633,7 @@ _FX ULONG RpcRt_RpcBindingFromStringBindingW(
wcscat(wstrPortName, dynamicFalse + 9);
}
}
else if (_wcsicmp(StringBinding, L"0497b57d-2e66-424f-a0c6-157cd5d41700@ncalrpc:") == 0) {
/*else if (_wcsicmp(StringBinding, L"0497b57d-2e66-424f-a0c6-157cd5d41700@ncalrpc:") == 0) {
ULONG_PTR pkernel32 = (ULONG_PTR)GetModuleHandle(L"kernel32.dll");
// kernel32.dll!AicpCreateBindingHandle
@ -644,7 +644,7 @@ _FX ULONG RpcRt_RpcBindingFromStringBindingW(
if (RpcRt_TestCallingModule(pRetAddr, pkernel32)) {
use_RpcMgmtSetComTimeout = TRUE;
}
}
}*/
WCHAR* CallingModule = Trace_FindModuleByAddress((void*)pRetAddr);
if (CallingModule)
@ -844,7 +844,7 @@ RPC_STATUS RPC_ENTRY RpcRt_RpcStringBindingComposeW(TCHAR *ObjUuid,TCHAR *ProtSe
void Sbie_StringFromGUID(const GUID* guid, WCHAR* str);
void RpcRt_NdrClientCallX(const WCHAR* Function, void* ReturnAddress,PMIDL_STUB_DESC pStubDescriptor)
void RpcRt_NdrClientCallX(const WCHAR* Function, void* ReturnAddress,PMIDL_STUB_DESC pStubDescriptor, void* pFormat)
{
WCHAR text[512] = L"RpcRt_NdrClientCallX";
__try
@ -879,7 +879,7 @@ ULONG_PTR RpcRt_NdrClientCall2_x64(
{
void* ReturnAddress = (void*)*(__int64*)(vl - (3 * 8));
RpcRt_NdrClientCallX(L"NdrClientCall2", ReturnAddress, pStubDescriptor);
RpcRt_NdrClientCallX(L"NdrClientCall2", ReturnAddress, pStubDescriptor, pFormat);
return FALSE; // return TRUE to not call the trampoline upon return
}
@ -890,7 +890,7 @@ ULONG_PTR RpcRt_NdrClientCall3_x64(
void* ReturnAddress = (void*)*(__int64*)(vl - (4 * 8));
__try {
RpcRt_NdrClientCallX(L"NdrClientCall3", ReturnAddress, pProxyInfo->pStubDesc);
RpcRt_NdrClientCallX(L"NdrClientCall3", ReturnAddress, pProxyInfo->pStubDesc, pProxyInfo->ProcFormatString);
}__except (EXCEPTION_EXECUTE_HANDLER) {}
return FALSE; // return TRUE to not call the trampoline upon return
@ -905,7 +905,7 @@ ULONG_PTR __cdecl RpcRt_NdrClientCall_x86(
//va_list vl;
//va_start(vl, pFormat);
RpcRt_NdrClientCallX(L"NdrClientCall", ReturnAddress, pStubDescriptor);
RpcRt_NdrClientCallX(L"NdrClientCall", ReturnAddress, pStubDescriptor, pFormat);
//va_end(vl);
@ -919,7 +919,7 @@ ULONG_PTR __cdecl RpcRt_NdrClientCall2_x86(
//va_list vl;
//va_start(vl, pFormat);
RpcRt_NdrClientCallX(L"NdrClientCall2", ReturnAddress, pStubDescriptor);
RpcRt_NdrClientCallX(L"NdrClientCall2", ReturnAddress, pStubDescriptor, pFormat);
//va_end(vl);
@ -933,7 +933,7 @@ ULONG_PTR __cdecl RpcRt_NdrClientCall4_x86(
//va_list vl;
//va_start(vl, pFormat);
RpcRt_NdrClientCallX(L"NdrClientCall4", ReturnAddress, pStubDescriptor);
RpcRt_NdrClientCallX(L"NdrClientCall4", ReturnAddress, pStubDescriptor, pFormat);
//va_end(vl);

View File

@ -1783,7 +1783,7 @@ ALIGNED BOOLEAN __cdecl Secure_CheckElevation64(
#endif _WIN64
extern BOOLEAN g_rpc_client_hooks;
void RpcRt_NdrClientCallX(const WCHAR* Function, void* ReturnAddress, VOID* pStubDescriptor);
void RpcRt_NdrClientCallX(const WCHAR* Function, void* ReturnAddress, VOID* pStubDescriptor, void* pFormat);
ALIGNED BOOLEAN __cdecl Secure_CheckElevation(
void *ReturnAddressFromNdrAsyncClientCall,
@ -1791,9 +1791,9 @@ ALIGNED BOOLEAN __cdecl Secure_CheckElevation(
{
if (g_rpc_client_hooks) {
#ifdef _WIN64
RpcRt_NdrClientCallX(L"Ndr64AsyncClientCall", ReturnAddressFromNdrAsyncClientCall, pStubDescriptor);
RpcRt_NdrClientCallX(L"Ndr64AsyncClientCall", ReturnAddressFromNdrAsyncClientCall, pStubDescriptor, pFormat);
#else
RpcRt_NdrClientCallX(L"NdrAsyncClientCall", ReturnAddressFromNdrAsyncClientCall, pStubDescriptor);
RpcRt_NdrClientCallX(L"NdrAsyncClientCall", ReturnAddressFromNdrAsyncClientCall, pStubDescriptor, pFormat);
#endif
}

View File

@ -897,18 +897,21 @@ ULONG SbieIniServer::CacheConfig()
HeapFree(GetProcessHeap(), 0, iniData);
iniDataPtr = iniData = tmpData;
}
else if (encoding == 2) { //Unicode (UTF-16 BE) BOM
// swap all bytes
UCHAR* tmpData = (UCHAR*)iniDataPtr;
for (DWORD i = 0; i < bytesRead-1; i+=2) {
UCHAR tmp = tmpData[i+1];
tmpData[i+1] = tmpData[i];
tmpData[i] = tmp;
else {
if (encoding == 2) { //Unicode (UTF-16 BE) BOM
// swap all bytes
UCHAR* tmpData = (UCHAR*)iniDataPtr;
for (DWORD i = 0; i < bytesRead - 1; i += 2) {
UCHAR tmp = tmpData[i + 1];
tmpData[i + 1] = tmpData[i];
tmpData[i] = tmp;
}
}
//else if (encoding == 0) //Unicode (UTF-16 LE) BOM
bytesRead /= sizeof(wchar_t);
}
//else if (encoding == 0) //Unicode (UTF-16 LE) BOM
iniDataPtr[bytesRead / sizeof(wchar_t)] = L'\0';
iniDataPtr[bytesRead] = L'\0';
m_pConfigIni = new SConfigIni;
m_pConfigIni->Encoding = encoding;

View File

@ -3,7 +3,7 @@
#define VERSION_MJR 0
#define VERSION_MIN 9
#define VERSION_REV 7
#define VERSION_UPD 0
#define VERSION_UPD 2
#ifndef STR
#define STR2(X) #X