From 433574f444fc409f1e04c7e8da7d8ce93cc2a7b1 Mon Sep 17 00:00:00 2001 From: hfiref0x Date: Mon, 12 Feb 2018 17:12:05 +0700 Subject: [PATCH] 1.5.2 Fix for running with Wine Staging --- Compiled/WinObjEx64.exe | Bin 487936 -> 487936 bytes Source/WinObjEx64/Resource.rc | Bin 112132 -> 112132 bytes Source/WinObjEx64/main.c | 9 +- Source/WinObjEx64/ntos/ntos.h | 214 +++++++++++++++++++++-- Source/WinObjEx64/props/propObjectDump.c | 4 +- Source/WinObjEx64/sup.c | 79 +++++---- Source/WinObjEx64/sup.h | 5 +- WinObjEx64.sha256 | 14 +- 8 files changed, 266 insertions(+), 59 deletions(-) diff --git a/Compiled/WinObjEx64.exe b/Compiled/WinObjEx64.exe index 7e10231f0d84ed8b6f8e13a5937a6ac8aabde735..7d0205e679e7c0897b9aa6ce757303d8ade0f260 100644 GIT binary patch delta 45305 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 delta 45341 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 delta 66 zcmZp9!`AYKZG(Urqv2#hGjm46&7Nkw%s|e5OWn;amL5#Zh73xR8+ApeTg5SQO|s#b VyiZSPa+Nt>vzX0xF&oBrl>nq16e9ot diff --git a/Source/WinObjEx64/main.c b/Source/WinObjEx64/main.c index b4d6f0c..0495f0c 100644 --- a/Source/WinObjEx64/main.c +++ b/Source/WinObjEx64/main.c @@ -6,7 +6,7 @@ * * VERSION: 1.52 * -* DATE: 08 Jan 2018 +* DATE: 10 Feb 2018 * * Program entry point and main window handler. * @@ -872,11 +872,14 @@ void WinObjExMain() if (IsWine != FALSE) { IsFullAdmin = FALSE; } - supInit(IsFullAdmin); + + supInit(IsFullAdmin, IsWine); // do not move anywhere - g_kdctx.IsFullAdmin = IsFullAdmin; + // g_kdctx variable initialized BEFORE this. + // if you move these lines anywhere above they will be zeroed during kdInit g_kdctx.IsWine = IsWine; + g_kdctx.IsFullAdmin = IsFullAdmin; #ifdef _DEBUG TestStart(); diff --git a/Source/WinObjEx64/ntos/ntos.h b/Source/WinObjEx64/ntos/ntos.h index cbdcc4d..6c9dd65 100644 --- a/Source/WinObjEx64/ntos/ntos.h +++ b/Source/WinObjEx64/ntos/ntos.h @@ -4,9 +4,9 @@ * * TITLE: NTOS.H * -* VERSION: 1.81 +* VERSION: 1.83 * -* DATE: 08 Jan 2018 +* DATE: 16 Jan 2018 * * Common header file for the ntos API functions and definitions. * @@ -23,7 +23,8 @@ #pragma warning(disable: 4214) // nonstandard extension used : bit field types other than int #ifndef IN_REGION -#define IN_REGION(x, Base, Size) (((ULONG_PTR)x >= (ULONG_PTR)Base) && ((ULONG_PTR)x <= (ULONG_PTR)Base + (ULONG_PTR)Size)) +#define IN_REGION(x, Base, Size) (((ULONG_PTR)(x) >= (ULONG_PTR)(Base)) && \ + ((ULONG_PTR)(x) <= (ULONG_PTR)(Base) + (ULONG_PTR)(Size))) #endif #ifndef ALIGN_DOWN @@ -71,7 +72,6 @@ typedef SIZE_T SYSINF_PAGE_COUNT; #define OBJ_FORCE_ACCESS_CHECK 0x00000400L #define OBJ_VALID_ATTRIBUTES 0x000007F2L - // // Callback Object Rights // @@ -219,7 +219,6 @@ typedef SIZE_T SYSINF_PAGE_COUNT; MEMORY_PARTITION_QUERY_ACCESS | \ MEMORY_PARTITION_MODIFY_ACCESS) - // // NtCreateProcessEx specific flags. // @@ -235,14 +234,12 @@ typedef SIZE_T SYSINF_PAGE_COUNT; // // Define special ByteOffset parameters for read and write operations // - #define FILE_WRITE_TO_END_OF_FILE 0xffffffff #define FILE_USE_FILE_POINTER_POSITION 0xfffffffe // // This is the maximum MaximumLength for a UNICODE_STRING. // - #define MAXUSHORT 0xffff #define MAX_USTRING ( sizeof(WCHAR) * (MAXUSHORT/sizeof(WCHAR)) ) @@ -2313,11 +2310,11 @@ typedef struct _SYSTEM_HANDLE_INFORMATION_EX { // InfoMask values // -#define OB_INFOMASK_PROCESS_INFO 0x10 -#define OB_INFOMASK_QUOTA 0x08 -#define OB_INFOMASK_HANDLE 0x04 -#define OB_INFOMASK_NAME 0x02 -#define OB_INFOMASK_CREATOR_INFO 0x01 +#define OB_INFOMASK_PROCESS_INFO 0x10 +#define OB_INFOMASK_QUOTA 0x08 +#define OB_INFOMASK_HANDLE 0x04 +#define OB_INFOMASK_NAME 0x02 +#define OB_INFOMASK_CREATOR_INFO 0x01 typedef struct _OBJECT_DIRECTORY_ENTRY { PVOID ChainLink; @@ -3328,7 +3325,41 @@ typedef struct _LDR_DATA_TABLE_ENTRY_COMPATIBLE { ULONG SizeOfImage; UNICODE_STRING FullDllName; UNICODE_STRING BaseDllName; - ULONG Flags; + union + { + ULONG Flags; + struct + { + ULONG PackagedBinary : 1; // Size=4 Offset=104 BitOffset=0 BitCount=1 + ULONG MarkedForRemoval : 1; // Size=4 Offset=104 BitOffset=1 BitCount=1 + ULONG ImageDll : 1; // Size=4 Offset=104 BitOffset=2 BitCount=1 + ULONG LoadNotificationsSent : 1; // Size=4 Offset=104 BitOffset=3 BitCount=1 + ULONG TelemetryEntryProcessed : 1; // Size=4 Offset=104 BitOffset=4 BitCount=1 + ULONG ProcessStaticImport : 1; // Size=4 Offset=104 BitOffset=5 BitCount=1 + ULONG InLegacyLists : 1; // Size=4 Offset=104 BitOffset=6 BitCount=1 + ULONG InIndexes : 1; // Size=4 Offset=104 BitOffset=7 BitCount=1 + ULONG ShimDll : 1; // Size=4 Offset=104 BitOffset=8 BitCount=1 + ULONG InExceptionTable : 1; // Size=4 Offset=104 BitOffset=9 BitCount=1 + ULONG ReservedFlags1 : 2; // Size=4 Offset=104 BitOffset=10 BitCount=2 + ULONG LoadInProgress : 1; // Size=4 Offset=104 BitOffset=12 BitCount=1 + ULONG LoadConfigProcessed : 1; // Size=4 Offset=104 BitOffset=13 BitCount=1 + ULONG EntryProcessed : 1; // Size=4 Offset=104 BitOffset=14 BitCount=1 + ULONG ProtectDelayLoad : 1; // Size=4 Offset=104 BitOffset=15 BitCount=1 + ULONG ReservedFlags3 : 2; // Size=4 Offset=104 BitOffset=16 BitCount=2 + ULONG DontCallForThreads : 1; // Size=4 Offset=104 BitOffset=18 BitCount=1 + ULONG ProcessAttachCalled : 1; // Size=4 Offset=104 BitOffset=19 BitCount=1 + ULONG ProcessAttachFailed : 1; // Size=4 Offset=104 BitOffset=20 BitCount=1 + ULONG CorDeferredValidate : 1; // Size=4 Offset=104 BitOffset=21 BitCount=1 + ULONG CorImage : 1; // Size=4 Offset=104 BitOffset=22 BitCount=1 + ULONG DontRelocate : 1; // Size=4 Offset=104 BitOffset=23 BitCount=1 + ULONG CorILOnly : 1; // Size=4 Offset=104 BitOffset=24 BitCount=1 + ULONG ChpeImage : 1; // Size=4 Offset=104 BitOffset=25 BitCount=1 + ULONG ReservedFlags5 : 2; // Size=4 Offset=104 BitOffset=26 BitCount=2 + ULONG Redirected : 1; // Size=4 Offset=104 BitOffset=28 BitCount=1 + ULONG ReservedFlags6 : 2; // Size=4 Offset=104 BitOffset=29 BitCount=2 + ULONG CompatDatabaseProcessed : 1; // Size=4 Offset=104 BitOffset=31 BitCount=1 + }; + } ENTRYFLAGSUNION; WORD ObsoleteLoadCount; WORD TlsIndex; union @@ -3670,7 +3701,9 @@ typedef struct _PEB32 { ULONG ProcessUsingVEH : 1; ULONG ProcessUsingVCH : 1; ULONG ProcessUsingFTH : 1; - ULONG ReservedBits0 : 27; + ULONG ProcessPreviouslyThrottled : 1; + ULONG ProcessCurrentlyThrottled : 1; + ULONG ReservedBits0 : 25; }; ULONG EnvironmentUpdateCount; }; @@ -3960,7 +3993,9 @@ typedef struct _PEB { ULONG ProcessUsingVEH : 1; ULONG ProcessUsingVCH : 1; ULONG ProcessUsingFTH : 1; - ULONG ReservedBits0 : 27; + ULONG ProcessPreviouslyThrottled : 1; + ULONG ProcessCurrentlyThrottled : 1; + ULONG ReservedBits0 : 25; }; ULONG EnvironmentUpdateCount; }; @@ -4695,6 +4730,13 @@ NTSTATUS NTAPI CsrClientConnectToServer( * ************************************************************************************/ +#ifndef RtlInitEmptyUnicodeString +#define RtlInitEmptyUnicodeString(_ucStr,_buf,_bufSize) \ + ((_ucStr)->Buffer = (_buf), \ + (_ucStr)->Length = 0, \ + (_ucStr)->MaximumLength = (USHORT)(_bufSize)) +#endif + BOOLEAN NTAPI RtlCreateUnicodeString( _Out_ PUNICODE_STRING DestinationString, _In_ PCWSTR SourceString); @@ -4829,6 +4871,27 @@ NTSTATUS NTAPI RtlHashUnicodeString( _In_ ULONG HashAlgorithm, _Out_ PULONG HashValue); +NTSTATUS NTAPI RtlAppendUnicodeStringToString( + _In_ PUNICODE_STRING Destination, + _In_ PUNICODE_STRING Source); + +NTSTATUS NTAPI RtlAppendUnicodeToString( + _In_ PUNICODE_STRING Destination, + _In_opt_ PWSTR Source); + +NTSTATUS NTAPI RtlUpcaseUnicodeString( + _Inout_ PUNICODE_STRING DestinationString, + _In_ PUNICODE_STRING SourceString, + _In_ BOOLEAN AllocateDestinationString); + +NTSTATUS NTAPI RtlDowncaseUnicodeString( + _Inout_ PUNICODE_STRING DestinationString, + _In_ PUNICODE_STRING SourceString, + _In_ BOOLEAN AllocateDestinationString); + +VOID NTAPI RtlEraseUnicodeString( + _Inout_ PUNICODE_STRING String); + /************************************************************************************ * * RTL Process/Thread API. @@ -5249,6 +5312,19 @@ BOOLEAN NTAPI RtlFreeHeap( _In_ ULONG Flags, _In_ PVOID BaseAddress); +NTSTATUS NTAPI RtlZeroHeap( + _In_ PVOID HeapHandle, + _In_ ULONG Flags); + +SIZE_T NTAPI RtlSizeHeap( + _In_ PVOID HeapHandle, + _In_ ULONG Flags, + _In_ PVOID BaseAddress); + +VOID NTAPI RtlProtectHeap( + _In_ PVOID HeapHandle, + _In_ BOOLEAN MakeReadOnly); + /************************************************************************************ * * RTL Compression API. @@ -5588,6 +5664,14 @@ VOID NTAPI RtlUpdateClonedSRWLock( NTSTATUS NTAPI RtlQueryElevationFlags( _Inout_ ULONG *ElevationFlags); +/************************************************************************************ +* +* RTL Misc Support API. +* +************************************************************************************/ + +BOOLEAN NTAPI RtlDoesFileExists_U( + _In_ PCWSTR FileName); /************************************************************************************ * @@ -7618,4 +7702,104 @@ NTSTATUS NTAPI NtSystemDebugControl( _In_ ULONG OutputBufferLength, _Out_opt_ PULONG ReturnLength); +/************************************************************************************ +* +* Application Verifier API and definitions. +* +************************************************************************************/ + +#ifndef DLL_PROCESS_VERIFIER +#define DLL_PROCESS_VERIFIER 4 +#endif + +typedef VOID(NTAPI *RTL_VERIFIER_DLL_LOAD_CALLBACK)( + PWSTR DllName, + PVOID DllBase, + SIZE_T DllSize, + PVOID Reserved); + +typedef VOID(NTAPI *RTL_VERIFIER_DLL_UNLOAD_CALLBACK)( + PWSTR DllName, + PVOID DllBase, + SIZE_T DllSize, + PVOID Reserved); + +typedef VOID(NTAPI *RTL_VERIFIER_NTDLLHEAPFREE_CALLBACK)( + PVOID AllocationBase, + SIZE_T AllocationSize); + +typedef struct _RTL_VERIFIER_THUNK_DESCRIPTOR { + PCHAR ThunkName; + PVOID ThunkOldAddress; + PVOID ThunkNewAddress; +} RTL_VERIFIER_THUNK_DESCRIPTOR, *PRTL_VERIFIER_THUNK_DESCRIPTOR; + +typedef struct _RTL_VERIFIER_DLL_DESCRIPTOR { + PWCHAR DllName; + DWORD DllFlags; + PVOID DllAddress; + PRTL_VERIFIER_THUNK_DESCRIPTOR DllThunks; +} RTL_VERIFIER_DLL_DESCRIPTOR, *PRTL_VERIFIER_DLL_DESCRIPTOR; + +typedef struct _RTL_VERIFIER_PROVIDER_DESCRIPTOR { + DWORD Length; + PRTL_VERIFIER_DLL_DESCRIPTOR ProviderDlls; + RTL_VERIFIER_DLL_LOAD_CALLBACK ProviderDllLoadCallback; + RTL_VERIFIER_DLL_UNLOAD_CALLBACK ProviderDllUnloadCallback; + PWSTR VerifierImage; + DWORD VerifierFlags; + DWORD VerifierDebug; + PVOID RtlpGetStackTraceAddress; + PVOID RtlpDebugPageHeapCreate; + PVOID RtlpDebugPageHeapDestroy; + RTL_VERIFIER_NTDLLHEAPFREE_CALLBACK ProviderNtdllHeapFreeCallback; +} RTL_VERIFIER_PROVIDER_DESCRIPTOR, *PRTL_VERIFIER_PROVIDER_DESCRIPTOR; + +// +// Application verifier standard flags. +// +#define RTL_VRF_FLG_FULL_PAGE_HEAP 0x00000001 +#define RTL_VRF_FLG_RESERVED_DONOTUSE 0x00000002 +#define RTL_VRF_FLG_HANDLE_CHECKS 0x00000004 +#define RTL_VRF_FLG_STACK_CHECKS 0x00000008 +#define RTL_VRF_FLG_APPCOMPAT_CHECKS 0x00000010 +#define RTL_VRF_FLG_TLS_CHECKS 0x00000020 +#define RTL_VRF_FLG_DIRTY_STACKS 0x00000040 +#define RTL_VRF_FLG_RPC_CHECKS 0x00000080 +#define RTL_VRF_FLG_COM_CHECKS 0x00000100 +#define RTL_VRF_FLG_DANGEROUS_APIS 0x00000200 +#define RTL_VRF_FLG_RACE_CHECKS 0x00000400 +#define RTL_VRF_FLG_DEADLOCK_CHECKS 0x00000800 +#define RTL_VRF_FLG_FIRST_CHANCE_EXCEPTION_CHECKS 0x00001000 +#define RTL_VRF_FLG_VIRTUAL_MEM_CHECKS 0x00002000 +#define RTL_VRF_FLG_ENABLE_LOGGING 0x00004000 +#define RTL_VRF_FLG_FAST_FILL_HEAP 0x00008000 +#define RTL_VRF_FLG_VIRTUAL_SPACE_TRACKING 0x00010000 +#define RTL_VRF_FLG_ENABLED_SYSTEM_WIDE 0x00020000 +#define RTL_VRF_FLG_MISCELLANEOUS_CHECKS 0x00020000 +#define RTL_VRF_FLG_LOCK_CHECKS 0x00040000 + +VOID NTAPI RtlApplicationVerifierStop( + _In_ ULONG_PTR Code, + _In_ PSTR Message, + _In_ ULONG_PTR Param1, + _In_ PSTR Description1, + _In_ ULONG_PTR Param2, + _In_ PSTR Description2, + _In_ ULONG_PTR Param3, + _In_ PSTR Description3, + _In_ ULONG_PTR Param4, + _In_ PSTR Description4); + +#ifndef VERIFIER_STOP +#define VERIFIER_STOP(Code, Msg, P1, S1, P2, S2, P3, S3, P4, S4) { \ + RtlApplicationVerifierStop ((Code), \ + (Msg), \ + (ULONG_PTR)(P1),(S1), \ + (ULONG_PTR)(P2),(S2), \ + (ULONG_PTR)(P3),(S3), \ + (ULONG_PTR)(P4),(S4)); \ + } +#endif + #pragma warning(pop) diff --git a/Source/WinObjEx64/props/propObjectDump.c b/Source/WinObjEx64/props/propObjectDump.c index 8986d78..ec2a002 100644 --- a/Source/WinObjEx64/props/propObjectDump.c +++ b/Source/WinObjEx64/props/propObjectDump.c @@ -6,7 +6,7 @@ * * VERSION: 1.52 * -* DATE: 08 Jan 2018 +* DATE: 13 Jan 2018 * * THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF * ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED @@ -825,7 +825,7 @@ VOID ObDumpDriverObject( ObDumpUnicodeString(h_tviRootItem, L"BaseDllName", &ldrEntry.BaseDllName, FALSE); //Flags - ObDumpUlong(g_TreeList, h_tviRootItem, T_FLAGS, NULL, ldrEntry.Flags, TRUE, FALSE, 0, 0); + ObDumpUlong(g_TreeList, h_tviRootItem, T_FLAGS, NULL, ldrEntry.ENTRYFLAGSUNION.Flags, TRUE, FALSE, 0, 0); //LoadCount lpType = L"ObsoleteLoadCount"; diff --git a/Source/WinObjEx64/sup.c b/Source/WinObjEx64/sup.c index f5ad3fb..d911ec2 100644 --- a/Source/WinObjEx64/sup.c +++ b/Source/WinObjEx64/sup.c @@ -6,7 +6,7 @@ * * VERSION: 1.52 * -* DATE: 08 Jan 2018 +* DATE: 10 Feb 2018 * * THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF * ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED @@ -294,7 +294,6 @@ BOOL supQueryObjectFromHandle( ULONG i; DWORD CurrentProcessId = GetCurrentProcessId(); - //PSYSTEM_HANDLE_INFORMATION pHandles; PSYSTEM_HANDLE_INFORMATION_EX pHandles; if (Address == NULL) { @@ -816,11 +815,11 @@ UINT supGetObjectNameIndexByTypeIndex( POBJECT_TYPE_INFORMATION pObject; POBJECT_TYPE_INFORMATION_8 pObject8; - __try { + if (Object == NULL) { + return TYPE_UNKNOWN; + } - if (Object == NULL) { - return TYPE_UNKNOWN; - } + __try { Index = ObDecodeTypeIndex(Object, TypeIndex); @@ -848,7 +847,7 @@ UINT supGetObjectNameIndexByTypeIndex( } } - __except (exceptFilter(GetExceptionCode(), GetExceptionInformation())) { + __except (EXCEPTION_EXECUTE_HANDLER) { return TYPE_UNKNOWN; } return TYPE_UNKNOWN; @@ -1316,7 +1315,8 @@ VOID supxMapNtdllCopy( * */ VOID supInit( - _In_ BOOL IsFullAdmin + _In_ BOOL IsFullAdmin, + _In_ BOOL IsWine ) { supQueryKnownDlls(); @@ -1329,7 +1329,19 @@ VOID supInit( sapiCreateSetupDBSnapshot(); - g_pObjectTypesInfo = supGetObjectTypesInfo(); + // + // Quick Wine Staging fix. + // Under usual Wine NtQueryObject(ObjectTypesInformation) is not implemented. + // We are okay with that. + // But under Wine Staging this piece of code is implemented and it is broken. + // So generally ban this call from Wine. + // + if (IsWine) { + g_pObjectTypesInfo = NULL; + } + else { + g_pObjectTypesInfo = supGetObjectTypesInfo(); + } ExApiSetInit(); } @@ -2044,33 +2056,40 @@ BOOL supQueryTypeInfo( return bResult; } - pObject = (POBJECT_TYPE_INFORMATION)&g_pObjectTypesInfo->TypeInformation; - for (i = 0; i < g_pObjectTypesInfo->NumberOfTypes; i++) { + __try { - if (_strncmpi(pObject->TypeName.Buffer, - lpTypeName, - pObject->TypeName.Length / sizeof(WCHAR)) == 0) - { - for (nPool = 0; nPool < MAX_KNOWN_POOL_TYPES; nPool++) { - if ((POOL_TYPE)pObject->PoolType == (POOL_TYPE)a_PoolTypes[nPool].dwValue) { + pObject = (POBJECT_TYPE_INFORMATION)&g_pObjectTypesInfo->TypeInformation; + for (i = 0; i < g_pObjectTypesInfo->NumberOfTypes; i++) { - _strncpy( - Buffer, ccBuffer, - a_PoolTypes[nPool].lpDescription, - _strlen(a_PoolTypes[nPool].lpDescription) - ); + if (_strncmpi(pObject->TypeName.Buffer, + lpTypeName, + pObject->TypeName.Length / sizeof(WCHAR)) == 0) + { + for (nPool = 0; nPool < MAX_KNOWN_POOL_TYPES; nPool++) { + if ((POOL_TYPE)pObject->PoolType == (POOL_TYPE)a_PoolTypes[nPool].dwValue) { - break; + _strncpy( + Buffer, ccBuffer, + a_PoolTypes[nPool].lpDescription, + _strlen(a_PoolTypes[nPool].lpDescription) + ); + + break; + } } + bResult = TRUE; } - bResult = TRUE; + if (bResult) { + break; + } + //next entry located after the aligned type name buffer + pObject = (POBJECT_TYPE_INFORMATION)((PCHAR)(pObject + 1) + + ALIGN_UP(pObject->TypeName.MaximumLength, sizeof(ULONG_PTR))); } - if (bResult) { - break; - } - //next entry located after the aligned type name buffer - pObject = (POBJECT_TYPE_INFORMATION)((PCHAR)(pObject + 1) + - ALIGN_UP(pObject->TypeName.MaximumLength, sizeof(ULONG_PTR))); + + } + __except (EXCEPTION_EXECUTE_HANDLER) { + return FALSE; } return bResult; } diff --git a/Source/WinObjEx64/sup.h b/Source/WinObjEx64/sup.h index 03dc93c..c41906a 100644 --- a/Source/WinObjEx64/sup.h +++ b/Source/WinObjEx64/sup.h @@ -6,7 +6,7 @@ * * VERSION: 1.52 * -* DATE: 08 Jan 2018 +* DATE: 10 Feb 2018 * * Common header file for the program support routines. * @@ -158,7 +158,8 @@ VOID supCreateToolbarButtons( _In_ HWND hWndToolbar); VOID supInit( - _In_ BOOL IsFullAdmin); + _In_ BOOL IsFullAdmin, + _In_ BOOL IsWine); VOID supShutdown( VOID); diff --git a/WinObjEx64.sha256 b/WinObjEx64.sha256 index e20736e..04d998a 100644 --- a/WinObjEx64.sha256 +++ b/WinObjEx64.sha256 @@ -1,5 +1,5 @@ 0a821bc39180e43dc27e9aa0683c7a1dc1a648c5d0a055261af022f50aae32fe *Compiled\WinObjEx64.chm -1a237e152c7dfeb2adeaa0db296aea9c1b3e191690c315dd4daf5fa9e5010904 *Compiled\WinObjEx64.exe +234638d24289e6caaa50b8cbd54a751ce45fc9b3bdb48cc5bcb4d01fde57091b *Compiled\WinObjEx64.exe bb230ab7c5ee7c6bee73250fcc57f7291a8d62d347fe4d19ad58763b529efed4 *Source\CHANGELOG.txt d78a70cd4977daed9abce48d3c137d9a199b5154eeba41b1c9bf7cd2cf88051f *Source\FileList.txt 72346b8a97a5ee2f8fc7ffc83ba05ea43cc2f81c34952a6777bb4c456f114d1b *Source\TypesWithNoDesc.txt @@ -21,13 +21,13 @@ ba272b1faf6cd3a8d8e554dd7dfff35abd1a8ffebb0280e8459112e855db9f83 *Source\WinObjE f351015b6497ca4ae9b348a34a64ff4cbcc3b759c2e637d99e643c04b0a2ccae *Source\WinObjEx64\kldbg.h 13f06cdd6ee7b2e6ce203329f81f96588ead571e287edf844ecbbeeaa0bc8da9 *Source\WinObjEx64\list.c b311dfa9882435a609a965066b7e4e607c3723b6be3e134cf0d120913dc1b225 *Source\WinObjEx64\list.h -c70745fb7ff53c3d9044cfe91288661ce9902ff9035b31352ca14e913488c219 *Source\WinObjEx64\main.c +14113bc6bd500a38fe4b4a54de13437c22ea7fb8e38adff71ca2ffaa691ecb92 *Source\WinObjEx64\main.c f0ff77342a614f4ef0f39d67451014761643bed9cd904177d8ca09b0f8b7f994 *Source\WinObjEx64\objects.c 01a948f28d76e693f93c03ab64a06d572c3b547374a522ce65d95a8105c434c4 *Source\WinObjEx64\objects.h c241d7e25de6446fd6d51f1b37c9dcb614ed286fef926b853ff60da5dc2f67ae *Source\WinObjEx64\resource.h -bdfb909f4b444195f8db3e2180293235e620ba992299bd3f8b2e225dd9f94bfa *Source\WinObjEx64\Resource.rc -13d3661c95ca6ec4d69cd20d82b0c80bdb24d11dc543be82db7c4cf0403dc5d5 *Source\WinObjEx64\sup.c -89e97917a5f9f3a9f7000e77b3c2540c0530eb9aab99d9faecb22fa89553468e *Source\WinObjEx64\sup.h +db1f721a165d7466653852dccdd633c7d83c92d7865a84748d07f2271843d17d *Source\WinObjEx64\Resource.rc +68ad186a83f647de9e347a507bfe71958efd3c44547a967cd6ff0c924cefc4e5 *Source\WinObjEx64\sup.c +685f65d7f9ee7398e0ed1746de942e9df090354be8f025fc4d6388b4a760aca3 *Source\WinObjEx64\sup.h 43234dad977900114521a5e28b2228bb5967f877bceb9b0d461ed64135d7789f *Source\WinObjEx64\supConsts.h 4a5b1b7f56ddbfe956248a2aed344402cdd2c09f1d1c49d65655180b5e933db6 *Source\WinObjEx64\treelist.c 55b18a4fa9c2fbe08817cfc8dca0fa30f1a8537690af883bbd2478b03368eebf *Source\WinObjEx64\treelist.h @@ -77,7 +77,7 @@ ef1b18997ea473ac8d516ef60efc64b9175418b8f078e088d783fdaef2544969 *Source\WinObjE 52e3d39c69c43264b2f8d9bcdfce0f763a5e92d091eef59ea2a0294b4b19641c *Source\WinObjEx64\minirtl\_strstr.c 52a696ae714eb81033c477d1ec6c01389eef56c847609e89d360c2fb6899b4b6 *Source\WinObjEx64\minirtl\_strstri.c 9e6c2ba41fb78426c38d466e3baf5fc5645bb4f6b1b533a3af52e1e93cd3ce01 *Source\WinObjEx64\ntos\ntalpc.h -759bed3cac43084086a3d7257f34672f56b751e0ea0202e88ade74551ce55b31 *Source\WinObjEx64\ntos\ntos.h +2906a46fbf5373e7c5904cafa9a2ddf808a40e0e70a76ac51e709226544979aa *Source\WinObjEx64\ntos\ntos.h 08b145a0edab4e66ea3da2ca770792b0248ced8371486606ae497734ccaaec0b *Source\WinObjEx64\props\propBasic.c 45e2088b0320c02cca2559f6e5183a4eb2a289021f5488d65ba6230e208557e9 *Source\WinObjEx64\props\propBasic.h 0a03eec3ef69740af7e000447e9467bc102af73754d1837dbcc732f421ba1587 *Source\WinObjEx64\props\propBasicConsts.h @@ -88,7 +88,7 @@ e2e24faf15ec4b0cb26d30f2c17ab3e23d17e0d1fb16447ab921e0b4aa42421a *Source\WinObjE 9771e96a5fd491a50e94e9f04cc82058459de8bf27ea801f0785fe6a2f4e6961 *Source\WinObjEx64\props\propDriver.c 8dd63e57115728cdea4c326e5cde9acfe6015b2b088ec36022cd9f81e216e179 *Source\WinObjEx64\props\propDriver.h 721bf384ee6ba44cb118a4bfde7ffba669024059e3120b8cae40e98228eba6df *Source\WinObjEx64\props\propDriverConsts.h -5b8456e91def12d7b466570b00993e84ec364548c4c600330dde9014e837665c *Source\WinObjEx64\props\propObjectDump.c +c528af8fd80d53b1c700f40756dbf2efec547910d3ab5bbd2f87d6de858ddf00 *Source\WinObjEx64\props\propObjectDump.c d081bd9af04ae0d0df85a500ae50b4526cbcd4ae707e0ae5da38d37447785c78 *Source\WinObjEx64\props\propObjectDump.h 205836108ebeff7f2ea324643c8a735a6b714667c6fb2a8296074789709ece87 *Source\WinObjEx64\props\propObjectDumpConsts.h 5095cece621254f7d6b393b424f2e45c10b0dec8bf1fed56261663a4f2af654d *Source\WinObjEx64\props\propProcess.c