[讨论]应用程序如何检测自身是否运行于虚拟机环境
[讨论]应用程序如何检测自身是否运行于虚拟机环境信息来源:邪恶八进制信息安全团队([url=http://www.eviloctal.com/]www.eviloctal.com[/url])
议题作者:dhbellwyc
如果整个操作系统都运行于虚拟机当中时,该操作系统上运行的应用程序有没有办法能够检测到自身是否运行于虚拟机环境中,这方面有什么思路?
我思考了很久发现根本就没有什么办法。根据虚拟机的理论,当一个CPU的寄存器和存储器资源被整个虚拟了以后,别说应用程序可能就连运行于虚拟机中操作系统都未必知道自己的真实环境,如果这样的话,考虑反调试就是不可能的事,只要虚拟机软件的调试功能够强。
不知道我上面的观点有没有错,有关应用程序检测自身是否运行于虚拟机环境中的问题,不知道有没有人能给点提示之类的。我现在一点头绪都没有。
帖子5 精华[url=http://forum.eviloctal.com/digest.php?authorid=144579]0[/url] 积分9 阅读权限40 在线时间0 小时 注册时间2007-10-20 最后登录2008-6-13 [url=http://forum.eviloctal.com/space.php?action=viewpro&uid=144579]查看详细资料[/url]TOP [url=http://www.google.cn/search?q=鲜花预定&client=pub-0204114945524753&forid=1&prog=aff&ie=UTF-8&oe=UTF-8&cof=GALT%3A#008000;GL%3A1;DIV%3A336699;VLC%3A663399;AH%3Acenter;BGC%3AFFFFFF;LBGC%3A336699;ALC%3A0000FF;LC%3A0000FF;T%3A000000;GFNT%3A0000FF;GIMP%3A0000FF;FORID%3A1&hl=zh-CN]爱要怎么说出口[/url]
[url=http://forum.eviloctal.com/space-uid-6589.html]kylin[/url] [img]http://forum.eviloctal.com/customavatars/6589.gif[/img]
荣誉会员
[img]http://forum.eviloctal.com/images/default/star_level2.gif[/img][img]http://forum.eviloctal.com/images/default/star_level1.gif[/img][img]http://forum.eviloctal.com/images/default/star_level1.gif[/img] 一般是利用 虚拟机的特性来检测 虚拟机是否存在的
另外据说 也可以检测 某些代码的执行时间来判断是否在虚拟机内
另:给出几个检测 虚拟机的代码
复制内容到剪贴板
代码:
//检测 VPC的代码
#include <windows.h>
// IsInsideVPC's exception filter
DWORD __forceinline IsInsideVPC_exceptionFilter(LPEXCEPTION_POINTERS ep)
{
PCONTEXT ctx = ep->ContextRecord;
ctx->Ebx = -1; // Not running VPC
ctx->Eip += 4; // skip past the "call VPC" opcodes
return EXCEPTION_CONTINUE_EXECUTION; // we can safely resume execution since we skipped faulty instruction
}
// high level language friendly version of IsInsideVPC()
bool IsInsideVPC()
{
bool rc = false;
__try
{
_asm push ebx
_asm mov ebx, 0 // Flag
_asm mov eax, 1 // VPC function number
// call VPC
_asm __emit 0Fh
_asm __emit 3Fh
_asm __emit 07h
_asm __emit 0Bh
_asm test ebx, ebx
_asm setz [rc]
_asm pop ebx
}
// The except block shouldn't get triggered if VPC is running!!
__except(IsInsideVPC_exceptionFilter(GetExceptionInformation()))
{
}
return rc;
}
复制内容到剪贴板
代码:
//检测 VMWare的代码
bool IsInsideVMWare()
{
bool rc = true;
__try
{
__asm
{
push edx
push ecx
push ebx
mov eax, 'VMXh'
mov ebx, 0 // any value but not the MAGIC VALUE
mov ecx, 10 // get VMWare version
mov edx, 'VX' // port number
in eax, dx // read port
// on return EAX returns the VERSION
cmp ebx, 'VMXh' // is it a reply from VMWare?
setz [rc] // set return value
pop ebx
pop ecx
pop edx
}
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
rc = false;
}
return rc;
}
帖子152 精华[url=http://forum.eviloctal.com/digest.php?authorid=6589]0[/url] 积分3681 阅读权限100 性别男 在线时间1005 小时 注册时间2005-6-27 最后登录2008-7-22 [url=http://forum.eviloctal.com/space.php?action=viewpro&uid=6589]查看详细资料[/url]TOP [url=http://www.google.cn/search?q=DHC化妆品&client=pub-0204114945524753&forid=1&prog=aff&ie=UTF-8&oe=UTF-8&cof=GALT%3A#008000;GL%3A1;DIV%3A336699;VLC%3A663399;AH%3Acenter;BGC%3AFFFFFF;LBGC%3A336699;ALC%3A0000FF;LC%3A0000FF;T%3A000000;GFNT%3A0000FF;GIMP%3A0000FF;FORID%3A1&hl=zh-CN]让女孩一夜变的更有女人味[/url]
[url=http://forum.eviloctal.com/space-uid-155161.html]doublej[/url] [img]http://forum.eviloctal.com/images/avatars/noavatar.gif[/img]
晶莹剔透§烈日灼然
页:
[1]