Agent skill

Re Hypervisor

by dslsdzc in dslsdzc/rev-skills

虚拟化逆向:VT-x/SVM、hypervisor 检测、VMCS/EPT 分析, 以及 Xen / QNX Hypervisor / Jailhouse / ACRN / Bao / Hyper-V·VMBus / XtratuM / LynxSecure / Quest-V 的分区与 vdev 语义。

Apache-2.0Auto-check: notesSecurity

Install Re Hypervisor

skills CLI
$ npx skills add dslsdzc/rev-skills --skill re-hypervisor -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install dslsdzc/rev-skills re-hypervisor --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/dslsdzc/rev-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/re-hypervisor .claude/skills/re-hypervisor && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
re-hypervisor
GitHub stars
125
Used in
1 other repo
Token cost
~3.4k tokens
SKILL.md length
1,016 words
Files
10 (incl. references)
Skills in repo
41
Repo updated
First seen
Licence
Apache-2.0

At a glance

虚拟化逆向:VT-x/SVM、hypervisor 检测、VMCS/EPT 分析, 以及 Xen / QNX Hypervisor / Jailhouse / ACRN / Bao / Hyper-V·VMBus / XtratuM / LynxSecure / Quest-V 的分区与 vdev 语义。

  • Works in 5 steps: hypervisor 识别(CPUID 叶子 / VMX 标志) → VMCS 结构分析(VT-x) → 虚拟化技术检测对抗(EPT 隐藏内存) → …
  • Tasks that involve Reverse engineering and malware
  • SKILL.md covers 何时使用 / 何时不用, 工具准备, 操作步骤 and 平台分支(references), plus 2 more sections
  • Calls apt, dnf and brew

What it does

Re Hypervisor is an agent skill from dslsdzc/rev-skills. 虚拟化逆向:VT-x/SVM、hypervisor 检测、VMCS/EPT 分析, 以及 Xen / QNX Hypervisor / Jailhouse / ACRN / Bao / Hyper-V·VMBus / XtratuM / LynxSecure / Quest-V 的分区与 vdev 语义。 触发词:hypervisor、VT-x、SVM、虚拟化检测、EPT、Xen、grant table、event channel、 Jailhouse、cell、ACRN、ivshmem、Bao、shmemid、vdev、GPA/HPA、 Hyper-V、VMBus、VSC、VSP、GPADL、SR-IOV、XtratuM、XMCF、LynxSecure、Quest-V、sandbox kernel

Its SKILL.md is about 3.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 10 other files, including reference files (for example `references/acrn.md`, `references/bao.md` and `references/hyperv-vmbus.md`).

It sits in Security, covering Reverse engineering and malware. The repository describes itself as: 122 个逆向工程 AI 技能(可发布、跨平台):恶意软件分析 / 软件逆向 / 固件嵌入式 / 协议逆向 / 移动应用 / 脱壳反混淆 / 软件破解 / 漏洞挖掘 / 托管代码 / 取证情报 / CTF。 The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve Reverse engineering and malware

Example prompts

  • “/re-hypervisor”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. hypervisor 识别(CPUID 叶子 / VMX 标志)
  2. VMCS 结构分析(VT-x)
  3. 虚拟化技术检测对抗(EPT 隐藏内存)
  4. 嵌套虚拟化(VMM 内调试)
  5. 反虚拟化绕过([[re-evasion]] 联动)

What it can do on your machine

Read from SKILL.md and the folder at commit bd21db8. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • apt
    • dnf
    • brew

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Re Hypervisor loads about 3.4k tokens when it runs, and up to ~20k if it reads all its reference files. Until then it costs about 93 tokens; SKILL.md has 1,016 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~93
When it runs · the whole SKILL.md, loaded when a task matches
~3.4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~20k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteRuns commands with sudoSKILL.md:109
    sudo modprobe -r kvm_intel && sudo modprobe kvm_intel nested=1    # Intel(AMD 用 kvm_amd nested=1)

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from dslsdzc/rev-skills at commit bd21db8, republished under its Apache-2.0 licence (© dslsdzc). 1,016 words, ~3,388 tokens.

