Originally the author didn't hook and let Defender call the native version check APIs, which (correctly) reported Windows 10. Apparently there was extra initialization code in that case that failed to run in a sandbox. The fix was to reproduce the hooking code, in Rust, to report XP as the underlying Windows version.
[1] https://github.com/taviso/loadlibrary/blob/master/peloader/w...
- Tavis' original code ran on Linux, where there's no correct version of Windows
- it actually worked with the old code; it's only broken when msmpeng sees the new Windows version
- the old code is not in use at all (the whole thing was ported to rust), which didn't have a good DLL interception library
So it would seem the suggestion to modify the old code wouldn't help.
This doesn't make sense to me. It may have been easier to accomplish within the author's skillset, but it seems to me that the more beneficial approach would be to modify Tavis’ code to report the correct version of Windows.