Quasar icon indicating copy to clipboard operation
Quasar copied to clipboard

UAC Causes Remote Desktop to freeze

Open xuxuedong opened this issue 6 years ago • 11 comments

stuck when i open task manager on remote desktop at that moment, the cpu consume is larger than the normal qq 20181209092428

tested server os: win10_pro_x64_cn test client os: win8.1_pro_x64_cn

xuxuedong avatar Dec 09 '18 01:12 xuxuedong

Could you post your log so we can further help?

Aholicknight avatar Dec 10 '18 19:12 Aholicknight

log? windows event log? there is none log file within the current directory

xuxuedong avatar Dec 11 '18 07:12 xuxuedong

as i see, it isn't stuck, the picture is changing, just unresponsible when i click after started task manager

xuxuedong avatar Dec 11 '18 08:12 xuxuedong

but when i tested: server os: win10_pro_x64_cn client os: xp_pro_x86_cn i use remote desktop to operate xp, it's responsible when i click after i started task manager

in addition, i found the cpu consume is normal

xuxuedong avatar Dec 11 '18 08:12 xuxuedong

So is this issue fixed?

Aholicknight avatar Dec 11 '18 14:12 Aholicknight

@trollmad3 No, it's not on Windows 8.1.

MaxXor avatar Dec 11 '18 14:12 MaxXor

When I get home, I will create a windows 8.1 virtual machine and see if I could do anything to fix this.

Aholicknight avatar Dec 11 '18 14:12 Aholicknight

This behavior also occurs when opening chrome browser (temporarily).

mystyq avatar Dec 11 '18 21:12 mystyq

I believe the problem is related to the mouse_event WinAPI calls. If you run the task manager as administrator it seems to work. mouse_event is deprecated and I wonder if switching to SendInput calls would fix this.

mystyq avatar Dec 11 '18 22:12 mystyq

@mystyq yeah, you are right, i tested the client run as admin on win8.1, it's no problem

xuxuedong avatar Dec 12 '18 01:12 xuxuedong

Adding to mystyq's answer/solution. User32 has plenty of undocumented features for injecting keyboard or mouse input. Even for touch input.

See user32!InjectDeviceInput, user32!InjectGenericHidInput, user32!InjectKeyboardInput, user32!InjectMouseInput, user32!InjectPointerInput, user32!InjectTouchInput

Here's some sample code for Visual Basic .NET https://github.com/Nukepayload2/Nukepayload2.Diagnostics.InputInjection/blob/00600d8a22e9ea1ba8ef284a0e2c6ed552d9192e/Nukepayload2.Diagnostics.InputInjection/Preview/UnsafeNativeMethods.vb

And I took the time to write a demonstration in C# https://github.com/gigajew/KeyboardInjection

ghost avatar Jan 07 '19 03:01 ghost