[1/3] ntoskrnl: Add initial code to emulate memory access to USER_SHARED_DATA on x86_64. (try 2)

Sebastian Lackner sebastian at fds-team.de
Thu Jun 18 21:28:36 CDT 2015


Changes in try 2:
* Avoid changes to ntdll public interface, instead hardcode the address for user_shared_data.
* Add emulation of movzx instruction (see patch 3).
* Add an additional check for EXCEPTION_READ_FAULT, to avoid handling execute faults.

Please note that we cannot mmap memory to the correct address because its already used by
the linux kernel, see https://www.kernel.org/doc/Documentation/x86/x86_64/mm.txt:
ffffec0000000000 - fffffc0000000000 (=44 bits) kasan shadow memory (16TB)
Also, according to my tests, the user shared data block cannot be accessed from user mode on
Windows, which means ntoskrnl should be the right place to implement it.

---
 dlls/ntoskrnl.exe/instr.c    | 263 ++++++++++++++++++++++++++++++++++++++++++-
 dlls/ntoskrnl.exe/ntoskrnl.c |   2 +-
 2 files changed, 261 insertions(+), 4 deletions(-)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-ntoskrnl-Add-initial-code-to-emulate-memory-access-t.patch
Type: text/x-patch
Size: 9969 bytes
Desc: not available
URL: <http://www.winehq.org/pipermail/wine-patches/attachments/20150619/2cdcd7ba/attachment-0001.bin>


More information about the wine-patches mailing list