这是老师布置的大作业,虽然不算难,但从一点没接触过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的原理介绍和翻译流