低调npc 发表于 2025-2-6 00:14:46

第三课 剖析检测程序在虚拟机中运行的方法

第三课 剖析检测程序在VM虚拟机中运行的方法

我打算用汇编的形式来完成这个功能并写入到易语言中

我们要知道一个前提,VM虚拟机有一个特殊的端口0x5658,如果向这个端口发送VMXh的ASCll码也就是0x564D5868,它会返回0x564D5868这个值
这就是检测VM虚拟机的一个原理,知道了原理,我们开始写代码
我先用汇编的形式写出
mov eax,0x564D5868   ;我们先将这个数传给eax
mov edx,0x5658            ;将端口传给edx
in eax,edx                     ;从端口处得到数据eax
cmp eax,0x564D5868   ;比较一下返回的值是否等于0x564D5868
现在转成易语言就可以这么写
.版本 2

.子程序 VMWare检测, 整数型
.局部变量 返回值

置入代码 ({ 184, 104, 88, 77, 86, 187, 0, 0, 0, 0, 185, 10, 0, 0, 0, 186, 88, 86, 0, 0, 237, 129, 251, 104, 88, 77, 86, 15, 148, 69, 252 })
返回 (返回值)

注意!虚拟机检测对抗随着时间的推移这类方法可能不管用,甚至会隐藏这些特征,这就需要自行探索
虚拟机特征还是有很多的,自己去分析分析还是有很多的收获的,我在这里就不过多提供思路了,避免引火烧身
这类方法对过检测虚拟机并没有好的检测效果,攻防无绝对,只提供部分思路
页: [1]
查看完整版本: 第三课 剖析检测程序在虚拟机中运行的方法