I encountered a situation where I wanted to run the old World of Warcraft (version 3.3.5a) over Remote Desktop Protocol (RDP) on my laptop and was presented with this error message:

wow 335a rdp error

https://github.com/Jnnshschl/WowRdpPatcher

I thought it would be worth a try to disable the error message because newer versions of World of Warcraft can run over RDP without a problem, and typically, it’s not an issue for other games either. So, I fired up Ghidra and searched for the error message string and possible RDP checks.

A typical way in Windows to check for RDP presence would involve calling this C++ function:

https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getsystemmetrics

1
GetSystemMetrics(0x1000); // 0x1000 = SM_REMOTESESSION

After a bit of reverse engineering, it became clear where the error message was triggered, causing WoW to shut down (0x76BA39):

1
2
3
4
5
6
7
8
9
CALL    GetRdpStatus
TEST    EAX, EAX
JZ      LAB_0076ba51
// This will be replaced by NOP instructions
PUSH    0xE34652 // the instruction we search for
MOV     EAX, 0xc
CALL    ShowErrorMessageAndExit
// -----------------------------------------
LAB_0076ba51:

I created a patcher that automatically locates the error message string and replaces the error message call with NOP instructions. You can find it here: WowRdpPatcher GitHub repository

Enjoy playing WoW over RDP!