![](https://img-blog.csdnimg.cn/20190918140129601.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
CTF-PWN-虚拟化
文章平均质量分 92
CTF-PWN-云原生
看星猩的柴狗
IT爱好者一枚,菜狗CTF-PWN手,记录自己的学习经历,请大佬多多指点
展开
-
CTF-pwn-虚拟化-qemu前置知识
当对设备其所在的内存访问时,会调用注册的读mmio函数d3dev_mmio_read,读的位置是基地址+0x128,是4字节。每个qemu虚拟机都是宿主机上的一个进程,在进程中用mmap分配出大小为0x40000000字节的宿主机的虚拟内存来作为虚拟机的物理内存。设备会注册自己的MMIO和PMIO读写函数,当检测到访问其所在的内存或端口时调用注册的读写函数,实现对设备内存的读写功能。其中对于形如0000:00:03.0的数据,0000是域,00是总线号,03是设备号,0是功能号。原创 2024-06-21 17:42:29 · 592 阅读 · 0 评论 -
CTF-pwn-虚拟化-【d3ctf-2021-d3dev】
v4 = opaque->seek + (unsigned int)(addr >> 3)如果opaque->mmio_write_part为0会修改opaque->blocks[v4] = (unsigned int)val;addr == 8并且val seek = val,addr > 8并且addr == 28会opaque->r_seed = val然后调用。要求通过对设备的操作函数中的漏洞获得docker环境host机的shell,获取宿主机上的flag。原创 2024-06-20 13:08:47 · 959 阅读 · 0 评论 -
Kata Containers零基础学习从零到一
Docker容器通过命名空间和控制组提供逻辑隔离,共享宿主机的内核,资源利用高效,但隔离度相对较低。Kata Containers等使用MicroVM技术,为每个容器提供独立的内核和硬件抽象层,隔离度高,安全性增强,但可能牺牲一点启动速度和资源效率。这张图可能详细展示了从应用管理层到基础虚拟化层的整个流程,强调了不同层次之间的信息流动和职责划分。原创 2024-05-22 19:02:35 · 1133 阅读 · 0 评论 -
CTF-虚拟机-QEMU-前置知识-操作流程与源码阅读
将parent->class->interfaces的一些信息添加到ti->class->interfaces列表上面,ti->interfaces[i].typename对应的type的信息也添加到ti->class->interfaces列表,最后最重要的就是调用parent的class_base_init进行初始化,最后调用自己ti->class_init进行初始化。可以这么认为,guest所使用的物理内存,实际上是对应的启动它的那个QEMU的虚拟内存的一部分。第三个部分5位表示设备号;原创 2023-12-02 13:33:54 · 1261 阅读 · 1 评论 -
CTF-虚拟机-QEMU-前置知识-内存管理和IO处理
当VM访问某虚拟设备的物理内存/端口时候,控制权由VM转交到VMM,此时QEMU会根据触发VM-exit的事件类型进行不同的处理,即MMIO还是PMIO。端口映射io,内存和io设备有各自独立的地址空间,cpu需要通过专门的指令才能去访问。PCI 设备同时也分为主设备和目标设备两种,主设备是一次访问操作的发起者,而目标设备则是被访问者。lspci -v可以显示当前的pci设备的详细信息,如mmio的地址,pmio的端口号。/sys/bus/pci/devices可以找到pci设备相关的文件。原创 2023-11-24 01:00:15 · 1119 阅读 · 0 评论 -
CTF-虚拟机——【前置知识四】
DMA 重映射即面向设备侧的地址访问重翻译,如下图所示,左侧是 CPU 对内存的虚拟化:MMU 利用进程页表将进程要访问的虚拟地址翻译为物理地址,又因为不同进程其页表不同,从而实现在两个进程中访问同一个虚拟地址实际上访问到不同的物理地址——DMA 重映射也是类似的原理,如下图右侧所示,当外设想要进行 DMA 时,IOMMU 会根据 “设备页表” 进行地址翻译,不同设备其页表不同,从而使得两个设备各自感知访问的是同一个地址,但实际上访问到了不同的物理地址。且设备的模拟是独立于VMM的。原创 2023-11-16 14:38:39 · 212 阅读 · 0 评论 -
CTF-虚拟机——【前置知识一】
特权指令:系统中有一些操作和管理关键系统资源的指令,这些指令只有在最高特权级上能够正确运行。如果在非最高特权级上运行,特权指令会引发一个异常,处理器会陷入到最高特权级,交由系统软件处理了。VMM 运行在最高特权级上,Guest VM 运行在低特权级上,当 Guest VM 执行到敏感指令或特权指令时,其便会陷入位于最高特权级的 VMM,此时有VMM执行敏感指令或特权指令。敏感指令:就是会操作特权资源的指令,包括修改虚拟机的运行模式或者下面物理机的状态;等价性:就是运行在VMM下的和运行在物理机下没区别。原创 2023-11-11 17:27:46 · 131 阅读 · 0 评论 -
CTF-虚拟机——【前置知识二】
VMCS是保存虚拟机的虚拟CPU的相关状态的一块内存,每个virtual CPU都有一个VMCS,同一时刻物理CPU只能和一个VMCS绑定,即一个物理CPU对应一个虚拟CPU,但不同时刻可以将VMCS绑定到不同物理CPU上,即一个虚拟CPU可以选择对应的物理CPU,称为VMCS的迁移。VMM为最高权级,Guest VM在低权级,当Guest VM执行非敏感指令时是直接在硬件上执行的,当执行敏感指令时,会陷入最高权级的VMM,然后又VMM执行敏感指令的行为。只是对于特权和敏感指令,通过某种方式转换到VMM。原创 2023-11-14 22:21:26 · 183 阅读 · 0 评论 -
CTF-虚拟机——【前置知识三】
缺点:流程繁重,从而使得虚拟机中的内存访问性能极其低下。原创 2023-11-15 11:30:31 · 184 阅读 · 0 评论