Windows Server 2003 (NT 5.2.3790.0) build guide
Windows 10 Compatibility for Windows XP/2003 (WIP) - extras for NTDLL.DLL
Implementation of some NTDLL.DLL functions, available in Windows versions released after Windows XP/2003, to get software to that is compatible with Windows 2003R2/Vista/2008/2008R2/7/8/8.1/2016/10/2019 to run in Windows XP/2003.
The current implementation of C code compiles and links fine with the existing NTDLL.DLL code, but is a work in progress.
This is not intended to be a secure implementation for now, just intended to provide compatibility. Some functions are being tested now, more information here Wine-on-Windows
New files implementing functions start with an _
. Missing functions in applications can be found out by loading the executable into Dependency Walker (depends.exe). This code can be used to to further with this test harness.
Needs help as they are many functions to be back-ported!
Requirements
- A x86 version of Windows 2003 / XP SP1 with source code available: see build-win2k3
- Disable Windows File Protection when DLL’s replacing after installation, see https://www.technipages.com/enable-disable-wfp
- Ability to execute executables built for newer versions than Windows XP SP2 / Windows Server 2003 RTM (NT 5.2).
Function | Status | Functionality | Last updated |
---|---|---|---|
RtlRunOnceExecuteOnce | Implemented | Wine - untested - redirected from KERNEL32.DLL | 2020/12/02 |
RtlRunOnceComplete | Implemented | Wine - untested - redirected from KERNEL32.DLL | 2020/12/02 |
RtlInitializeConditionVariable | Implemented | Wine - untested - redirected from KERNEL32.DLL | 2020/12/01 |
RtlWakeByAddressAll | Implemented | Wine - untested - redirected from KERNEL32.DLL | 2020/12/01 |
RtlWakeAllConditionVariable | Implemented | Wine - untested - redirected from KERNEL32.DLL | 2020/12/01 |
RtlWakeConditionVariable | Implemented | Wine - untested - redirected from KERNEL32.DLL | 2020/12/01 |
RtlInitializeSRWLock | Implemented | Wine - untested - redirected from KERNEL32.DLL | 2020/12/01 |
RtlAcquireSRWLockExclusive | Implemented | Wine - untested - redirected from KERNEL32.DLL | 2020/12/01 |
RtlAcquireSRWLockShared | Implemented | Wine - untested - redirected from KERNEL32.DLL | 2020/12/01 |
RtlTryAcquireSRWLockExclusive | Implemented | Wine - untested - redirected from KERNEL32.DLL | 2020/12/01 |
RtlReleaseSRWLockExclusive | Implemented | Wine - untested - redirected from KERNEL32.DLL | 2020/12/01 |
RtlReleaseSRWLockShared | Implemented | Wine - untested - redirected from KERNEL32.DLL | 2020/12/01 |
RtlInitializeCriticalSectionEx | Implemented | Wine - untested - redirected from KERNEL32.DLL | 2020/12/01 |
EtwEventRegister | Implemented | stub returning ERROR_SUCCESS should use EVENTLOG.DLL - redirected from ADVAPI32.DLL | 2020/11/30 |
EtwEventUnregister | Implemented | stub returning ERROR_SUCCESS should use EVENTLOG.DLL - redirected from ADVAPI32.DLL | 2020/11/30 |
EtwEventWrite | Implemented | stub returning ERROR_SUCCESS should use EVENTLOG.DLL - redirected from ADVAPI32.DLL | 2020/11/30 |
EtwEventWriteTransfer | Implemented | stub returning ERROR_SUCCESS should use EVENTLOG.DLL - redirected from ADVAPI32.DLL | 2020/11/30 |
EtwEventWriteEx | Implemented | stub returning ERROR_SUCCESS should use EVENTLOG.DLL - redirected from ADVAPI32.DLL | 2020/11/30 |
EtwEventSetInformation | Implemented | stub returning ERROR_SUCCESS should use EVENTLOG.DLL - redirected from ADVAPI32.DLL | 2020/11/30 |
DecodePointer | Tested | redirected from KERNEL32.DLL, see kernel32-obfuscated-pointers | 2020/11/28 |
EncodePointer | Tested | redirected from KERNEL32.DLL, see kernel32-obfuscated-pointers | 2020/11/28 |
Changes
Changes only happen in \base\ntdll
Place
_*.c
&_*.h
files from the<date>__NTDLL.DLL.zip
archive, see Download below(Included in the patched files) In
\base\ntdll\ntdlldef.src
: add these two lines
EtwEventRegister
EtwEventUnregister
EtwEventWrite
EtwEventWriteTransfer
EtwEventWriteEx
EtwEventSetInformation
RtlInitializeConditionVariable
RtlWakeByAddressAll
RtlWakeAllConditionVariable
RtlWakeConditionVariable
RtlInitializeSRWLock
RtlAcquireSRWLockExclusive
RtlAcquireSRWLockShared
RtlTryAcquireSRWLockExclusive
RtlReleaseSRWLockExclusive
RtlReleaseSRWLockShared
RtlInitializeCriticalSectionEx
RtlRunOnceExecuteOnce
RtlRunOnceComplete
- (Included in the patched files) In
\base\ntdll\daytona\sources
&\base\ntdll\wow6432\sources
add toSOURCES
macro:
..\_obfuscated_pointers.c \
..\_synchapi.c \
..\_eventlog.c \
- Run
bcz
in\base\ntdll
- Overwrite the created
\base\ntdll\daytona\obj\i386\NTDLL.DLL
in theC:\WINDOWS\SYSTEM32
folder of your Windows XP installation.
Download implementations
Date | Filename | Link |
---|---|---|
2020/12/02 | 20201202__NTDLL.DLL.v2.zip | https://gofile.io/d/DH9dZL |