-
Notifications
You must be signed in to change notification settings - Fork 428
Open
Description
Description
I test I/O interception for vmware backdoor instruction in 0x5658, however when I activate VM-Exit I/O port 0x5658 crash vmtoolsd.exe on VMWare workstation 12
Expected behavior
no crash and log instruction IN 0x5658
Actual behavior
always crash vmtools when load driver
Steps to reproduce the problem
modify code in VmpBuildIoBitmaps, add one line RtlSetBits(&bitmap_a_header, 0x5658, 0x1);
build and load HyperPlatform dirver
crash...
Specifications
- OS version:
host Windows 7 x64
guest Windows 7 x64 - Hardware:
VMware 12 - Anything else:
some log found vmware-vmsvc.log
[Sep 03 15:23:11.720] [ message] [vmsvc] backtrace[00] frame 0x01a7f3f8 IP 0x01a7f440 params 0x4f4c4354 0x80000000 0x7fef8fdaf42 0x338 [no module data] ???
[Sep 03 15:23:11.720] [ message] [vmsvc] backtrace[01] frame 0x01a7f400 IP 0x0096c2f0 params 0x80000000 0x7fef8fdaf42 0x338 0 [no module data] ???
[Sep 03 15:23:11.720] [ message] [vmsvc] backtrace[02] frame 0x01a7f408 IP 0x4f4c4354 params 0x7fef8fdaf42 0x338 0 0x1a7f628 [no module data] ???
[Sep 03 15:23:11.720] [ message] [vmsvc] backtrace[03] frame 0x01a7f410 IP 0x80000000 params 0x338 0 0x1a7f628 0x1 [no module data] ???
[Sep 03 15:23:11.736] [ message] [vmsvc] backtrace[04] frame 0x01a7f418 IP 0x7fef8fdaf42 params 0 0x1a7f628 0x1 0x564d5868 [C:\Program Files\VMware\VMware Tools\vmtools.dll base 0x000007fef8f80000 0x0001:0x0000000000059f42] GuestApp_GetConfPath
when decompile vmtools.dll crash in address 0x7fef8fdaf42
.text:000007FEF8FDAF38 mov [r11-38h], r14w
.text:000007FEF8FDAF3D call Backdoor
.text:000007FEF8FDAF42 test byte ptr [rsp+68h+var_36], 1
.text:000007FEF8FE1A00 Backdoor proc near ; CODE XREF: sub_7FEF8FDAEF0+4D�p
.text:000007FEF8FE1A00 ; sub_7FEF8FDAEF0+7D�p ...
.text:000007FEF8FE1A00 mov eax, 5658h
.text:000007FEF8FE1A05 mov dword ptr [rcx], 564D5868h
.text:000007FEF8FE1A0B mov [rcx+18h], ax
.text:000007FEF8FE1A0F jmp sub_7FEF8FE1A60
.text:000007FEF8FE1A0F Backdoor endp
.text:000007FEF8FE1A60 sub_7FEF8FE1A60 proc near ; CODE XREF: Backdoor+F�j
.text:000007FEF8FE1A60 ; DATA XREF: .pdata:000007FEF903F868�o
.text:000007FEF8FE1A60
.text:000007FEF8FE1A60 var_20 = qword ptr -20h
.text:000007FEF8FE1A60
.text:000007FEF8FE1A60 push rbx
.text:000007FEF8FE1A62 push rsi
.text:000007FEF8FE1A63 push rdi
.text:000007FEF8FE1A64 mov rax, rcx
.text:000007FEF8FE1A67 push rax
.text:000007FEF8FE1A68 mov rdi, [rax+28h]
.text:000007FEF8FE1A6C mov rsi, [rax+20h]
.text:000007FEF8FE1A70 mov rdx, [rax+18h]
.text:000007FEF8FE1A74 mov rcx, [rax+10h]
.text:000007FEF8FE1A78 mov rbx, [rax+8]
.text:000007FEF8FE1A7C mov rax, [rax]
.text:000007FEF8FE1A7F in eax, dx
.text:000007FEF8FE1A80 xchg rax, [rsp+20h+var_20]
.text:000007FEF8FE1A84 mov [rax+28h], rdi
.text:000007FEF8FE1A88 mov [rax+20h], rsi
.text:000007FEF8FE1A8C mov [rax+18h], rdx
.text:000007FEF8FE1A90 mov [rax+10h], rcx
.text:000007FEF8FE1A94 mov [rax+8], rbx
.text:000007FEF8FE1A98 pop qword ptr [rax]
.text:000007FEF8FE1A9A pop rdi
.text:000007FEF8FE1A9B pop rsi
.text:000007FEF8FE1A9C pop rbx
.text:000007FEF8FE1A9D retn
.text:000007FEF8FE1A9D sub_7FEF8FE1A60 endp