leecher1337 / ntvdmx64

Run Microsoft Windows NTVDM (DOS) on 64bit Editions
820 stars 81 forks source link

winxp ntvdm #219

Open steom opened 1 year ago

steom commented 1 year ago

I have a dos executable that mounts and unmounts unc network path connections internally. in the winxp ntvdm that's no problem, the net use are correctly mounted and dismounted at win os level

the windows 7 ntvdm drop the needed functions call for unc network share. so i still need to use winxp.

the behavior of ntvdmx64 is the same as window 7.

I assume ntvdmx64 is based on the broke ntvdm of windows 7 instead of the ntvdm of winxp.

would it be possible to port the winxp ntvdm ?

leecher1337 commented 1 year ago

When you execute a Windows command from DOS in NTVDM, it just executes the windows command as-is but lets it run on the current console. So there is no interference of the NTVDM here. If the "NET USE" on Win 7 works differently than the one under XP, then oyu are out of luck. You simply have to make it work in Windows first, and if it works there, you can use the same command from DOS.

So NET USE has nothing to do with NTVDM whatsoever! "NET" a Windows executable not a DOS executable!

One common problem under win 7 that wasn't an issue with Windows XP is the user account separation, i.e. let's say you mount a network drive with "Net use" as a normal user, you won't be able to access the mapped network drive if you are running you application with elevated user rights (i.e. "Run as Administrator") and vice versa, a network drive that you map as elevated administrator won't be available for applications running with normal user rights, so you have tot take this into account.

steom commented 1 year ago

in win Vista ntvdm, this msdos application is still able to mounts and unmounts unc network path using internal calls. in win 7 ntvdm microsoft removed the needed calls.

ntvdmx64 is based on which ntvdm source version? maybe the thing will works using the loader ldntvdm.dll version 5.1 of xp

leecher1337 commented 1 year ago

Ntvdmx64 is based on windows XP NTVDM source.

I think I now anderstand what you mean: My guess is that you are referring to VDMREDIR functionality where certain calls indeed have been removed.

See: https://github.com/leecher1337/ntvdmx64/commit/576eafa6c4a55823aee4f5f26285675c95f0eb4b

steom commented 1 year ago

Exactly. some LAN Manager APIs for the VDM redirector are dropped after WinXP, so some advanced dos network applications don't work anymore even with Ntvdmx64

leecher1337 commented 1 year ago

Do you have a DOS-Application available for testing?

leecher1337 commented 1 year ago

Unfortunately, you didn't supply an application for testing, so I was unable to check. I cluttered together a vdm redirector and used DLLs in order to potentially work with Win 7, but I'm unable to test the implementation. You can try these custom made DLLs by copying all of them to the SysWOW64 directory replacing the shipped VDMREDIR.DLL. Maybe you are lucky and it works. Please give feedback so that I may be able to add them to NTVDMx64 in the unlikely case that it works. vdmredir.zip

Btw.: The DLLs should also work on 32bit Win 7 with original NTVDM.