Vmware 的后门 (原文由coolq发表,文章转载自他的博客)

本文详细介绍了Vmware后门的工作原理,包括其IO端口0x5658的使用,以及如何通过特定指令调用不同功能,如获取CPU速率、宿主机剪贴板数据等。此外,还提到了利用该后门进行检测VMM的简单代码示例,以及在不同虚拟化平台上的行为差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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, %
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值