[转载] 利用pushfd/popfd检测虚拟机(cpu模拟器)
执行popfd前:EFLAGS = 00200202[ESP] = FFFFFAFF执行popfd后:EFLAGS = 00244AD7不等于[ESP]中的FFFFFAFF,什么原因导致的呢?POPFD不是简单把[ESP]赋值给EFLAGS某些虚拟机(CPU模拟器)简单的把[ESP]值pop给了ELF,导致popfd后-》再pushfd-》再pop出来的值是相同的,实际如上,应该是不同的,popfd只对某些位有影响。这应该算是某些CPU模拟器的BUG....
转载
2020-09-25 10:26:17 ·
278 阅读 ·
0 评论