There is this old Windows application I've been using for more than a decade now: DesktopEarth. It got its last update in 2015 and the author's website is offline now, but it's been running fine on Windows 10. Recently, I upgraded to Windows 11 and now it won't start anymore, it crashes instantly. Compatibility mode doesn't fix the issue. I really like this application, it shows you the face of the earth with the correct day/night cycle, seasons, clouds, city lights at night, etc. - I don't feel at home on my Desktop without this background. And I can't find an adequate replacement for this app. So I want to try and fix it.
Here's what the Windows application log is saying (sorry, couldn't figure out how to change the language, it's in German):
Name der fehlerhaften Anwendung: DesktopEarth.exe, Version: 3.2.42.0, Zeitstempel: 0x553f6b3b
Name des fehlerhaften Moduls: ntdll.dll, Version: 10.0.22621.755, Zeitstempel: 0x42b70e75
Ausnahmecode: 0xc0000005
Fehleroffset: 0x000653f5
ID des fehlerhaften Prozesses: 0x0x435C
Startzeit der fehlerhaften Anwendung: 0x0x1D90E747D1A2A1D
Pfad der fehlerhaften Anwendung: C:\Program Files (x86)\DesktopEarth\DesktopEarth.exe
Pfad des fehlerhaften Moduls: C:\Windows\SYSTEM32\ntdll.dll
Berichtskennung: 1b12aa9f-2912-4517-8b57-dfa6f8eeb950
Vollständiger Name des fehlerhaften Pakets:
Anwendungs-ID, die relativ zum fehlerhaften Paket ist:
Looks like it crashes in ntdll.dll
... maybe if I revert that to an older version, it will work again? So I downloaded an older version of ntdll.dll
from the internet (hopefully not some randomware), placed it next to DesktopEarth.exe
and... same error. It's still using C:\Windows\SYSTEM32\ntdll.dll
. So I added C:\Program Files (x86)\DesktopEarth
to my PATH, hoping that this would make DesktopEarth.exe
prefer my custom ntdll.dll
but still nothing. Is the path to the dll hardcoded in the exe? I was kinda getting my hopes up, because someone on the internet had a similar issue and placing an old version of ntdll.dll
seemed to have helped. But I don't want to replace C:\Windows\SYSTEM32\ntdll.dll
, it will probably break some other stuff on my system...
How can I make DesktopEarth.exe
use my custom ntdll.dll
? I heard there's a thing called dll hijacking that may help here? Does anyone know how to do that?
ntdll.dll
is the culprit, but you don't seem to be aware just how many times this has been wrong in general (further investigation such as with a memory dump will be required) 2.)ntdll.dll
is a known DLL, which means the session manager preloads it and keeps it around as a section object unter\KnownDlls\ntdll.dll
or\KnownDlls32\ntdll.dll
respectively 3.) in general DLL hijacking is difficult with known DLLs, but with ntdll.dll it may be outright impossible. This DLL gets loaded into a process extremely early.ntdll.dll
would get loaded from next to the binary without any other change. Not even if you placed anntdll.dll.local
file next to it. In fact that description suggests that there is a difference if that particular application gets launched from within its own directory as opposed to from elsewhere. I think that something on that other system was modified (e.g. list of known DLLs or the DLL search order) or that the placedntdll.dll
isn't even used and my above hunch is true.Set-ProcessMitigation DesktopEarth.exe -Disable DEP