diff --git a/Sandboxie/common/NtCRT/x64/ntdll.def b/Sandboxie/common/NtCRT/x64/ntdll.def
new file mode 100644
index 00000000..40cbc7c4
--- /dev/null
+++ b/Sandboxie/common/NtCRT/x64/ntdll.def
@@ -0,0 +1,171 @@
+EXPORTS
+__C_specific_handler
+__chkstk
+__isascii
+__iscsym
+__iscsymf
+__misaligned_access
+__toascii
+_atoi64
+_fltused
+_i64toa
+_i64toa_s
+_i64tow
+_i64tow_s
+_itoa
+_itoa_s
+_itow
+_itow_s
+_lfind
+_local_unwind
+_ltoa
+_ltoa_s
+_ltow
+_ltow_s
+_makepath_s
+_memccpy
+_memicmp
+_setjmp
+_setjmpex
+_snprintf
+_snprintf_s
+_snscanf_s
+_snwprintf
+_snwprintf_s
+_snwscanf_s
+_splitpath
+_splitpath_s
+_strcmpi
+_stricmp
+_strlwr
+_strnicmp
+_strnset_s
+_strset_s
+_strupr
+_swprintf
+_ui64toa
+_ui64toa_s
+_ui64tow
+_ui64tow_s
+_ultoa
+_ultoa_s
+_ultow
+_ultow_s
+_vscwprintf
+_vsnprintf
+_vsnprintf_s
+_vsnwprintf
+_vsnwprintf_s
+_vswprintf
+_wcsicmp
+_wcslwr
+_wcsnicmp
+_wcsnset_s
+_wcsset_s
+_wcstoui64
+_wcsupr
+_wmakepath_s
+_wsplitpath_s
+_wtoi
+_wtoi64
+_wtol
+abs
+atan
+atoi
+atol
+bsearch
+ceil
+cos
+fabs
+floor
+isalnum
+isalpha
+iscntrl
+isdigit
+isgraph
+islower
+isprint
+ispunct
+isspace
+isupper
+iswalpha
+iswctype
+iswdigit
+iswlower
+iswspace
+iswxdigit
+isxdigit
+labs
+log
+longjmp
+mbstowcs
+memchr
+memcmp
+memcpy
+memcpy_s
+memmove
+memmove_s
+memset
+pow
+qsort
+sin
+sprintf
+sprintf_s
+sqrt
+sscanf
+sscanf_s
+strcat
+strcat_s
+strchr
+strcmp
+strcpy
+strcpy_s
+strcspn
+strlen
+strncat
+strncat_s
+strncmp
+strncpy
+strncpy_s
+strnlen
+strpbrk
+strrchr
+strspn
+strstr
+strtok_s
+strtol
+strtoul
+swprintf
+swprintf_s
+swscanf_s
+tan
+tolower
+toupper
+towlower
+towupper
+vDbgPrintEx
+vDbgPrintExWithPrefix
+vsprintf
+vsprintf_s
+vswprintf_s
+wcscat
+wcscat_s
+wcschr
+wcscmp
+wcscpy
+wcscpy_s
+wcscspn
+wcslen
+wcsncat
+wcsncat_s
+wcsncmp
+wcsncpy
+wcsncpy_s
+wcsnlen
+wcspbrk
+wcsrchr
+wcsspn
+wcsstr
+wcstol
+wcstombs
+wcstoul
diff --git a/Sandboxie/common/except_handler3.asm b/Sandboxie/common/NtCRT/x86/except_handler3.asm
similarity index 89%
rename from Sandboxie/common/except_handler3.asm
rename to Sandboxie/common/NtCRT/x86/except_handler3.asm
index fdc6b71c..c5e17f72 100644
--- a/Sandboxie/common/except_handler3.asm
+++ b/Sandboxie/common/NtCRT/x86/except_handler3.asm
@@ -6,11 +6,12 @@
;
;----------------------------------------------------------------------------
- .386
-_TEXT segment use32 para public 'CODE'
- public __except_handler3
+.386
-;EXTERN __ValidateEH3RN : PROC
+_TEXT segment use32 para public 'CODE'
+
+
+public __except_handler3
;__except_handler3 proc near
@@ -136,24 +137,8 @@ __seh_longjmp_unwind@4:
;__except_handler3 endp
-
-
-;EXTERN C P_RtlUnwind : DWORD
EXTERN _RtlUnwind@16 : PROC
-
-;MAGIC_NUMBER1 equ 019930520h
-;
-;_NLG_INFO struc
-; dwSig dd MAGIC_NUMBER1
-; uoffDestination dd 0
-; dwCode dd 0
-; uoffFramePointer dd 0
-;_NLG_INFO ends
-
-;extern __NLG_Destination:_NLG_INFO
-extern __NLG_Destination: FAR
-
;__global_unwind2 proc near
__global_unwind2:
@@ -285,15 +270,8 @@ __NLG_Dispatch:
;__global_unwind2 endp
-
-;EXTERN C _NtQueryVirtualMemory : DWORD
EXTERN _NtQueryVirtualMemory@24: PROC
-EXTERN C _nValidPages : DWORD
-EXTERN C _rgValidPages : DWORD
-EXTERN C _lModifying : DWORD
-
-
;__ValidateEH3RN proc near
__ValidateEH3RN:
@@ -534,6 +512,41 @@ label03:
;__ValidateEH3RN endp
-
_TEXT ends
- end
\ No newline at end of file
+
+
+.model flat
+.data
+
+; Global variables for __NLG_Destination
+;typedef struct {
+; unsigned long dwSig;
+; unsigned long uoffDestination;
+; unsigned long dwCode;
+; unsigned long uoffFramePointer;
+;} _NLG_INFO;
+;_NLG_INFO _NLG_Destination = { 0x019930520, 0, 0, 0 };
+__NLG_Destination LABEL DWORD
+ dd 1 dup (019930520h) ; MAGIC_NUMBER1
+ dd 1 dup (0)
+ dd 1 dup (0)
+ dd 1 dup (0)
+ public __NLG_Destination
+
+
+; Global variables for __ValidateEH3RN
+;INT _nValidPages = 0;
+_nValidPages LABEL DWORD
+ dd 1 dup (0)
+ public _nValidPages
+;PVOID _rgValidPages[0x10] = { NULL };
+_rgValidPages LABEL DWORD
+ dd 16 dup (0)
+ public _rgValidPages
+;BOOL _lModifying = FALSE;
+_lModifying LABEL DWORD
+ dd 1 dup (0)
+ public _lModifying
+
+
+end
\ No newline at end of file
diff --git a/Sandboxie/common/NtCRT/x86/ntdll.def b/Sandboxie/common/NtCRT/x86/ntdll.def
new file mode 100644
index 00000000..2ebdac02
--- /dev/null
+++ b/Sandboxie/common/NtCRT/x86/ntdll.def
@@ -0,0 +1,184 @@
+EXPORTS
+_CIcos
+_CIlog
+_CIpow
+_CIsin
+_CIsqrt
+__isascii
+__iscsym
+__iscsymf
+__toascii
+_alldiv
+_alldvrm
+_allmul
+_alloca_probe
+_alloca_probe_16
+_alloca_probe_8
+_allrem
+_allshl
+_allshr
+_atoi64
+_aulldiv
+_aulldvrm
+_aullrem
+_aullshr
+_chkstk
+_fltused
+_ftol
+_i64toa
+_i64toa_s
+_i64tow
+_i64tow_s
+_itoa
+_itoa_s
+_itow
+_itow_s
+_lfind
+_ltoa
+_ltoa_s
+_ltow
+_ltow_s
+_makepath_s
+_memccpy
+_memicmp
+_snprintf
+_snprintf_s
+_snscanf_s
+_snwprintf
+_snwprintf_s
+_snwscanf_s
+_splitpath
+_splitpath_s
+_strcmpi
+_stricmp
+_strlwr
+_strnicmp
+_strnset_s
+_strset_s
+_strupr
+_swprintf
+_ui64toa
+_ui64toa_s
+_ui64tow
+_ui64tow_s
+_ultoa
+_ultoa_s
+_ultow
+_ultow_s
+_vscwprintf
+_vsnprintf
+_vsnprintf_s
+_vsnwprintf
+_vsnwprintf_s
+_vswprintf
+_wcsicmp
+_wcslwr
+_wcsnicmp
+_wcsnset_s
+_wcsset_s
+_wcstoui64
+_wcsupr
+_wmakepath_s
+_wsplitpath_s
+_wtoi
+_wtoi64
+_wtol
+abs
+atan
+atoi
+atol
+bsearch
+ceil
+cos
+fabs
+floor
+isalnum
+isalpha
+iscntrl
+isdigit
+isgraph
+islower
+isprint
+ispunct
+isspace
+isupper
+iswalpha
+iswctype
+iswdigit
+iswlower
+iswspace
+iswxdigit
+isxdigit
+labs
+log
+mbstowcs
+memchr
+memcmp
+memcpy
+memcpy_s
+memmove
+memmove_s
+memset
+pow
+qsort
+sin
+sprintf
+sprintf_s
+sqrt
+sscanf
+sscanf_s
+strcat
+strcat_s
+strchr
+strcmp
+strcpy
+strcpy_s
+strcspn
+strlen
+strncat
+strncat_s
+strncmp
+strncpy
+strncpy_s
+strnlen
+strpbrk
+strrchr
+strspn
+strstr
+strtok_s
+strtol
+strtoul
+swprintf
+swprintf_s
+swscanf_s
+tan
+tolower
+toupper
+towlower
+towupper
+vDbgPrintEx
+vDbgPrintExWithPrefix
+vsprintf
+vsprintf_s
+vswprintf_s
+wcscat
+wcscat_s
+wcschr
+wcscmp
+wcscpy
+wcscpy_s
+wcscspn
+wcslen
+wcsncat
+wcsncat_s
+wcsncmp
+wcsncpy
+wcsncpy_s
+wcsnlen
+wcspbrk
+wcsrchr
+wcsspn
+wcsstr
+wcstol
+wcstombs
+wcstoul
diff --git a/Sandboxie/common/my_ntdll.c b/Sandboxie/common/my_ntdll.c
index 0f8b6356..30199803 100644
--- a/Sandboxie/common/my_ntdll.c
+++ b/Sandboxie/common/my_ntdll.c
@@ -23,190 +23,25 @@ typedef long NTSTATUS;
#include "win32_ntddk.h"
//
-// Do not include any external CRT into sboxdll project.
+// Do not include any external CRT into sboxdll (SbieDll.dll) project !!!
// This DLL is injected early into the process start up sequence and adding dependencies may break Sandboxie.
// Normally we link directly to the CRT build into ntdll.dll.
-// As more recent versions of ntdll.lib are not offering many CRT functions we have to dynamically link them.
-// If you are missing some expected functions we probably just not added them here yet, so just add what you need.
+//
+// As more recent versions of ntdll.lib are not offering many CRT functions we have to create own libs.
+// See NtCRT_x64.def and NtCRT_x86.def respectively for the functions, we use a custom build step
+// "lib /def:%(FullPath) /out:$(SolutionDir)Bin\$(PlatformName)\$(Configuration)\NtCRT.lib /machine:x64"
+// on the apropriate def file, for x86 we use the switch /machine:x86 instead.
+//
+// For the x86 build we also need _except_handler3 which we have recreated in except_handler3.asm
+//
+// Alternatively we could link all the required functions dynamically from InitMyNtDll
//
int(*P_vsnwprintf)(wchar_t *_Buffer, size_t Count, const wchar_t * const, va_list Args) = NULL;
int(*P_vsnprintf)(char *_Buffer, size_t Count, const char * const, va_list Args) = NULL;
-#ifndef OLD_DDK
-void*(__cdecl *Pmemcpy)(void* _Dst, void const* _Src, size_t _Size) = NULL;
-void* __cdecl memcpy(void* _Dst, void const* _Src, size_t _Size) { return Pmemcpy(_Dst, _Src, _Size); }
-
-void*(__cdecl *Pmemset)(void* _Dst, int _Val, size_t _Size) = NULL;
-void* __cdecl memset(void* _Dst, int _Val, size_t _Size) { return Pmemset(_Dst, _Val, _Size); }
-
-
-wchar_t*(__cdecl *Pwcscpy)(wchar_t *dest, const wchar_t *src) = NULL;
-wchar_t* __cdecl wcscpy(wchar_t *dest, const wchar_t *src) { return Pwcscpy(dest, src); }
-
-size_t(__cdecl *Pwcslen)(wchar_t const* _String) = NULL;
-size_t __cdecl wcslen(wchar_t const* _String) { return Pwcslen(_String); }
-
-int(__cdecl *Pmemcmp)(void const* _Buf1, void const* _Buf2, size_t _Size) = NULL;
-int __cdecl memcmp(void const* _Buf1, void const* _Buf2, size_t _Size) { return Pmemcmp(_Buf1, _Buf2, _Size); }
-
-wchar_t*(__cdecl *Pwcscat)(wchar_t *dest, const wchar_t *src) = NULL;
-wchar_t* __cdecl wcscat(wchar_t *dest, const wchar_t *src) { return Pwcscat(dest, src); }
-
-int(__cdecl *Pwcscmp)(char const* _String1, char const* _String2) = NULL;
-int __cdecl wcscmp(wchar_t const* _String1, wchar_t const* _String2) { return Pwcscmp(_String1, _String2); }
-
-size_t(__cdecl *Pstrlen)(char const*_Str) = NULL;
-size_t __cdecl strlen(char const* _Str) { return Pstrlen(_Str); }
-
-char*(__cdecl *Pstrcpy)(char * destination, const char * source) = NULL;
-char * __cdecl strcpy(char * destination, const char * source) { return Pstrcpy(destination, source); }
-
-int(__cdecl *Pstrcmp)(char const* _Str1, char const* _Str2) = NULL;
-int __cdecl strcmp(char const* _Str1, char const* _Str2) { return Pstrcmp(_Str1, _Str2); }
-
-
-int(__cdecl *P_wcsnicmp)(wchar_t const* _String1, wchar_t const* _String2, size_t _MaxCount) = NULL;
-int __cdecl _wcsnicmp(wchar_t const* _String1, wchar_t const* _String2, size_t _MaxCount) { return P_wcsnicmp(_String1, _String2, _MaxCount); }
-
-wint_t(__cdecl *Ptowupper)(wint_t _C) = NULL;
-wint_t __cdecl towupper(_In_ wint_t _C) { return Ptowupper(_C); }
-
-wint_t(__cdecl *Ptowlower)(wint_t _C) = NULL;
-wint_t __cdecl towlower(_In_ wint_t _C) { return Ptowlower(_C); }
-
-int(__cdecl *Piswctype)(_In_ wint_t _C, _In_ wctype_t _Type) = NULL;
-int __cdecl iswctype(_In_ wint_t _C, _In_ wctype_t _Type) { return Piswctype(_C, _Type); }
-
-void*(__cdecl *Pmemmove)(void* _Dst, void const* _Src, size_t _Size) = NULL;
-void* __cdecl memmove(void* _Dst, void const* _Src, size_t _Size) { return Pmemmove(_Dst, _Src, _Size); }
-
-wchar_t *(__cdecl *Pwcschr)(wchar_t const* _Str, wchar_t _Ch) = NULL;
-wchar_t * __cdecl wcschr(wchar_t const* _Str, wchar_t _Ch) { return Pwcschr(_Str, _Ch); }
-
-wchar_t*(__cdecl *P_itow)(int value, wchar_t *buffer, int radix) = NULL;
-wchar_t * __cdecl _itow(int value, wchar_t *buffer, int radix) { return P_itow(value, buffer, radix); }
-
-int(__cdecl *Pwcsncmp)(wchar_t const* _String1, wchar_t const* _String2, size_t _MaxCount) = NULL;
-int __cdecl wcsncmp(wchar_t const* _String1, wchar_t const* _String2, size_t _MaxCount) { return Pwcsncmp(_String1, _String2, _MaxCount); }
-
-int(__cdecl *P_wcsicmp)(wchar_t const* _String1, wchar_t const* _String2) = NULL;
-int __cdecl _wcsicmp(wchar_t const* _String1, wchar_t const* _String2) { return P_wcsicmp(_String1, _String2); }
-
-wchar_t *(__cdecl *Pwcsrchr)(wchar_t const* _Str, wchar_t _Ch) = NULL;
-wchar_t * __cdecl wcsrchr(wchar_t const* _Str, wchar_t _Ch) { return Pwcsrchr(_Str, _Ch); }
-
-wchar_t *(__cdecl *Pwcsstr)(wchar_t const* _Str, wchar_t const* _SubStr) = NULL;
-wchar_t * __cdecl wcsstr(wchar_t const* _Str, wchar_t const* _SubStr) { return Pwcsstr(_Str, _SubStr); }
-
-wchar_t*(__cdecl *P_wcslwr)(wchar_t *string) = NULL;
-wchar_t *__cdecl _wcslwr(wchar_t *string) { return P_wcslwr(string); }
-
-int(__cdecl *P_stricmp)(char const* _String1, char const* _String2) = NULL;
-int __cdecl _stricmp(char const* _String1, char const* _String2) { return P_stricmp(_String1, _String2); }
-
-long(__cdecl *Pwcstol)(wchar_t const* _String, wchar_t ** _EndPtr, int _Radix) = NULL;
-long __cdecl wcstol(wchar_t const* _String, wchar_t** _EndPtr, int _Radix) { return Pwcstol(_String, _EndPtr, _Radix); }
-
-wchar_t*(__cdecl *Pwcsncpy)(wchar_t* dest, wchar_t const* src, size_t count) = NULL;
-wchar_t* __cdecl wcsncpy(wchar_t* dest, const wchar_t* src, size_t count) { return Pwcsncpy(dest, src, count); }
-
-__int64(__cdecl *P_wtoi64)(wchar_t const *_String) = NULL;
-__int64 __cdecl _wtoi64(wchar_t const* _String) { return P_wtoi64(_String); }
-
-char*(__cdecl *Pstrchr)(const char *s, int c) = NULL;
-char* __cdecl strchr(const char *s, int c) { return Pstrchr(s, c); }
-
-int(__cdecl *Pstrncmp)(const char * str1, const char * str2, size_t num);
-int __cdecl strncmp(const char * str1, const char * str2, size_t num) { return Pstrncmp(str1, str2, num); }
-
-unsigned long(__cdecl *Pwcstoul)(wchar_t const* _String, wchar_t ** _EndPtr, int _Radix) = NULL;
-unsigned long __cdecl wcstoul(wchar_t const* _String, wchar_t** _EndPtr, int _Radix) { return Pwcstoul(_String, _EndPtr, _Radix); }
-
-int(__cdecl *Ptolower)(int _C) = NULL;
-int __cdecl tolower(int _C) { return Ptolower(_C); }
-
-int(__cdecl *P_wtoi)(wchar_t const *_String) = NULL;
-int __cdecl _wtoi(wchar_t const* _String) { return P_wtoi(_String); }
-
-char *(__cdecl *Pstrstr)(char const* _Str, char const* _SubStr) = NULL;
-char * __cdecl strstr(char const* _Str, char const* _SubStr) { return Pstrstr(_Str, _SubStr); }
-
-char*(__cdecl *P_strlwr)(const* str) = NULL;
-char* __cdecl _strlwr(char* str) { return P_strlwr(str); }
-
-#ifdef _WIN64
-EXCEPTION_DISPOSITION(__cdecl *P__C_specific_handler)(struct _EXCEPTION_RECORD *ExceptionRecord, void* EstablisherFrame, struct _CONTEXT* ContextRecord, struct _DISPATCHER_CONTEXT *DispatcherContext) = NULL;
-EXCEPTION_DISPOSITION __cdecl __C_specific_handler(struct _EXCEPTION_RECORD *ExceptionRecord, void* EstablisherFrame, struct _CONTEXT* ContextRecord, struct _DISPATCHER_CONTEXT *DispatcherContext) {
- return P__C_specific_handler(ExceptionRecord, EstablisherFrame, ContextRecord, DispatcherContext);
-}
-
-ULONG(__cdecl *P__chkstk)() = NULL;
-ULONG __cdecl __chkstk() { return P__chkstk(); }
-#else
-
-// Global variables for __NLG_Destination
-typedef struct {
- unsigned long dwSig;
- unsigned long uoffDestination;
- unsigned long dwCode;
- unsigned long uoffFramePointer;
-} _NLG_INFO;
-_NLG_INFO _NLG_Destination = { 0x019930520, 0, 0, 0 };
-
-// Global variables for __ValidateEH3RN
-INT _nValidPages = 0;
-PVOID _rgValidPages[0x10] = { NULL };
-BOOL _lModifying = FALSE;
-
-#endif
-#endif
-
void InitMyNtDll(HMODULE Ntdll)
{
*(FARPROC*)&P_vsnwprintf = GetProcAddress(Ntdll, "_vsnwprintf");
*(FARPROC*)&P_vsnprintf = GetProcAddress(Ntdll, "_vsnprintf");
-
-#ifndef OLD_DDK
-
- *(FARPROC*)&Pmemcpy = GetProcAddress(Ntdll, "memcpy");
- *(FARPROC*)&Pmemset = GetProcAddress(Ntdll, "memset");
- *(FARPROC*)&Pwcscpy = GetProcAddress(Ntdll, "wcscpy");
- *(FARPROC*)&Pwcslen = GetProcAddress(Ntdll, "wcslen");
- *(FARPROC*)&Pmemcmp = GetProcAddress(Ntdll, "memcmp");
- *(FARPROC*)&Pwcscat = GetProcAddress(Ntdll, "wcscat");
- *(FARPROC*)&Pwcscmp = GetProcAddress(Ntdll, "wcscmp");
- *(FARPROC*)&Pstrlen = GetProcAddress(Ntdll, "strlen");
- *(FARPROC*)&Pstrcpy = GetProcAddress(Ntdll, "strcpy");
- *(FARPROC*)&Pstrcmp = GetProcAddress(Ntdll, "strcmp");
- *(FARPROC*)&P_wcsnicmp = GetProcAddress(Ntdll, "_wcsnicmp");
- *(FARPROC*)&Ptowupper = GetProcAddress(Ntdll, "towupper");
- *(FARPROC*)&Ptowlower = GetProcAddress(Ntdll, "towlower");
- *(FARPROC*)&Piswctype = GetProcAddress(Ntdll, "iswctype");
- *(FARPROC*)&Pmemmove = GetProcAddress(Ntdll, "memmove");
- *(FARPROC*)&Pwcschr = GetProcAddress(Ntdll, "wcschr");
- *(FARPROC*)&P_itow = GetProcAddress(Ntdll, "_itow");
- *(FARPROC*)&Pwcsncmp = GetProcAddress(Ntdll, "wcsncmp");
- *(FARPROC*)&P_wcsicmp = GetProcAddress(Ntdll, "_wcsicmp");
- *(FARPROC*)&Pwcsrchr = GetProcAddress(Ntdll, "wcsrchr");
- *(FARPROC*)&Pwcsstr = GetProcAddress(Ntdll, "wcsstr");
- *(FARPROC*)&P_wcslwr = GetProcAddress(Ntdll, "_wcslwr");
- *(FARPROC*)&P_stricmp = GetProcAddress(Ntdll, "_stricmp");
- *(FARPROC*)&Pwcstol = GetProcAddress(Ntdll, "wcstol");
- *(FARPROC*)&Pwcsncpy = GetProcAddress(Ntdll, "wcsncpy");
- *(FARPROC*)&P_wtoi64 = GetProcAddress(Ntdll, "_wtoi64");
- *(FARPROC*)&Pstrchr = GetProcAddress(Ntdll, "strchr");
- *(FARPROC*)&Pstrncmp = GetProcAddress(Ntdll, "strncmp");
- *(FARPROC*)&Pwcstoul = GetProcAddress(Ntdll, "wcstoul");
- *(FARPROC*)&Ptolower = GetProcAddress(Ntdll, "tolower");
- *(FARPROC*)&P_wtoi = GetProcAddress(Ntdll, "_wtoi");
- *(FARPROC*)&Pstrstr = GetProcAddress(Ntdll, "strstr");
- *(FARPROC*)&P_strlwr = GetProcAddress(Ntdll, "_strlwr");
-
-#ifdef _WIN64
- *(FARPROC*)&P__C_specific_handler = GetProcAddress(Ntdll, "__C_specific_handler");
- *(FARPROC*)&P__chkstk = GetProcAddress(Ntdll, "__chkstk");
-#endif
-
-#endif
}
diff --git a/Sandboxie/core/dll/SboxDll.vcxproj b/Sandboxie/core/dll/SboxDll.vcxproj
index 1fdc2771..c6931d95 100644
--- a/Sandboxie/core/dll/SboxDll.vcxproj
+++ b/Sandboxie/core/dll/SboxDll.vcxproj
@@ -22,7 +22,7 @@
Win32Proj
SboxDll
{8E0EAA5B-6F5B-E0E2-338A-453EF2B548E4}
- 10.0
+ 8.1
@@ -30,28 +30,28 @@
true
false
Unicode
- v142
+ v140
DynamicLibrary
true
false
Unicode
- v142
+ v140
DynamicLibrary
false
false
Unicode
- v142
+ v140
DynamicLibrary
false
false
Unicode
- v142
+ v140
@@ -71,22 +71,18 @@
.dll
SbieDll
- $(WindowsSDK_LibraryPath_x86)
.dll
SbieDll
- $(WindowsSDK_LibraryPath_x64)
.dll
SbieDll
- $(WindowsSDK_LibraryPath_x86)
.dll
SbieDll
- $(WindowsSDK_LibraryPath_x64)
@@ -375,7 +371,7 @@
-
+
true
true
Document
@@ -384,6 +380,22 @@
ml -c -Cx -nologo -Zi -Zm -Fo$(Configuration)\%(Filename).obj %(FullPath)
%(ProjectDir)$(Configuration)\%(Filename).obj
+
+ true
+ true
+ lib /def:%(FullPath) /out:$(SolutionDir)Bin\$(PlatformName)\$(Configuration)\NtCRT.lib /machine:x64
+ $(SolutionDir)Bin\$(PlatformName)\$(Configuration)\NtCRT.lib
+ lib /def:%(FullPath) /out:$(SolutionDir)Bin\$(PlatformName)\$(Configuration)\NtCRT.lib /machine:x64
+ $(SolutionDir)Bin\$(PlatformName)\$(Configuration)\NtCRT.lib
+
+
+ true
+ true
+ lib /def:%(FullPath) /out:$(SolutionDir)Bin\$(PlatformName)\$(Configuration)\NtCRT.lib /machine:x86
+ $(SolutionDir)Bin\$(PlatformName)\$(Configuration)\NtCRT.lib
+ lib /def:%(FullPath) /out:$(SolutionDir)Bin\$(PlatformName)\$(Configuration)\NtCRT.lib /machine:x86
+ $(SolutionDir)Bin\$(PlatformName)\$(Configuration)\NtCRT.lib
+
diff --git a/Sandboxie/core/dll/SboxDll.vcxproj.filters b/Sandboxie/core/dll/SboxDll.vcxproj.filters
index 44a7486a..48d9ae93 100644
--- a/Sandboxie/core/dll/SboxDll.vcxproj.filters
+++ b/Sandboxie/core/dll/SboxDll.vcxproj.filters
@@ -233,7 +233,10 @@
hook
-
+
+ common
+
+
common
@@ -278,5 +281,8 @@
hook
+
+ common
+
\ No newline at end of file