Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

more adaptive new Windows version support #1598

Closed
derekbruening opened this issue Feb 2, 2015 · 2 comments
Closed

more adaptive new Windows version support #1598

derekbruening opened this issue Feb 2, 2015 · 2 comments

Comments

@derekbruening
Copy link
Contributor

Today DR bails on a new Windows version. We have code to dynamically acquire syscall numbers (modulo 3rd party hooks) but it's only used in debug build. We should use it in release to at least try to make progress on a new release (still with a warning, but non-fatal).

@derekbruening
Copy link
Contributor Author

** TODO initial attempt

I put in code that uses the most recent ver enum and a new
windows_unknown_syscalls[] array, which is copied from the most recent
known array and then updated by decoding the wrappers. We skip any hooks,
so this is best-effort.

My test (I disabled identification of win10, and we already have
-max_supported_os_version set to 100):

% bin64/drrun -debug -- ../hello64.exe 
<Unknown Windows NT-family version: major=10, minor=0>
<Starting application C:\derek\hello64.exe (3084)>
<Initial options = -no_dynamic_options -code_api -probe_api -stack_size 56K -max_elide_jmp 0 -max_elide_call 0 -no_inline_ignored_syscalls -native_exec_default_list '' -no_native_exec_managed_code -no_indcall2direct -pad_jmps_mark_no_trace >
Hello world!
<Stopping application C:\derek\hello64.exe (3084)>

@derekbruening
Copy link
Contributor Author

Re-opening as the very next syscall update is using the new versioning scheme where the PEB fields will remain at 10.0.sp0 forever, so we need a new way to detect a new version (probably actual syscall number checks). Xref #1825.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant