简单的活着

nitro版本迁移

Posted on By Mista Cai

memo

Patent:METHOD AND APPARATUS FOR HYPERVISOR BASED MONITORING OF SYSTEM INTERACTIONS

  • BarklyProtects,Inc.

nitro

  • 现版本
    • linux:4.9.0
    • qemu:2.8.0
  • 目标版本
    • linux:4.10.2
    • qemu:2.6.0

linux

根据apply nitro patch commit更改。

qemu

KVM层面

Extended Feature Enable Register(EFER) 是用来启用SYSCALL/SYSRET的寄存器。

Intel IA-32e64位在ISA引入了syscallsysret,以及一些型号指定寄存器MSRs,IA32STARIA32LSTAR

  • IA32STAR保存着CS(code segment)寄存器的值,表示代码在内存中的存储位置。
  • IA32LSTAR 保存着RIP(Register Instruction Pointer)寄存器的值,表示syscall指令的目标地址。
  • RCX寄存器保存着sysret的返回地址。

EPT

  • EPT可以设置内存页面可执行不可读,即处理器可以执行该页面指令但是访问数据。

Trap

  • trap机制允许hypervisor捕获VM对IA32LSTAR MSR任何的读写操作。hypervisor可以修改或模拟对MSR的读写。