MsRdpEx icon indicating copy to clipboard operation
MsRdpEx copied to clipboard

Crash on Windows 8.1 32bit

Open MarekKnapek opened this issue 1 year ago • 7 comments

Steps to reproduce.

  • open crappy old laptop that I'm using as a RDP thin client
  • install MsRdpEx using the MSI installer
  • double click on some *.rdp file
  • crash

Exception thrown at 0x00000000 in mstscex.exe: 0xC0000005: Access violation executing location 0x00000000.

MarekKnapek avatar Aug 12 '24 22:08 MarekKnapek

I'll be frank: I only added x86 support because someone complained they "might need it" and didn't want to be bothered with people asking for it. The fact is that the x86 binaries haven't properly worked in a long while and nobody noticed, kind of proving my point. Also, mstsc detects when the 32-bit executable is launched on 64-bit Windows and relaunches the correct one, and I haven't API hooked that to force 32-bit to work.

Also, Windows 8.1 is EOL now?

awakecoding avatar Aug 13 '24 12:08 awakecoding

Yes, Windows 8.1 might be EOL. Sooo... how should this issue proceed? Is adding 32bit support too much difficult / inconvenient for you? Is support for old OS too much difficult / inconvenient for you? If yes, I suggest adding this information to the documentation and to the installer, informing the user that they are using your product on unsupported platform. Otherwise, if you are providing 32bit binaries, they better work as advertised. I'm C / C++ developer myself, maybe I could help you diagnose the root cause of this problem and help you fix it, if you are interested.

MarekKnapek avatar Aug 13 '24 14:08 MarekKnapek

I just fixed the calling conventions on the API hooks (https://github.com/Devolutions/MsRdpEx/tree/x86-fixes), which I know was responsible for most of the problems. Now let me see if I can API hook IsWow64Process to force the 32-bit mstsc.exe to launch on 64-bit Windows.

awakecoding avatar Aug 13 '24 17:08 awakecoding

ok so I merged the calling convention fixes, but getting the 32-bit mstsc to run on 64-bit Windows will take more work. I pushed an attempt at hooking IsWow64Process but I'm hitting a crash in Win32DpiApi::CreateInstance - keep in mind that 32-bit mstsc may not be working properly on 64-bit Windows because it's completely untested and unsupported. However, if you try running a build with the calling convention fixes on true 32-bit Windows, there's a chance it might work. I'll accept fixes if you can find the time to do the necessary work, but I won't be spending too much time on it myself, it's low priority for me.

image

awakecoding avatar Aug 13 '24 18:08 awakecoding

Instacrash on win7 x86.

pachuco avatar Oct 29 '25 11:10 pachuco

@pachuco I can drop x86 support, the only reason why I'm still building it is to avoid getting a feature request for x86 support, knowing very well it's not in a functional state. Either that or someone can fix all the broken calling convention declarations.

awakecoding avatar Oct 29 '25 17:10 awakecoding

That would require knowing what I am doing.

pachuco avatar Oct 29 '25 17:10 pachuco