leecher1337 / ntvdmx64

Run Microsoft Windows NTVDM (DOS) on 64bit Editions
780 stars 80 forks source link

Breaks after 2021-11 Updates on Win7 #155

Closed bilditup1 closed 2 years ago

bilditup1 commented 2 years ago

After applying 2021-11 Cumulative (KB5007236) and .NET (KB5007149) Updates on Win7, attempting to run a DOS program results in conhost summarily crashing. This happened on two machines, so does not appear to be a one-off. I have not yet tried with Win10 (the machines have Secure Boot on) and don't have any Win11 builds yet.

InterSyncz commented 2 years ago

my conhost just crashes outright, no matter if its a dos program or not, I'm on Windows 10.

InterSyncz commented 2 years ago

I copied and renamed my conhost to soup.exe and it works fine.

InterSyncz commented 2 years ago

Moving ldntvdm.dll out of my system32 and syswow64 folder fixes the issue

leecher1337 commented 2 years ago

Problem cannot be reproduced, I installed both updates, no problems with them:

image

Have you tried uninstalling and reinstalling ntvdmx64 after the update? Maybe symbols didn't get updated properly and old offsets are still cached in registry?

You can try to delete HKEY_LOCAL_MACHINE\Software\ldntvdm key in registry to be sure.

bilditup1 commented 2 years ago

After a couple of reboots I can no longer reproduce either. Did not reinstall, did not touch registry. Very strange.

bilditup1 commented 2 years ago

This is happening again with the 2022-04 update, on several different machines, summarily crashing and giving the familiar warning about 16-bit applications. This time, rebooting did not help. I uninstalled and reinstalled, same result. Checking the registry, there was an HKLM\Software\ldntvdm key, but there was nothing under it. Under AppInit_DLLs in HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Windows, "ldntvdm.dll" showed up but with a leading space; deleting this space did not help so I put it back in.

leecher1337 commented 2 years ago

Check debugview output

bilditup1 commented 2 years ago

...OK, I ran dbgview, but now it works. It looks like new symbols were needed, but probably weren't found before? So perhaps they weren't updated until later this week? There are still some 'hooking failed' reports but I successfully ran a 16-bit application.

01_ldntvdm_hooking-failed-but-works__2022-04-16

00_ldntvdm_syms-downloaded__2022-04-16.LOG 01_ldntvdm_hooking-failed-but-works__2022-04-16.LOG

bilditup1 commented 2 years ago

I now suspect that symbols need updating with every subsequent Patch Tuesday, as this is happening again with identical output from dbgview. I don't know if this is a new trend, or if this is inherent and that I just wasn't paying close enough attention to these machines for the 2021-12, 2022-01, 2022-02, and 2022-03 updates.

leecher1337 commented 2 years ago

It sometimes can take a few days until the symbols appear on symbol server. See also https://github.com/leecher1337/ntvdmx64/issues/190 So: https://www.youtube.com/watch?v=RNJ9pet2scY

They don't change the files necessary for the loader on every update, so it's not always necessary to update the symbols, but as it seems they changed kernel32.dll once again and currently no symbols available.

leecher1337 commented 2 years ago

According to user, symbols were updated: https://github.com/leecher1337/ntvdmx64/issues/190#issuecomment-1123311632

bilditup1 commented 2 years ago

Yup! Just came back here to say that they do in fact appear to have updated it, I didn't bother checking if it worked again until today. It might be a good idea to put a little warning to this effect regarding symbols and Patch Tuesday kernel32.dll updates on the main page?

bilditup1 commented 2 years ago

Awesome! Thanks again for all your work on this!