VMs/CentOS7/CentOS7.vmx" hard | soft强制关闭虚拟机(相当于直接关电源) | 正常关闭虚拟机 # vmrun reset "/var/lib/vmware/Shared /CentOS7.vmx" hard | soft挂起虚拟机(可能相当于休眠) # vmrun pause "/var/lib/vmware/Shared VMs/CentOS7/CentOS7.vmx "暂停虚拟机 # vmrun unpause "/var/lib/vmware/Shared VMs/CentOS7/CentOS7.vmx"停止暂停虚拟机 # vmrun list 列出正在运行的虚拟机 .vmx" snapshotName创建一个快照 # vmrun -T ws reverToSnapshot "/var/lib/vmware/Shared VMs/CentOS7/CentOS7.vmx 删除一个快照 有了上面的命令后就不需要每次启动虚拟机都要在windows中打开VMware来远程启动了,可以在命令行下用命令启动: vmrun -T ws start "/var/lib/vmware
net start "VMUSBArbService" net start "VMwareHostd" "D:\ApplicationFiles\System\VMware Workstation\vmrun.exe 为虚拟机安装目录/ps:如果你把vmrun路径加入了环境变量path后,可以直接使用命令vmrun F:\virtualMachine\ubuntu15.1X64\ubuntu15.1X64.vmx 开启虚拟机 vmrun start "F:\virtualMachine\ubuntu15.1X64/ubuntu15.1X64.vmx" nogui ? 附录: windows命令行里面直接输入 sc和net (net help)查看命令信息 切换到vm虚拟机安装路径,输入vmrun,可以查看 vmrun命令详细信息 以下摘自系统 ----------- ============vmrun命令======== D:\ApplicationFiles\System\VMware Workstation>vmrun vmrun version 1.15.0
第一步,编写脚本 首先编写 自启 脚本 vm_start.bat ,内容如下: "C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe" start "E:\Virtual Machines\CentOS 7 64 位\CentOS 7 64 位.vmx" nogui 其中前面部分替换为自己 VMware 安装目录下的 vmrun.exe 如果需要关机自动关闭脚本 vm_stop.bat ,内容如下: "C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe" stop "E:
第一步,编写脚本 首先编写 自启 脚本 vm_start.bat ,内容如下: "C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe" start "E:\Virtual Machines\CentOS 7 64 位\CentOS 7 64 位.vmx" nogui 其中前面部分替换为自己 VMware 安装目录下的 vmrun.exe 如果需要关机自动关闭脚本 vm_stop.bat ,内容如下: "C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe" stop "E:
VMRUN 指令运行的参数是一个物理地址指针,其指向一个 Virtual Machine Control Block (VMCB) 的内存数据结构, 该数据结构包含了启动和控制一个虚拟机的全部信息。 RAX 寄存器也在其中,因为 RAX 在 VMM 执行 VMRUN 时是用来存放VMCB 物理地址的。 注入的中断或异常在 VMRUN 进入“guest”模式后立即执行,就象完全发生在虚拟机内一样。 提供VMEXIT信息的字段。 VMRUN 所保存的 VMM 的 CPU状态的 CS:RIP 实际上就是 VMM 的代码中 VMCB 的下一个指令,当虚拟机因某种原因而导致 #VMEXIT 时,VMM 会从 VMRUN 后的一条指令开始执行 和 VMSAVE 可以让 VMM 的实现对“guest”进入和退出的过程进行优化,让多数情况下只使用 VMRUN 进行最少的状态保存和恢复。
0x02:分析 VmRun 和 DispatchCode 的流程 对于我们来说,初始化已经详细看过了,最后 flag 的判断那是后话。因为,我们需要了解的是它具体的执行流程。 而执行流程主要是在 VmRun 和它其中的 DispatchCode 两个函数。这两个函数分别如下。 VmRun 函数的代码: unsigned __int64 __fastcall VmRun(VM *pVm) { unsigned __int64 v2; // [rsp+18h] [rbp-8h = 0xF4 ) DispatchCode(pVm); return __readfsqword(0x28u) ^ v2; } 可以看到,VmRun 主要就是一个 while 循环,大多数都是一个
-O - -q 地址;sleep 1; done vmware自动启动脚本vm_start.bat "C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe " start "D:\VM\node1\CentOS-node1.vmx" "C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe"
v4 = __readfsqword(0x28u); pVm = 0; puts("Please input something:"); VmInit((VM *)&pVm); VmRun 接着是 sub_E0B 改为了 VmRun 函数,代码如下: unsigned __int64 __fastcall VmRun(VM *pVm) { unsigned __int64 v2; //
: @七禾页话 使用VMWare虚拟机的一个劣势就是每次关机后,虚拟机就关机了,docker的运行就停止了,所以每次都要开机后再运行docker run来启动,因此为了方便,写一个小的批处理脚本,调用vmrun
其他的bat脚本都是辅助,主要是VMWare多vm的管理用vmrun确实方便许多。
列出网络设备: $ vmrun listHostNetworks Total host networks: 4 INDEX NAME TYPE DHCP