所有已安装文件的 VMware Tools 列表

逆向工程 虚拟机
2021-07-02 11:48:39

我倒车,其检测抗VMware的机制VGAuthService.exevmtoolsd.exe以及一些注册,我已经照顾和一些司机从C:\Windows\System32\drivers\vm...我删除C:\Program Files\VMware文件夹,这些驱动程序,杀害VGAuthService.exevmtoolsd.exevm3dservice.exe过程,但它仍然检测到,这意味着我失去了一些东西。但是,当我卸载 VMware Tools 时,即使没有重新启动机器,也没有检测到它。

是否有工具/或方法可以查找 VMware Tools 安装在磁盘上放置的文件、它修改的内容等?我记得有一个工具“Orca”对 .MSI 文件很有用,但在这种情况下不是。

我的虚拟机:

VMware® Workstation 15 Pro
15.5.5 build-16285975
2个回答

可能它正在检查驱动程序(例如网卡、鼠标或显示器)或注册服务(即使它没有运行)。卸载前后检查设备和服务列表。

了解安装程序的第一步是确定安装程序是用什么产品创建的,然后查看是否有任何已知的提取命令行。Universal Extractor 2等工具也可以帮助自动执行此操作。在这种情况下,如果您使用ProcMon等工具,您可以看到 VMWare 的 setup.exe 提取 MSI 并执行它。

我们可以将管理员安装命令行传递给 setup.exe,然后将其传递给提取 MSI 的 Windows Installer msiexec.exe。VMWare 在从与 VMware Workstation 捆绑的 VMware Tools提取驱动程序中也记录了这一点

setup /A /P C:\setup

这会将文件与 MSI 一起输出到 C:\setup。然后,您可以浏览文件夹结构以识别文件,或使用 MSI 编辑工具(例如ORCA)打开 MSI 以查看注册表和自定义操作。

另请注意,还有更多低级选项,然后只需查找文件/驱动程序来检测 VMWare 中的运行情况,例如根据确定软件是否在 VMware 虚拟机中运行的机制

  • 测试 CPUID 管理程序存在位 测试虚拟 BIOS
  • DMI 信息和管理程序端口

使用 CPU id 的示例:

int cpuid_check() {
    unsigned int eax, ebx, ecx, edx;
    char hyper_vendor_id[13];
    cpuid(0x1, & eax, & ebx, & ecx, & edx;;
        if (bit 31 of ecx is set) {
          cpuid(0x40000000, & eax, & ebx, & ecx, & edx;; memcpy(hyper_vendor_id + 0, & ebx, 4); memcpy(hyper_vendor_id + 4, & ecx, 4); memcpy(hyper_vendor_id + 8, & edx, 4); hyper_vendor_id[12] = '\0';
              if (!strcmp(hyper_vendor_id, "VMwareVMware")) return 1; // Success - running under VMware         } 

使用 DMI 信息:

int dmi_check(void) {
    char string[10];
    GET_BIOS_SERIAL(string);
    if (!memcmp(string, "VMware-", 7) || !memcmp(string, "VMW", 3)) return 1; // DMI contains VMware specific string.         else                 return 0; }