万事课程:AMD CPU 结构 和虚拟化---入门讲解

AMD CPU 哪个工作岗位需要了解

AMD SVM / Intel VMX / Windows 内核 / Hypervisor

个人分析被360垄断了,以下内容很多通过360搜索获得,又或者360处于绝对行业头部地位

1. 虚拟化内核开发(最正统岗位)

  • 做:VMware、Hyper-V、KVM、VirtualBox、QEMU
  • 职责:实现 CPU 虚拟化、内存虚拟化(NPT/EPT)、中断注入
  • 必须懂: AMD SVM、Intel VT-x、VMCB / VMCS、VMEXIT
  • 属于:底层系统工程师 / 内核工程师

2. 反作弊 / 游戏安全工程师

3. 安全研究员 / 漏洞挖掘工程师(红蓝队)

红队(攻击)

  • 用 HV 做:无文件攻击、隐藏木马、绕过 EDR、内核免杀
  • 必须懂 SVM 实现隐藏执行

蓝队(防守)

  • 检测恶意 hypervisor
  • 识别 rootkit、VM 逃逸漏洞
  • 同样要精通 SVM / VMX

4. 内核驱动开发工程师

  • 做:杀毒引擎、沙盘、系统增强工具

5. 固件 / BIOS / 底层安全工程师

  • 做:SEV、TSME、PSP 相关安全
  • AMD 安全虚拟化技术(非常高端)

6. 模拟器 / 主机逆向工程师(游戏机方向)

哪些岗位反而不需要懂这么深

  • 普通应用开发(Java/Go/Python/ 前端)
  • 游戏业务逻辑开发(Unity/UE 业务)
  • 测试、运维、网络工程师
  • 普通逆向工程师(只懂脱壳、内存修改)

一、先明确:你要学的是 AMD SVM (AMD-V) 硬件虚拟化

不是:

  • GPU 共享内存 SVM(Shared Virtual Memory)❌
  • 机器学习支持向量机 SVM❌
  • 其他任何 SVM ❌

AMD SVM = 双层模式 + 一个控制块(VMCB) + 硬件拦截(VMEXIT) + 硬件内存虚拟化(NPT)

  • Host Mode:Hypervisor(SimpleSvm),最高权限*(Ring -1)
  • Guest Mode:Windows / 游戏 / 反作弊,被监控(Ring 0~3)
  • VMCB:保存 Guest 状态、控制拦截规则
  • VMEXIT:Guest 碰敏感指令 → 硬件切回 Host
  • NPT:硬件加速二级页表,不卡

权限:Host > Guest Ring 0 > Guest Ring 3

万事代码一份(伪代码)

1)simleSVM = simple + SVB

  1. 一段代码如下,只是稍微阅读一下看是否能理解。。。

3)我的结果是:代码好理解,有什么理解不了的;反而是各种水图,PPT,结构图理解不了;

4)还有各种莫名的比喻和排比:"想象一下,在一个大型物流中心,CPU和GPU分别是两个独立的仓库管理员。"懒得吐槽

cpp 复制代码
// 1. 检查 SVM 支持
Cpuid(0x80000001, &eax, &ebx, &ecx, &edx);
if (!(ecx & (1 << 2))) return 不支持;

// 2. 开启 SVME
__readmsr(MSR_EFER, &efer);
efer |= EFER_SVME;
__writemsr(MSR_EFER, efer);

// 3. 分配 VMCB
vmcb = AllocatePage(4KB 对齐);

// 4. 初始化 VMCB
vmcb->control.intercepts = 拦截 CR/MSR/异常;
vmcb->control.msrpm_base_pa = msrpm;
vmcb->control.n_cr3 = npt_cr3; // NPT

// 5. VMRUN 进入 Guest
VMRUN(vmcb_phys);

// 6. VMEXIT 处理(反作弊欺骗)
switch (exit_code) {
  case VMEXIT_CPUID: 伪造 CPUID 返回;
  case VMEXIT_MSR:    伪造 MSR 值;
  case VMEXIT_CR0:    伪造 CR0;
}

参考资料链接

AMD64 Architecture Programmer's Manual Volume 3: General-Purpose and System Instructions

https://docs.amd.com/v/u/en-US/24594_3.37

水文

https://zhuanlan.zhihu.com/p/654394824​​​​​​

Qemu KVM(Kernel Virtual Machine)学习笔记

https://yifengyou.github.io/learn-kvm/docs/%E8%99%9A%E6%8B%9F%E5%8C%96%E5%AE%9E%E7%8E%B0%E6%8A%80%E6%9C%AF/%E8%99%9A%E6%8B%9F%E5%8C%96%E5%AE%9E%E7%8E%B0%E6%8A%80%E6%9C%AF.html

相关推荐
同勉共进7 天前
并发编程核心概念辨析
c++·cpu·内存屏障·缓存一致性·memory order
庞轩px11 天前
线程本地缓存?CPU缓存!
缓存·线程·cpu·volatile·可见性·本地内存
FserSuN12 天前
GPU vs CPU 基本概念学习笔记
cpu·gpu
坏孩子的诺亚方舟16 天前
RTL设计师攻略0_架构与微架构
架构·cpu·面试攻略
逻极19 天前
Windows平台Ollama AMD GPU编译全攻略:基于ROCm 6.2的实战指南(附构建脚本)
人工智能·windows·gpu·amd·ollama
CappuccinoRose20 天前
计算机系统体系结构及其组成 - 汇总篇
cpu·计算机体系结构·总线·计算机组成·指令系统·并行处理机·码制
谷公子的藏经阁1 个月前
聊点老古董: Arm Cortex-M v6/v7架构及其CPU
arm·cpu·armv7·cortex-m·armv6
’长谷深风‘1 个月前
嵌入式 ARM 开发入门解析
汇编·arm开发·cpu·cortex
MaXiaoTiao11051 个月前
Triton-CPU 部署实录(Ubuntu + Conda + 自编译 LLVM)
cpu·编译器