我正在反转一个在 Vmware 中运行不正常的文件。来自 AEP 的代码如下所示:
POP EDI ; value of edi is 0x7C816D4F kernel32.7C816D4F
PUSH EAX ;value of eax is 0
INC EBP ;value of ebp was 0x12FFF0
IN EAX,DX ;value of DX is 0xEB94
AAS
IN AL,0BF
DEC ESP
我认为从用户模式调用特权指令(IN)是不允许的,因此执行失败。IN 用于反 VM 代码,但它需要特定的值(EAX 等中的 VMXh 端口值),但在我的情况下它没有被使用。
我的问题是,它是某种反调试还是文件损坏了,它会在非 VM 机器上运行(在我的情况下是 XP)。
最后,如果加壳程序使用我上面提到的方法,即从用户模式调用 IN 进行反反转,样本如何在真机上运行(因为在这种情况下,特权指令也将在用户模式下调用)。