虚拟机自省技术实践

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Hypervisor
KernelSpace
UserSpace
0x00 CPU IDTR 0x20 0x80 IDT
sys_getpid
Int 0x80 (EAX=20) (1) IDT VMM 32
(2) IDT (32*8 – 1 = 255) IDTR
(
ຫໍສະໝຸດ Baidu
)
EAX
(255)
(0) IDTR 32 (1)0x80 #GP(13 (2) INT 32 (2.1) #GP (2.2) INT GuestOS 0x80 ) EAX
IDT
0x0D(13) (#GP)
VMM
API
getpid (glibc )
Int 0x80 Eax=20
0x80
Eax=20
getpid
-SYSENTER
SYSENTER_CS_MSR (1) SYSENTER CPU CS(ring0) (2) CS SYSENTER_IP_MSR EIP(ring0) #GP NULL VMM CS/EIP/ESP ring0
(1) (2) NULL SYSENTER_CS_MSR
SYSENTER_ESP_MSR
ESP(ring0)
-SYSCALL
EFER 0 SCE SYSCALL/SYSRET
SCE 6
SYSCALL VMM
#UD
• Nitro https://github.com/pfohjo • IBM http://www.ibm.com/developerworks/cn/linux/kernel/l-k26ncpu/ index.html\ • -
2016.04.06
p p p p
— *—
Virtual Machine Introspection
VMI
(1) (2)
(1) (2)
Guest OS
VM
Guest OS
VM (1)CPU


VMM
(2) (3)
/
(1) (2) GuestOS)(
Guest OS (1) INT 0x80 INT 0x2E (2)SYSENTER/SYSEXIT (Intel) (3)SYSCALL/SYSRET (AMD)
相关文档
最新文档