检测运行环境是否为虚拟机
很多病毒,都是存在反调试,反虚拟机的情况,为了防止专业人员进行一个底层调试,导致你的免杀失效,所以我们来做一个简单的检测是否自己在虚拟机中
环境 vsstudio 2022
源代码已上传至github:call-xor/examine-vmware-and-vbox (github.com)(持续更新)
打开vsstudio
Ⅰ:反调试
1:函数IsDebuggerPresent()
根据windows api中查看,在debugapi.h文件中,用法是直接BOOL IsDebuggerPresent();当前有进程调试器上下文中运行,返回的是非零,如果没有,那么返回0,这个是本地调试,就是正常在自己的子进程下运行,主进程是调试器,那么就返回的值不为0,那么则可以检测出来,该软件正在被调试。
2:CheckRemoteDebuggerPresent()
这个函数,看上面那张图片,也就都知道了是是否被远程调试的函数,参数是句柄和指定的进程,函数城管,返回的是非0如果不是那么返回的是0
所以这两个是是否被调试的函数,那么我们可以按照这个去写,最后写出的成果,会是这样,当然输出的可以自己改变。
实例:
主题操作看github