在QEMU中实现基于配件长度的粗粒度CFI安全机制

这篇博客介绍了作者在QEMU中实现基于配件长度的粗粒度控制流完整性(CFI)安全机制的过程。文章详细阐述了参数设置、关键点、原理和具体实现步骤,包括理解QEMU工作原理、TB块结构以及如何检测配件和攻击。作者通过在特定位置插入代码来检测配件和攻击,当配件连续出现7次及以上时,系统会判断为遭受攻击。
摘要由CSDN通过智能技术生成

这是老师布置的大作业,虽然不算难,但从一点没接触过QEMU到成功添加安全机制,遇到一些困难,踩过一些水坑,不过幸好,学到很多。

申明:转载请说明出处。

0X01  参数设置

参数说明:x=5,  y=7,  当配件长度小于5,且连续出现7次时,认为遭受了攻击。

0X02 key points

要完成这个大作业,个人觉得需要做到以下几点:

1、必须要建立起对qemu这个虚拟工具的一个概念,知道他是个什么东西,如果工作的,比如说是把目标主机的代码转换成本地主机代码的这个过程是怎样的,整体概念的建立很重要。

2、要理解qemu的工作原理,特别是它的动态翻译机制,最好是能够熟悉整个动态翻译的流程,他有一个完整的函数调用链,要能够大致知道函数之间是怎么调用的,这些函数分别完成了什么功能。

3、要理解qemu是以TB块为基本粒度进行翻译执行的,以及一定一定要清楚TB块的结构和切分方法,

清楚了TB块将会大大节省你完成安全机制建立的时间,我就是因为没搞懂所以掉到坑里浪费了好长时间。

4、要理解“配件”这一概念,特别是配件长度是什么,什么是配件,这两个概念很关键。

5、好好读代码,qemu里面很多原先定义的变量都可以直接拿来使用,很高效而且准确。

6、好好阅读老师和助教给的资料,每一句话每一个文件都不是摆设。

7、当你发现一条路走不通的时候不要钻牛角尖,要想想能不能换个方法解决问题。

8、要注重交流,这能开拓你的思维。

9、最后,要坚持,虽然是个小白,但是当自己坚持完成一项从没有接触过的任务后,会学到很多,过程越艰辛,成就感越足,共勉。


0X03  原理简述

关于qemu的原理介绍和翻译流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值