消息队列和Mailbox初探
开始之前 笔者最近处于项目考虑在研究海光PSP和内核间消息通信的原理(怎么越做越底层了😨),以及海光PSP内部的架构。海光PSP并不开源,尽管国外有许多关于ARM PSP的逆向以及原理解析,但是毕竟不是官方的,只能先从通信上入手了。 PSP与系统之间的通信在内核中有相应代码,因此直接阅读代码即可。 PSP通信内核源码阅读
简单了解PCI总线
开始之前 由于部分原因,笔者最近需要了解PCI总线,但是身边没有相关的资料,因此本文有很多东西会因为笔者太菜的原因一笔带过(大嘘),希望读者见谅。 如果读者需要更专业的知识请参考《PCI_Express_Technology》 PCI 基础 总线结构简述 计算机中的总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,CPU 及各种设备都通过这跟总线进行通信 总线按功能可以分为以下三种类型: 片内总线:芯片内的总线,位于 CPU 内部,用以在寄存器与寄存器、寄存器与 ALU 之间进行数据交换 系统总线:计算机系统内各功能单元(CPU、主存、I/O)之间的公共通信干线,也称之为 内总线 通信总线:用于计算机系统之间或是计算机系统与其他系统(例如远程通信设备)之间进行通信的总线,也称之为 外总线 总线是可以扩展的,即可以存在多个不同类型的总线相连,不同的设备接入到不同类型的总线上 PCI概念简述 PCI全称Peripheral Component Interconnect,外围部件互连。其通过多根 PCI bus 完成 CPU 与 多个 PCI...
pwn做题记录
因为研究生做的方向和内核相关,感觉pwn里面很多技巧都是运用内核的漏洞的,所以学习一下pwn并做一下记录。 ciscn_2019_n_1 这道题目是一道简单的栈溢出题目,先查看一下保护措施,发现开启栈不可执行保护。 接下来到ida查看一下函数主体部分,发现函数逻辑很简单,并且存在gets函数,是个明显的栈溢出漏洞。其中v1 是 char[44] 的缓冲区,但 gets() 可输入无限长度数据,导致栈溢出。 虽然开启了栈不可执行保护,但是函数中本身存在cat /flag逻辑,无需在栈中执行程序,因此这里可以选择覆盖v2的值,也可以选择直接跳转到system函数执行。 这里笔者选择直接跳转执行system函数查看代码堆栈内容,可以看到堆栈中ret距离v1有0x30+8个字节,因此直接填充0x38个字符即可。 接下来构造POC,其中system的地址查看后为0x4006BE。POC如下: 123456789from pwn import...
Windows11关闭“基于虚拟化的安全性”
在一次嵌套虚拟化的实验里,笔者忽然发现KVM报错。在查询资料并且在VMWare打开了CPU虚拟化之后悲催的发现出现了一个从来没有见过的错误 如果选择否就直接关闭虚拟机了,选择是就会出现这样的错误 查了一下发现是微软的 Hyper-V 与 VMware Workstation 之间是冲突的,需要关闭Hyper-V。本以为是个很简单的事情,结果笔者的主机是非常稀有的体质,折腾了一下午。故记录一下解决这个问题的时候90%的人都没遇到过的情况(悲)。 以下是关闭Hyper-V的步骤,读者可以依次尝试。 关闭Hyper-V 在开始之前,让我们先查看几个关键的设置。 首先是硬件CPU的虚拟化支持,可以按Ctrl+Shift+Esc打开任务管理器,随后查看性能分组,查看CPU的状态。如图所示CPU虚拟化已启用是正常的,笔者一开始这里就是启用的,所以就没有管,如果未启用请自行搜索资料。 之后是打开计算机...
QEMU-KVM虚拟化技术
虚拟化技术概述 虚拟化是一个广义的术语,在计算机方面通常是指计算元件在虚拟的基础上而不是真实的基础上运行(对计算机物理资源的抽象,实现资源的模拟、隔离和共享)。虚拟化技术可以使得一台计算机上原本只能够一台计算机使用的硬件设备能够同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。 在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的、旧的硬件产能过低的重组、重用,透明化底层物理硬件,从而最大化的利用物理硬件,对资源充分利用。 我们将此虚拟的环境称之为VM(Virtual Machine)。安装在这个环境之上的系统我们称为Guest OS(客户系统);运行VMM的操作系统则称Host...
OpenStack平台搭建
涨了一个大教训,以后如果有官方准备的安装说明文档就再也不看网上的安装教程了。很多步骤的细节都不说明白,导致一直报错,作者也不提醒。 基础环境-主机准备 OpenStack云平台搭建需要两个节点,一个是controller(控制节点),另一个是compute(计算节点)。 名称 IP地址 主机名称 备注 控制节点 192.168.146.150 controller 最小4G,开启虚拟化 计算节点 192.168.146.200 compute1 最小2G,开启虚拟化 controller(控制节点) 主机安装 我没有截图标注的部分直接下一步。 此设置是为了修改网卡命名规则为eth规则 之后按上下箭头选中Install CentOS 7,不要按回车,随后按下tab键。 按下空格,输入如下指令后,按回车键。 1net.ifnames=0...
记一次博客更新
因为一直以来我的博客都存在一些小问题,解决了一些之后没有进行记录,今天摸鱼实在是太无聊了,加上有个很恶心的bug困扰了我很久,故记录一下。 标记不显示 在markdown中编写的偶尔有 注意 这类标记,格式为==标记==。但是在markdown中正常显示的标记,在博客里居然不显示了。 这个问题很好解决,博客之前因为需要使用数学公式,故将渲染器从marked更换为了markdown-it,markdown-it有支持标记的默认插件,但是要在hexo的_config.yml中进行如下设置: 12345678910111213141516171819202122232425262728293031markdown: preset: "default" render: html: true xhtmlOut: false langPrefix: "language-" breaks: true linkify: true typographer: true quotes:...
搭建cube-TCM
本地环境 新建一个项目根目录,我的项目根目录为/opt/build_vtcm/vtcm。 先把cube-1.3、cube-tcm和gm_sm2_master克隆到项目根目录 123git clone https://gitee.com/biparadox/cube-1.3.gitgit clone https://gitee.com/biparadox/cube-tcm.gitgit clone https://github.com/TCLab-BJUT/gm_sm2.git 根据《tcm工程初步》中所说,cube-tcm 的环境变量设置方法必须在cube-1.3的环境变量设置完成后进行, 设置方法类似,脚本执行后,会修改CUBEAPPPATH和CUBE_APP_PLUGIN 到vtcm-1.12工作目录。编译前需完成国密算法库文件的复制和环境变量的设置。 国密算法包编译 进入gm_sm2目录后,执行命令。 12cd...
可信计算书籍阅读笔记
可信计算理论与技术 本章为阅读《可信计算理论与技术》的阅读笔记。 可信计算技术 可信计算概论 初识可信计算 可信计算的核心就是要建立一种信任机制,用户信任计算机,计算机信任用户,用户在操作计算机时需要证明自己的身份,计算机在为用户服务时也要验证用户的身份。这样一种理念来自于人们所处的社会生活。 近年来,体现整体安全的可信计算技术越来越受到人们的关注,这正是因为它有别于传统的安全技术,试图从根本上解决安全问题。 可信计算定义与关键技术 可信计算的一些基本概念: 可信计算基 可信计算基(TCB,Trusted Computing...
可信计算论文学习集
CARE Abstract 该方法是一种云平台可信性验证的新方法。提出了基于多个验证者远程认证的方法。 CARE旨在提高远程认证的实用性和效率,并解决涉及多个利益相关者的环境中的安全和信任问题。 采用群体验证的概念,采用多个验证者的循环协作模型来收集和验证证据,从而解决信任问题,提高验证效率。 引入了精心设计的过滤机制,以非侵入式方式解决验证结果中的误报问题。 采用多向树形结构来构建基线值库,从而增强了系统的灵活性和细粒化管理能力。 CARE 可解决因应用层激活完整性测量架构 (IMA) 而导致远程验证结果不准确的首个实用解决方案。 知识补充 什么是基线值库(Baseline Value Library)? 基线值是系统中某些关键对象(如文件、配置项、内核模块等)在可信状态下的参考值。这些值可以是文件的哈希值或签名(如 SHA-256 哈希)、系统配置项的参数值(如安全策略、网络规则)、应用程序的版本信息、运行环境的状态描述等 什么是完整性测量架构(IMA)? IMA...