积分信息:
无忧币:116058
交易币:2147478427
贡献:999999
|
<
马上注册,结交更多好友,享用更多功能,让你轻松玩转无忧吧。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
C++实现VMWARE虚拟机反程序检测虚拟机功能源码分享,VMware强化VM检测缓解加载程序。目前,仅支持Windows(vista~win10)x64来宾。
它使VMProtect 3.2、Safengine和Themida(反虚拟机功能)无法检测到VMware客户机。
VmLoader驱动程序在运行时修补SystemFirmwareTable,它删除了所有可检测的签名,如“VMware”、“Virtual”、“VMware”。
使用方法:
需要Visual Studio 2015/2017和Windows驱动程序工具包10。
使用Visual Studio打开VmLoader.sln 2015/2017
将VmLoader构建为x64/版本。(目前不支持x86)
如果你想在测试签名模式下加载它,记得测试签名“bin/vmloader.sys”。
注意:
不要安装vmtools,请改用TeamViewer/AnyDesk/mstsc/VNC查看器!
虚拟机VMX文件修改如下:
- hypervisor.cpuid.v0 = "FALSE"
- board-id.reflectHost = "TRUE"
- hw.model.reflectHost = "TRUE"
- serialNumber.reflectHost = "TRUE"
- smbios.reflectHost = "TRUE"
- SMBIOS.noOEMStrings = "TRUE"
- isolation.tools.getPtrLocation.disable = "TRUE"
- isolation.tools.setPtrLocation.disable = "TRUE"
- isolation.tools.setVersion.disable = "TRUE"
- isolation.tools.getVersion.disable = "TRUE"
- monitor_control.disable_directexec = "TRUE"
- monitor_control.disable_chksimd = "TRUE"
- monitor_control.disable_ntreloc = "TRUE"
- monitor_control.disable_selfmod = "TRUE"
- monitor_control.disable_reloc = "TRUE"
- monitor_control.disable_btinout = "TRUE"
- monitor_control.disable_btmemspace = "TRUE"
- monitor_control.disable_btpriv = "TRUE"
- monitor_control.disable_btseg = "TRUE"
- monitor_control.restrict_backdoor = "TRUE"
[color=rgb(4, 183, 242) !important]复制代码
上面添加完成后,如果您在scsi0插槽(第一个插槽)有一个SCSI虚拟磁盘作为系统驱动器,请记得添加
- scsi0:0.productID = "Whatever you want"
- scsi0:0.vendorID = "Whatever you want"
- 我自己的代码如下
- scsi0:0.productID = "Tencent SSD"
- scsi0:0.vendorID = "Tencent"
[color=rgb(4, 183, 242) !important]复制代码
将虚拟机的MAC地址改成以下地址之外的任何地址:
- TCHAR *szMac[][2] = {
- { _T("\x00\x05\x69"), _T("00:05:69") }, // VMWare, Inc.
- { _T("\x00\x0C\x29"), _T("00:0c:29") }, // VMWare, Inc.
- { _T("\x00\x1C\x14"), _T("00:1C:14") }, // VMWare, Inc.
- { _T("\x00\x50\x56"), _T("00:50:56") }, // VMWare, Inc.
- };
[color=rgb(4, 183, 242) !important]复制代码
## C++实现VMWARE虚拟机反程序检测虚拟机功能源码分享
在现代软件开发和系统安全领域,虚拟机技术已成为一种重要的工具。VMware作为领先的虚拟化平台之一,提供了强大的虚拟环境支持。然而,随着虚拟化技术的发展,恶意软件也开始利用虚拟机来逃避检测和追踪。为了应对这一挑战,本文将介绍如何使用C++编写一个简易的VMware虚拟机反程序检测工具,并分享相关代码示例。
### 一、背景与需求
虚拟机检测技术是信息安全领域中的重要研究方向之一。通过检测目标系统是否运行在虚拟机环境中,可以帮助安全分析人员更好地了解攻击者的行为模式和技术手段。对于VMware虚拟机,常见的检测方法包括检查CPU指令执行、操作系统特性以及注册表信息等。
本文将重点介绍如何通过C++实现对VMware虚拟机的基本检测功能。我们将使用Windows API提供的相关函数来获取系统信息,并结合一些简单的逻辑判断来实现初步的虚拟机检测。
### 二、实现思路
1. **获取系统信息**:首先需要获取当前系统的基本信息,如处理器类型、内存大小等。
2. **分析处理器特征**:不同物理机和虚拟机环境下,处理器的特征可能有所不同。可以通过查询特定的寄存器值或执行某些特权指令来判断是否处于虚拟机环境。
3. **检查系统文件**:某些虚拟机环境会在系统文件中留下特定的标记,通过检查这些文件的存在与否也可以辅助判断。
4. **综合判断**:将上述多种方法的结果进行综合分析,以提高检测的准确性。
### 三、关键技术点
1. **Windows API**:用于获取系统信息和执行系统命令。
2. **汇编语言**:在某些情况下,可能需要直接操作CPU寄存器或执行特权指令,这时可以使用内嵌汇编来完成。
3. **字符串处理**:用于解析系统文件内容或查找特定的字符串标记。
### 四、代码示例
以下是一个简单的C++程序框架,展示了如何获取系统信息并进行初步的虚拟机检测。请注意,这只是一个基础示例,实际的检测逻辑可能需要根据具体情况进行调整和完善。
```cpp
#include
#include
#include
// 获取处理器信息
bool GetProcessorInfo(std::string& processorType) {
// 这里只是演示,实际应使用更复杂的方法获取处理器详细信息
processorType = "Intel"; // 假设处理器为Intel
return true;
}
// 检查系统文件是否存在(示例)
bool CheckSystemFile(const std::string& filePath) {
// 这里只是演示,实际应使用文件操作API进行检查
return false; // 假设文件不存在
}
int main() {
std::string processorType;
if (!GetProcessorInfo(processorType)) {
std::cerr
最后以管理员权限在虚拟机来宾中运行install.bat
若启动服务时发生错误,请使用DbgView捕获内核调试输出。您可以使用DbgView输出信息和附加的ntoskrnl.exe发布问题。
如果没有发生错误,那么一切正常。


|
无忧技术吧-免责声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关。一切关于该内容及资源商业行为与www.92wuyou.cn无关。
2、本站提供的一切资源内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。
3、本站信息来自第三方用户,非本站自制,版权归原作者享有,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
4、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
5、无忧技术吧(www.92wuyou.cn)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。无忧技术吧不承担任何因为技术滥用所产生的连带责任。无忧技术吧内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或QQ与我们联系处理。
6、如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵犯你版权的,请邮件与我们联系删除(邮箱:whctwlgzs@foxmail.com),本站将立即改正。
联系方式:
站长邮箱:whctwlgzs@foxmail.com
站长QQ:4040068
|