Vmware 的后门 (原文由coolq发表,文章转载自他的博客)
后门简介
Vmware 后门是 vmware 和 vmware tools 通信的一个接口。例如,vmware-checkvm 程序就是利用这个后门检测自己是否运行在 vmware 里。
这个后门开在 IO 端口 0x5658。利用这个后门时,必需:
l EAX = 0x564D5868 ( “VMXh” )
l EBX 为参数,一般不用。
l ECX 低 16 位为功能号。其实是一个函数数组的索引。Vmware 调用对应的函数处理后门请求。 这个函数数组共有
l 36 个元素,但某些没有定义。ECX 的高 16 位为功能参数。
l EDX = 0x5658 ( “VX” ),为 IO 端口号。
通过读端口 (in) 命令调用后门。
后门详细描述
0 未定义
1 getMhz 得到 CPU 速率
2 APM 函数族
3 getDiskGeo
4 getPtrLocation
5 setPtrLocation
6 得到宿主机剪贴板数据长度
7 读宿主机剪贴板数据
8 设置宿主机剪贴板数据长度
9 向宿主机剪贴板写数据
10 得到 vmware 版本
11 取设备信息
12 连接或断开设备
13 取 GUI 配置信息
14 设置 GUI 配置信息
15 取宿主机屏幕分辨率
16 未定义
17 未定义
18 osNotFound, vmware 提示插入引导盘
19 GetBiosUUID
20 取虚拟机内存大小
21 未定义
22 OS2 系统用到的一个函数
23 getTime,取宿主机时间
24 stopCatchup
25 未定义
26 未定义
27 未定义
28 initScsiIoprom
29 未定义
30 Message,通道函数族
31 rsvd0
32 rsvd1
33 rsvd2
34 ACPID 函数
35 未定义
应用
vmcall.s
vmcall.s 为 vm.c 提供 vmcall(uint32_t out[4],int cmd,uint32_t param) 函数,实现调用后门功能
.text
.align 2
.globl vmcall
.type vmcall,@function
vmcall:
pushl %ebp
movl %esp, %
后门简介
Vmware 后门是 vmware 和 vmware tools 通信的一个接口。例如,vmware-checkvm 程序就是利用这个后门检测自己是否运行在 vmware 里。
这个后门开在 IO 端口 0x5658。利用这个后门时,必需:
l EAX = 0x564D5868 ( “VMXh” )
l EBX 为参数,一般不用。
l ECX 低 16 位为功能号。其实是一个函数数组的索引。Vmware 调用对应的函数处理后门请求。 这个函数数组共有
l 36 个元素,但某些没有定义。ECX 的高 16 位为功能参数。
l EDX = 0x5658 ( “VX” ),为 IO 端口号。
通过读端口 (in) 命令调用后门。
后门详细描述
0 未定义
1 getMhz 得到 CPU 速率
2 APM 函数族
3 getDiskGeo
4 getPtrLocation
5 setPtrLocation
6 得到宿主机剪贴板数据长度
7 读宿主机剪贴板数据
8 设置宿主机剪贴板数据长度
9 向宿主机剪贴板写数据
10 得到 vmware 版本
11 取设备信息
12 连接或断开设备
13 取 GUI 配置信息
14 设置 GUI 配置信息
15 取宿主机屏幕分辨率
16 未定义
17 未定义
18 osNotFound, vmware 提示插入引导盘
19 GetBiosUUID
20 取虚拟机内存大小
21 未定义
22 OS2 系统用到的一个函数
23 getTime,取宿主机时间
24 stopCatchup
25 未定义
26 未定义
27 未定义
28 initScsiIoprom
29 未定义
30 Message,通道函数族
31 rsvd0
32 rsvd1
33 rsvd2
34 ACPID 函数
35 未定义
应用
vmcall.s
vmcall.s 为 vm.c 提供 vmcall(uint32_t out[4],int cmd,uint32_t param) 函数,实现调用后门功能
.text
.align 2
.globl vmcall
.type vmcall,@function
vmcall:
pushl %ebp
movl %esp, %