Comments (8)
This should be fixed! I had to reimplement this function using a workaround that was actually written on the official Microsoft docs. To my knowledge, this should work (though Wine's Windows XP emulation may or may not be accurate). Give it a try and let me know.
A bit of a warning - The SetProcessDEPPolicy
function was added in Windows Vista. Because DEP doesn't exist on Windows XP, this does mean you run the risk of an arbitrary code execution exploit given a carefully crafted cache file (with DEP enabled, the process exits if it tries to execute memory not marked as executable). Because no one has been known to exploit this, you're probably fine.
from chimera.
Because DEP doesn't exist on Windows XP
This is incorrect, DEP was added to Windows XP in service pack 2.
from chimera.
This is incorrect, DEP was added to Windows XP in service pack 2.
My bad. Or should I say... Microsoft's bad.
According to their documentation, it appears the function for enabling DEP on an existing 32-bit process was added in SP3.
Also, they state you should use a macro to indicate Vista (0x0600) support, not XP SP3 (0x5030). This gave me the wrong impression.
Source: https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-setprocessdeppolicy
from chimera.
This should be fixed! I had to reimplement this function using a workaround that was actually written on the official Microsoft docs. To my knowledge, this should work (though Wine's Windows XP emulation may or may not be accurate). Give it a try and let me know.
A bit of a warning - The
SetProcessDEPPolicy
function was added in Windows Vista. Because DEP doesn't exist on Windows XP, this does mean you run the risk of an arbitrary code execution exploit given a carefully crafted cache file (with DEP enabled, the process exits if it tries to execute memory not marked as executable). Because no one has been known to exploit this, you're probably fine.
I just tried this out on a real Windows XP SP3 Machine - and there was some success :)
It now shows up a different Kernel32.dll missing error: "GetTickCount64 could not be located..."
So it would appear there are multiple post-windowsxp dependencies there. So close!
from chimera.
After a bit of investigation, this appears to be the winpthreads library, not Chimera.
This can probably be worked around by recompiling the library with the Windows XP target (since it appears to have some #ifdefs for this), although getting this to work with Chimera via static linking (and not dynamic linking which would impact the single-DLL installation) may be a bit of a challenge.
from chimera.
After a bit of investigation, this appears to be the winpthreads library, not Chimera.
This can probably be worked around by recompiling the library with the Windows XP target (since it appears to have some #ifdefs for this), although getting this to work with Chimera via static linking (and not dynamic linking which would impact the single-DLL installation) may be a bit of a challenge.
Thanks for taking a deeper look into this again / if you do manage to take the time to recompile the library with that XP target - I will give it another test
from chimera.
Sorry this has taken me a while. I've been working on so much stuff these past couple of weeks! Goodness.
Anyway, a solution is being worked on! However, it may require making an alternative build of Chimera that depends on an external DLL, as maintaining two separate toolchains - one that builds for XP and one that builds for modern versions of Windows - is a bit of a hassle, and I want to distribute Chimera with as few DLLs as possible due to a history of people utterly messing up installation.
from chimera.
Related Issues (20)
- chimera_block_zoom_blur issue HOT 2
- Campaign: Chapter title has bad width in The Library HOT 1
- Can you add bump-mapping and/or jackal shield turning red? HOT 6
- Mouse Wheel HOT 1
- micro stuttering HOT 18
- Demo/Trial Maps compressed with current versions of invader do not load. HOT 2
- Reimplement strings.dll's exception strings HOT 10
- Patch the LAA flag of a copy of the current process' PE, then start anew
- Map compression/de-compression tool. HOT 1
- Allow widescreen fix to center HUD at 16:9
- Chat is garbled for some languages/locales
- Add option to disable, resize or customize the crosshair/reticle. HOT 1
- Connect X client to Y server
- Using an indexed ui.map can sometimes crash Custom Edition when loading a map.
- Automatic map downloading is not working HOT 4
- Local Co-Op Multiplayer...? HOT 3
- Strings.dll? HOT 4
- Allow users/modders to override strings.dll's bitmap Resource via external image file
- Broken gamma HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from chimera.