Download SKILL.mdSave it as .claude/skills/re-hypervisor/SKILL.md (or your agent's skills folder). This skill also uses 9 other files; get the full folder from GitHub.
name
re-hypervisor
description
虚拟化逆向:VT-x/SVM、hypervisor 检测、VMCS/EPT 分析, 以及 Xen / QNX Hypervisor / Jailhouse / ACRN / Bao / Hyper-V·VMBus / XtratuM / LynxSecure / Quest-V 的分区与 vdev 语义。 触发词:hypervisor、VT-x、SVM、虚拟化检测、EPT、Xen、grant table、event channel、 Jailhouse、cell、ACRN、ivshmem、Bao、shmem_id、vdev、GPA/HPA、 Hyper-V、VMBus、VSC、VSP、GPADL、SR-IOV、XtratuM、XM_CF、LynxSecure、Quest-V、sandbox kernel
capabilities
hypervisor-analysis

虚拟化逆向(VT-x / SVM / 分区 hypervisor)

<CORE RULE>
本域有两条互不相同的分析轴,先分清在哪一条上:
  • 轴 A:分析 hypervisor 本身(VT-x/SVM 指令、VMCS/VMCB、EPT/NPT)→ 本主文档
  • 轴 B:目标处在某种虚拟化之下,判断"看到的地址/设备/中断是不是虚拟化层造出来的"→ 见 [[xen]] / [[qnx-hypervisor]] / [[jailhouse]] / [[acrn]] / [[bao]]

轴 B 的共同坑是把本地句柄当全局标识、把虚拟地址当物理地址:

grant ref 是 grant table 的条目索引      ≠ 物理地址
event-channel port 是通知端口           ≠ IRQ 号
guest BAR / GPA                         ≠ 物理 BAR / HPA
shmem_id 才是共享对象 identity          ≠ 两个 VM 里的映射地址

</CORE RULE>

何时使用 / 何时不用

  • 前置:先判是哪一类虚拟化(宿主厂商串 / 配置格式 / 结构性证据)→ [[re-analyze/system-fingerprints]] 的 Hypervisor 段
  • 用:目标是 hypervisor / VMM 二进制或驱动(恶意 hypervisor、rootkit 虚拟化、VM-based 保护)
  • 用:样本/程序检测自己是否运行在虚拟机或嵌套虚拟化中(CPUID 指纹、时序检测)
  • 用:分析 VT-x(VMX)或 SVM 相关的启动代码、VMCS/VMCB 布局、EPT 相关操作
  • 用:目标跑在分区/嵌入式 hypervisor 之下——PV 设备、静态分区、vdev、跨 VM 共享内存与虚拟中断(见下方分支)
  • 不用:普通 Windows 驱动/rootkit(走 [[re-kernel]]);只要识别"我在不在 VM 里"(快速判断走 [[re-triage]] 思路或 virt-what)
  • 不用:无 CPU 虚拟化支持 / 无嵌套虚拟化环境时的动态验证(静态分析先行,见坑 1)
  • 注意:动态实验(QEMU/KVM 嵌套)按 [[re-analyze/platform-tips]] 最高原则在沙箱内进行;hypervisor 样本具有高特权,只在与宿主隔离的实验环境运行

工具准备

静态分析(CPUID 检查 / 反编译)免沙箱;QEMU/KVM 动态实验属动态执行,默认沙箱 + 快照([[re-analyze/platform-tips]] 最高原则)。

CPUID 检查工具(hypervisor 识别)
  • Linux 内置:grep -E 'vmx|svm' /proc/cpuinfo——VT-x/SVM 支持标志(零安装,先用它)
  • cpuid 工具(dump 各 CPUID 叶子的完整输出):
    • Debian/Ubuntu: apt install cpuid;Fedora: dnf install cpuid
    • Arch 无独立 cpuid 包 → 用 kcpuid(pacman -S kcpuid,linux-tools 组)或 libcpuid 附带的 cpuid_tool(pacman -S libcpuid)
    • 验证: cpuid -1 输出含各叶子详情;cpuid -1 -l 0x40000000(hypervisor 厂商字符串叶子)
  • Windows 侧:WinDbg 内核调试下 !cpuid([[re-windbg]] 扩展命令)
QEMU / KVM —— 嵌套虚拟化实验环境
  • Debian/Ubuntu: apt install qemu-system-x86(Debian 12+ 已移除 qemu-kvm 过渡包,直接装 qemu-system-x86 即含 qemu-system-x86_64;Ubuntu 的 qemu-kvm 过渡包仍存在,装了等价于 qemu-system-x86;Ubuntu 另加 libvirt-daemon-system)
  • Fedora: dnf install qemu-system-x86-core libvirt virt-install(或 dnf group install virtualization)
  • Arch: pacman -S qemu-system-x86 libvirt virt-manager(启用 systemctl enable --now libvirtd)
  • macOS: brew install qemu(无 KVM,用 HVF)
  • 验证: qemu-system-x86_64 --version;ls /dev/kvm(KVM 加速可用);kvm-ok(Debian/Ubuntu 专用,来自 cpu-checker 包——先 apt install cpu-checker)
反编译工作台([[re-ghidra]] / [[re-ida]])
  • [[re-ghidra]](默认)/ [[re-ida]]:导入 hypervisor 二进制(内核模块 / 裸二进制)
  • 验证: 导入后能反编译出 VMXON / VMPTRLD / VMREAD / VMWRITE 调用点
Intel SDM / AMD APM(VMCS 字段编码参考,无安装)
  • Intel SDM Volume 3C 附录 B(VMCS field encoding 表);AMD APM Volume 2(VMCB 布局)
  • 用途: VMREAD/VMWRITE 操作数解码、exit reason 编号对照(无独立包,官方文档)

操作步骤

按顺序执行,每步产物(CPUID 输出、VMCS 字段表、QEMU 配置)记录证据路径 + sha256(见 [[re-triage]]),供报告引用。

  1. hypervisor 识别(CPUID 叶子 / VMX 标志):

    sh
    grep -E 'vmx|svm' /proc/cpuinfo | head -1        # 宿主 CPU 虚拟化支持
    cpuid -1 -l 0x1 | grep -i -A1 'hypervisor'        # CPUID.1:ECX[31] hypervisor present bit
    cpuid -1 -l 0x40000000                            # 0x40000000 叶子的 hypervisor 厂商字符串
    #   "KVMKVMKVM" = KVM、"Microsoft Hv" = Hyper-V、"VMwareVMware" = VMware、"XenVMMXenVMM" = Xen
    • 检测要点:hypervisor present bit(CPUID.1:ECX[31])→ 有 hypervisor;0x40000000 返回厂商字符串(12 字符按序分布在 EBX:ECX:EDX 各 4 字节,EAX 返回最大 hypervisor 叶子号)
    • 恶意样本常在启动早期做此检测决定后续行为([[re-evasion]] 联动,见坑 5)
    • 记录:宿主支持情况(vmx/svm)、是否已在 VM 内(含嵌套,坑 4)
  2. VMCS 结构分析(VT-x):

    • 启动路径:VMXON(进入 VMX 操作模式)→ VMPTRLD(加载当前 VMCS)→ 配置 VMCS 字段 → VMLAUNCH/VMRESUME(进 guest)→ VM exit 后查 VM_EXIT_REASON 字段分派
    • 反编译定位:搜 VMXON/VMPTRLD/VMWRITE/VMREAD/VMLAUNCH 指令(Ghidra 反汇编直接可读);VMCS 区域是内存块,先找 VMCS 缓冲区分配与初始化代码
    • VMREAD/VMWRITE 的操作数是 VMCS 字段编码(32 位,Intel SDM 附录 B 表 B-1~B-4):bit0 = 访问类型(0=full field、1=high 32 bits);索引在 bits 9:1(9 位,不是 bits 9:0);类型在 bits 11:10(00=control、01=read-only、10=guest-state、11=host-state);宽度在 bits 14:13(00=16 位、01=64 位、10=32 位、11=natural);bit 12 与 bits 31:15 保留(必须为 0)。解码示例:0x400C=VM-exit controls(32 位,bits 14:13=10)、0x2000=I/O bitmap A(64 位,bits 14:13=01)、0x681E=GUEST_RIP(natural,bits 14:13=11)、0x681C=GUEST_RSP(natural)、0x4402=VM-exit reason(32 位 read-only)——即 access=enc&1; index=(enc>>1)&0x1ff; type=(enc>>10)&3; width=(enc>>13)&3,在 Ghidra/IDA 里建枚举/结构标注
    • 关注三块:guest-state(保存 guest 寄存器/CR3/RSP)、host-state(VM exit 后宿主现场)、control 字段(execution control 决定哪些事件触发 VM exit)
    • SVM 对应:VMCB(物理地址经 VM_HSAVE_PA MSR),字段是固定偏移——按 AMD APM 布局标注
    • 产物:VMCS 字段标注表(编码 → 字段名 → 作用)+ 初始化/exit 处理流程
  3. 虚拟化技术检测对抗(EPT 隐藏内存):

    • EPT(Extended Page Tables):guest 物理地址 → 宿主物理地址的第二层页表(VMM 控制);恶意 hypervisor 可用 EPT 把同一 guest 页映射到不同宿主页、或在 EPT 层面修改页内容而 guest 页表看起来不变
    • 分析思路:反编译里找 EPT 相关操作——INVEPT/INVVPID(TLB 失效)使用点、EPT 指针字段(VMCS EPTP)赋值、EPT 页表构建函数(从 EPT 指针沿页表结构走)
    • 检测对抗的观察法:guest 内看到的内存内容与宿主侧直接读同一物理页不一致 → EPT 重映射证据(两个视图对照);[[re-kernel]] 内核调试配合在宿主与 guest 两侧各 dump 同一页
    • EPT Hook 双视图机制(无痕 hook 核心):同一 GPA 准备两个 HPA——原始页(RW/NX)与影子页(X-only 或补丁代码)——数据访问映射原始页、指令取指映射影子页;CPU 取指触发 Execute Violation(VM-exit reason 48)后在 VM-exit 里切影子页并 INVEPT 失效缓存;扫描器/CRC 读地址得到干净字节,执行却是补丁代码(读侧无痕)
    • EPT 无痕 INT3:只在影子页放 0xCC,原始数据页不变——读内存看到原指令、取指却断下;VMCS Exception Bitmap 拦截向量 3 后匹配地址用 guest_rip - 1(一字节 INT3 的 RIP 在断点字节之后);处理完单步恢复再重新布断点;非本框架的 #BP 必须 reinject 回 guest(不能吞其他调试器/系统断点)
    • MTF(Monitor Trap Flag)解决"读执行同页":影子页指令若读取同页常量(取指要影子页、数据要原始页冲突)→ 临时放开原始页执行并置 MTF,CPU 单步执行一条指令后在 MTF VM-exit 里收紧权限;MTF 是 VM-execution control,不动 guest RFLAGS.TF、不占 DR0-DR7
    • EPT 监视 = 模拟无限硬件断点:DR0-DR3 仅 4 槽,EPT 监视撤销目标页 R/W/X 权限让匹配访问 VM-exit,数量仅受内存/性能限制;硬件断点类需求(含与传统调试器互通,如 hook SetThreadContext 探测是否下硬件断点再转发到 EPT 监视)用这套替代
    • VMCALL 无痕通信:guest 执行 VMCALL 产生 VM-exit reason 18(不调用 guest 内任何地址),RAX 放协议标识、RCX 放操作号、其余寄存器传参,是 hypervisor 与 guest 的私有通信通道
    • 产物:EPT 构建/切换代码路径 + 内存视图差异证据
  4. 嵌套虚拟化(VMM 内调试):

    sh
    # KVM 开启嵌套(宿主)——module_param 权限为 0444,sysfs 只读,echo 写入会失败
    sudo modprobe -r kvm_intel && sudo modprobe kvm_intel nested=1    # Intel(AMD 用 kvm_amd nested=1)
    # 持久化:/etc/modprobe.d/kvm.conf 写 `options kvm_intel nested=1`(重启后仍生效)
    cat /sys/module/kvm_intel/parameters/nested                       # 验证(Y/1 为已开启)
    # QEMU 启动带 VT-x 透传的嵌套 VM(`-cpu host` 暴露 vmx 标志)
    qemu-system-x86_64 -enable-kvm -cpu host,+vmx -m 4096 disk.img &
    # 嵌套 VM 内再验证: grep vmx /proc/cpuinfo 可见 → 可在此跑 hypervisor 样本
    • 用法:宿主上的调试器(gdb/lldb 或 [[re-windbg]] 内核调试)直接观察嵌套 VM 内 hypervisor 的执行——样本以为自己在最底层,实际仍在宿主调试视野内
    • VMware/Hyper-V 同理(虚拟机设置里开"虚拟化引擎/嵌套虚拟化")
    • 产物:嵌套配置存档 + 调试会话记录
  5. 反虚拟化绕过([[re-evasion]] 联动):

    • 识别检测手段:CPUID 厂商字符串(步骤 1)、时序(RDTSC 指令耗时)、设备名(VM 虚拟设备)、固件/ACPI 特征
    • 按 [[re-evasion]] 的"规避识别→绕过点定位"框架:hook CPUID(cpuid 是指令而非导出符号,findExportByName 拿不到——改 hook libc 导出函数 __get_cpuid/__get_cpuid_max 改返回值,或 Stalker 指令级追踪拦截 cpuid 指令;内核侧 hook/patch 指令)、QEMU -cpu 参数伪造厂商字符串、设备名改名
    • 恶意样本"检测到 VM 就改变行为"(不执行恶意逻辑)也是常见对抗——记录检测点与分支
    • 产物:检测点清单 + 绕过方案(授权研究场景)
Show full SKILL.md (488 more words)Show less

平台分支(references)

轴 B:目标是"跑在某种虚拟化之下的系统",要判断哪些现象是虚拟化层造出来的正常机制。

  • [[xen]] —— PV 前后端四件套(XenStore / grant table / shared ring / event channel);grant ref 是条目索引(条目含 flags/domid/frame,且映射期间不支持撤销);event-channel port 不是 IRQ 号(绑定到 shared_info 位掩码);迁移后本地端口会变、稳定的是 remote port;shared ring 上"有数据流动却无 IPC 调用"属正常
  • [[qnx-hypervisor]] —— 三层地址(guest virtual → guest physical/IPA → host physical);vdev 使 guest DT ≠ 板级 DT;shmem vdev 的工厂页(name/size/shmem/vector/status,写 size 触发创建,故 guest 启动顺序无关)与控制页(status/idx/notify/detach);intr pass vs intr vdev;直通设备同一时刻只允许一个 resident
  • [[jailhouse]] —— 配置比 inmate ELF 更重要(CPU/内存/IRQ/PCI 归属);越权访问 → CPU 被 park(不是 guest 崩溃);JAILHOUSE_MEM_LOADABLE 映射在 cell 启动时被撤销(重装走 Cell Set Loadable);ivshmem 不维护 pending 语义(MSI-X PBA 恒 0,事件状态从共享内存协议读);hypervisor VA 里扫不到全部 VM 内存
  • [[acrn]] —— Service VM / pre-launched / post-launched 三态与三种 I/O 服务路径;guest BAR ≠ 物理 BAR(EPT 映射,MSI-X 表页必须 trap);posted interrupt 使 VM-exit 减少;ivshmem 的 dm-land 与 hv-land 永不互通(前缀 dm:/ vs hv:/,且 dm-land 无 doorbell)
  • [[bao]] —— 静态分区(CPU/内存/中断独占,vCPU 与 pCPU 1:1,无调度器);共享对象 identity 是 shmem_id 而非地址;IPC 的 size ≤ 对应 shmem 大小;cache coloring 抑制干扰但有代价(牺牲大页、增加 TLB 压力)且随平台颜色数截断
  • [[hyperv-vmbus]] —— VSC / VSP 经 VMBus(双向通道 = 两个 ring buffer;高速设备可用多通道);GPADL 是缓冲区描述句柄不是地址(共享总量有上限);SR-IOV 让数据面中途换路(VF 直通绕开 VMBus 与 hypervisor,控制面仍在 VMBus)
  • [[xtratum]] —— XM_CF 配置驱动(分区/内存/中断/端口/通道/调度全在配置里,运行期无动态对象);循环计划(MAF + 时间槽)与固定优先级计划;Plan 0 = 初始化、Plan 1 = 维护,切换要等当前计划剩余槽跑完;IPVI 每分区最多 8 个
  • [[lynxsecure]] —— 静态分离内核:boot 时定义、不可变的硬件分区;内核功能仅限资源分区 / 控制分区之间的数据流 / 调解系统状态变更入口;I/O 与应用支持全部导出到 guest(内核里没有驱动与 I/O 栈)。含逆向可操作层:配置优先于代码、启动阶段是唯一能看到"配置生效"的窗口、用三项职责反查内核边界、跨分区找受控通道而非共享页、用官方约束验证 DMA/hypervisor 与 guest 的隔离
  • [[questv]] —— 多内核 sandbox + 每 sandbox 一个 monitor:monitor 只在引导/故障/影子页表/建通道时介入;EPT 用于内存隔离而非 CPU 虚拟化;中断直接投递 sandbox;EPT violation → VM-exit 到对应 monitor(必要时强制触发陷入);本地/远程在线恢复;无全局时钟。含"哪一段是 monitor"的定位判据

跨域联合

  • [[re-evasion]]:反虚拟化检测/绕过框架(CPUID hook、时序对抗);恶意样本 VM 检测行为分析
  • [[re-kernel]]:hypervisor 驱动/内核模块分析底座(DriverEntry、IRP、内核调试配合)
  • [[re-windbg]]:Windows 宿主/guest 内核调试(!cpuid 查 CPUID 叶子、驱动加载观察)
  • [[re-ghidra]] / [[re-ida]]:VMCS/VMCB 相关代码反编译与结构标注(SDM 附录 B 建枚举)
  • [[re-sandbox]] / [[re-analyze/platform-tips]]:QEMU/KVM 实验环境隔离最高原则;嵌套 VM 是默认沙箱形态
  • [[re-triage]]:初勘阶段"是否在 VM 内 / CPU 虚拟化能力"快速判断(virt-what 思路)

常见坑与陷阱

  • 硬件虚拟化调试环境复杂:现象——hypervisor 样本在普通 VM 里跑不起来/直接崩溃,调试器附加失败,样本检测到嵌套环境后行为异常;原因——嵌套虚拟化需要宿主 CPU 支持 + 显式开启(KVM nested / Hyper-V / VMware 选项),且样本会检测自己是否"真的在底层";对策——先纯静态积累信息(步骤 1-2 的 CPUID 与 VMCS 分析不需要跑样本),动态前确认三层能力:宿主 vmx/svm 标志(grep vmx /proc/cpuinfo)→ 嵌套开关(/sys/module/kvm_intel/parameters/nested)→ QEMU -cpu host 透传;实验全部在隔离沙箱([[re-analyze/platform-tips]] 最高原则)
  • VMCS 内核对象逆向门槛高:现象——反编译里 VMREAD/VMWRITE 一堆魔数,不知道读写的是什么字段,VM exit 分派逻辑看不懂;原因——VMCS 是硬件定义格式(字段编码不是符号),且各 CPU 架构(VT-x vs SVM)布局完全不同;对策——把 Intel SDM 附录 B 的字段编码表建进反编译器(Ghidra 枚举/结构),VMREAD/VMWRITE 操作数逐一解码;按 guest-state / host-state / control 三块组织分析;AMD 目标改用 VMCB 固定偏移布局(APM Volume 2)
  • EPT 使内存断点失效:现象——调试器在 guest 里下的内存断点/页保护断点不触发或触发后行为诡异(寄存器对不上);原因——EPT 的访问位/脏位独立于 guest 页表,VMM 通过 EPT 控制 guest 看到的内存视图(含隐藏页),普通调试器断点基于 guest 页表视角;对策——区分 EPT violation(VM exit reason 48)与 guest page fault(reason 14);要观察 EPT 层必须看 EPT 页表结构本身(沿 VMCS EPTP 字段展开)而不是 guest 页表;[[re-kernel]] 内核调试下对照宿主/guest 两侧内存视图
  • CPU 特性差异(VT-x vs SVM):现象——在 Intel 机器上整理的 VMCS 偏移/exit reason 编号拿到 AMD 机器全对不上,或相反;原因——VT-x 与 SVM 是两套独立实现:VMCS(VMREAD/VMWRITE 编码)vs VMCB(固定偏移),exit reason 编号体系不同;对策——先确认目标平台(CPUID vendor + vmx/svm 标志,步骤 1),按平台选对应手册(Intel SDM Vol 3C / AMD APM Vol 2),分析笔记标注目标平台与 CPU 型号,不跨平台复用字段表
  • 样本检测 VM 后改变行为(影响结论):现象——静态分析很清晰的恶意逻辑,动态运行时完全看不到(样本"正常"运行);原因——样本检测到自己在 VM/调试环境里会走"无害分支"(反沙箱/反调试常见手法);对策——按步骤 1 先确定样本视角的虚拟化状态,动态验证必须与样本检测条件一致(或逐项绕过检测);结论以"检测点还原 + 绕过后的行为"为准,单跑一遍就下结论不可信
  • AMD NPT 不能照搬 EPT 方案:现象——Intel 上可用的"只执行页"技巧(影子页 X-only)在 AMD 平台失效;原因——NPT 与 EPT 是两套独立实现,NPT 不能单独设置只执行属性(读与执行位绑定);对策——跨平台实现 hook/隐藏前先确认目标是 Intel(EPT)还是 AMD(NPT),AMD 需换用其他手段(如结合 NX + 数据视图)
  • "VT 无痕读写"是伪命题:现象——以为 EPT 能无痕读写任意数据段;原因——影子页表只能无痕改写"代码段"(取指视图切换),数据段无法同时满足两侧视图(读原始 vs 写影子);对策——无痕写仅限代码段场景(hook 场景);数据段读取仍靠遍历四级页表(GVA→GPA→HPA 二阶段翻译)直读物理页,与普通驱动思路无本质区别
  • RDTSC 检测 VM-exit 开销可被补偿:现象——样本用 __rdtsc/__rdtscp 测指令耗时差值识别 hypervisor;原因——VM-exit 有固定开销可测量;对策——VM-exit 汇编入口最早记录 exit_tsc,ReadVirtualTsc 用有界平滑估计补偿(不能把中断/调度长尾全当 exit 成本),并保证每 vCPU 单调(max(value, last_guest_tsc+1));原则:样本检测哪里,就在 VM-exit 里处理哪里
  • 把跨 VM 的本地句柄当全局标识:现象——trace 里同一个整数在两个域/VM 里出现,被当成同一个对象;原因——grant ref 是条目索引、event-channel port 是通知端口、shmem_id 才是共享对象 identity,本地端口在重连后还会变且可被重用;对策——按各自的表/配置对齐(grant table 条目、shared_info 位掩码、shmem_id),见 [[xen]] / [[bao]]
  • 把虚拟地址当物理地址:现象——guest 里的 MMIO 地址在真实硬件上找不到对应,就判驱动写错或抓错设备;原因——PV 设备没有寄存器窗口;分区 hypervisor 下 guest 的 BAR/GPA 与物理 BAR/HPA 之间隔着 EPT/NPT 或直通映射;vdev 的地址由配置制造;对策——先判"直通还是 vdev/模拟",再谈地址是否一致,见 [[qnx-hypervisor]] / [[acrn]] / [[jailhouse]]
  • 把 hypervisor 的保护动作当 guest 崩溃:现象——程序在访问某地址后"突然停住",却找不到常规缺页/总线错误证据;原因——静态分区 hypervisor 会把越权访问的 CPU/cell park 掉(Jailhouse);对策——查 hypervisor 侧日志(Unhandled trap / Parking CPU),并对照 cell/VM 配置的资源归属([[jailhouse]])
  • 跨 VM 共享内存通不了就往设备模型里找:现象——两侧 ivshmem 都"正常"但完全无法通信;原因——ACRN 的 dm-land 与 hv-land 是两套实现,前缀(dm:/ 与 hv:/)不同则永不互通,且 dm-land 没有 doorbell 通知;对策——先核对实现与前缀是否一致,再看数据面([[acrn]])
  • 把 GPADL 之类的描述符当内存地址:现象——trace 里的小整数被当地址或偏移参与推算;原因——GPADL 是"描述并映射一片客户机缓冲区"的句柄,且宿主对其共享总量有限制;对策——按句柄语义还原它指向的缓冲区([[hyperv-vmbus]])
  • 网络流量中途"消失"却功能正常:现象——一段时间 VMBus 很忙,之后抓不到包但网络仍通;原因——SR-IOV 下数据面可从合成路径切到 VF 直通(数据面绕开 VMBus 与 hypervisor,控制面仍在 VMBus);对策——先判当前数据面走哪条路径([[hyperv-vmbus]])
  • 没拿到配置文件就分析资源归属:现象——找不到"为什么这个分区访问不到"的答案;原因——配置驱动的分离系统(XtratuM、LynxSecure、Jailhouse、Bao 等)把资源归属全放在配置里;对策——先取配置,再谈代码([[xtratum]] / [[lynxsecure]])
  • 把"缺少集中管理代码/VM-exit 很少"当没有隔离:现象——反汇编里找不到中央调度或重配置逻辑;原因——静态配置模型与多内核 sandbox 本来就不这么做;对策——按该系统的模型解释([[lynxsecure]] / [[questv]])
  • 跨 sandbox 比较时间戳:现象——同一次事件在两侧的时间对不上;原因——某些多内核设计没有全局时钟,各核用本地定时器与 TSC;对策——把时钟偏差算进去,别按单一时间线断言([[questv]])
  • 在内核区域里期待驱动与 I/O 栈:现象——某个映像块里应有尽有(驱动、I/O、应用 API),却被当作内核;原因——极端的静态分离设计把 I/O 与应用支持全部导出到 guest,内核只做资源分区/数据流控制/状态变更调解;对策——用这三项职责反查真正的内核边界([[lynxsecure]])
  • 在运行期找"重配置"逻辑:现象——找不到动态 MMU/资源重配置引擎;原因——静态配置模型下映射与归属都在启动期确定;对策——把追映射的工作放到启动阶段([[lynxsecure]])

© dslsdzc, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 9 other files (references) in .claude/skills/re-hypervisor of dslsdzc/rev-skills.

  • SKILL.md
  • references/acrn.md
  • references/bao.md
  • references/hyperv-vmbus.md
  • references/jailhouse.md
  • references/lynxsecure.md
  • references/qnx-hypervisor.md
  • references/questv.md
  • references/xen.md
  • references/xtratum.md

Open the folder on GitHubat commit bd21db8

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in dslsdzc/rev-skills, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Re Hypervisor next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Re Hypervisor compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Re Hypervisor this skilldslsdzc/rev-skills1251 repos~3.4kAutomated safety check: NotesApache-2.0
vphone600 Kernel Symbol AnalysisLakr233/vphone-cli15k—~530Automated safety check: PassMIT
Webhome Extension Builderwebhtv/webhtv1.7k—~2.8kAutomated safety check: PassGPL-3.0
Reverse Flowlingbol088-spec/reverse-flow-skill936—~2.4kAutomated safety check: PassMIT
Website Rebuildboyang-hu/website-rebuild-skill1.4k—~6.1kAutomated safety check: PassMIT
Client Request Signature Reversalawarexone/Agentic-Bug-Hunter5.3k—~4.7kAutomated safety check: PassMIT

Similar skills

  • Looks up symbols and addresses in vphone600 release and research kernel datasets, and cross-references XNU source, with findings that separate fact from inference.

    15k GitHub stars~530 tokensUpdated today
    SecurityAuto-check passed
  • Build, review, debug, reverse-engineer, and package WebHome injected extension scripts for FongMi/WebHome App WebView pages.

    1.7k GitHub stars~2.8k tokensUpdated today
    SecurityAuto-check passed
  • Reverse Flow

    lingbol088-spec/reverse-flow-skill

    Guided reverse engineering workflow for binaries, firmware, mobile apps, scripts, document samples, protocol captures, and unknown artifacts.

    936 GitHub stars~2.4k tokensUpdated 2 mo ago
    SecurityAuto-check passed
  • Website Rebuild

    boyang-hu/website-rebuild-skill

    1:1 rebuild of award-winning creative websites (WebGL / scroll-animation / portfolio sites).

    1.4k GitHub stars~6.1k tokensUpdated 1 mo ago
    SecurityAuto-check passed
  • Client Request Signature Reversal

    awarexone/Agentic-Bug-Hunter

    Recovers a client-side request signature or anti-bot token just far enough to replay blocked requests in bug bounty testing, starting from a captured packet.

    5.3k GitHub stars~4.7k tokensUpdated 3 days ago
    SecurityAuto-check passed
  • Penetration Flow

    lingbol088-spec/ReiPenFlow

    Guided workflow for authorized penetration testing, vulnerability validation, security reporting, CTF/local sandbox reverse engineering, and user-directed vulnerability research.

    222 GitHub stars~1.8k tokensUpdated 2 mo ago
    SecurityAuto-check passed

More from dslsdzc/rev-skills

All 41 skills in this repo
  • Re Attribution

    dslsdzc/rev-skills

    威胁归因方法论:钻石模型、基础设施图谱、置信度分级与归因报告. An agent skill from dslsdzc/rev-skills.

    125 GitHub starsUsed in 1 repo~1.1k tokens
    Auto-check passed
  • Captures an analyzable sample from a live system when the target leaves no file on disk, by finding abnormal executable memory and the execution context that reached it.

    125 GitHub stars~2k tokensUpdated 3 days ago
    Auto-check passed
  • Re Fp Runtime

    dslsdzc/rev-skills

    函数式语言运行时逆向(Haskell/OCaml):闭包/堆对象模型、调用约定、数据流优先策略. An agent skill from dslsdzc/rev-skills.

    125 GitHub starsUsed in 1 repo~1.4k tokens
    Auto-check passed
  • Re Sdr

    dslsdzc/rev-skills

    射频逆向:信号采集、频谱分析、解调、帧同步与协议恢复、重放. An agent skill from dslsdzc/rev-skills.

    125 GitHub starsUsed in 1 repo~1.1k tokens
    Auto-check passed
  • Re Uefi

    dslsdzc/rev-skills

    UEFI/BIOS 固件:SEC/PEI/DXE/BDS 阶段判定、DXE 驱动、UEFI 模块、bootkit. An agent skill from dslsdzc/rev-skills.

    125 GitHub starsUsed in 1 repo~2.3k tokens
    Auto-check passed
  • Re Cpp Abi

    dslsdzc/rev-skills

    现代 C++ 二进制逆向:RTTI/异常/虚表恢复、ABI 识别、mangling 解码. An agent skill from dslsdzc/rev-skills.

    125 GitHub starsUsed in 1 repo~996 tokens
    Auto-check passed

Categories

Questions about Re Hypervisor

What does Re Hypervisor do?

虚拟化逆向:VT-x/SVM、hypervisor 检测、VMCS/EPT 分析, 以及 Xen / QNX Hypervisor / Jailhouse / ACRN / Bao / Hyper-V·VMBus / XtratuM / LynxSecure / Quest-V 的分区与 vdev 语义。. Re Hypervisor is an agent skill from dslsdzc/rev-skills.

When should I use Re Hypervisor?

Re Hypervisor fits situations like: tasks that involve Reverse engineering and malware.

How do I install Re Hypervisor in Claude Code?

Run `npx skills add dslsdzc/rev-skills --skill re-hypervisor -a claude-code`. Or copy the skill folder (.claude/skills/re-hypervisor in dslsdzc/rev-skills) into .claude/skills/re-hypervisor in your project. Claude Code loads it when a task matches its description.

How do I install Re Hypervisor in Codex?

Run `npx skills add dslsdzc/rev-skills --skill re-hypervisor -a codex`. Or copy the skill folder (.claude/skills/re-hypervisor in dslsdzc/rev-skills) into .agents/skills/re-hypervisor in your project. Codex loads it when a task matches its description.

Can I use Re Hypervisor in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add dslsdzc/rev-skills --skill re-hypervisor -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/re-hypervisor, .gemini/skills/re-hypervisor, .github/skills/re-hypervisor and .opencode/skills/re-hypervisor in your project.

What does Re Hypervisor need to run?

Going by SKILL.md and its folder, Re Hypervisor needs the command-line tools its instructions call (apt, dnf and brew).

Does Re Hypervisor access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Re Hypervisor safe to install?

Our automated static check of SKILL.md found notes only (runs commands with sudo), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Re Hypervisor use?

Re Hypervisor is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Re Hypervisor use?

About 3.4k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 17k tokens, read only when the agent opens those files.

What are the alternatives to Re Hypervisor?

Skills that share tags, products or a category with Re Hypervisor: vphone600 Kernel Symbol Analysis (Lakr233/vphone-cli, 15k stars), Webhome Extension Builder (webhtv/webhtv, 1.7k stars), Reverse Flow (lingbol088-spec/reverse-flow-skill, 936 stars) and Website Rebuild (boyang-hu/website-rebuild-skill, 1.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Re Hypervisor?

dslsdzc (a GitHub user) maintains it in dslsdzc/rev-skills, which has 125 GitHub stars. The repository holds 41 skills in this directory. The repository was last updated on October 5, 2026.

Source: dslsdzc/rev-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.