Janus工具介绍
Janus工具介绍 记录时间: 2019.12.6 。这一次偷懒就直接对着上课写的PPT讲了,仅供参考。 github: https://github.com/sslab-gatech/janus https://taesoo.kim/pubs/2019/xu:janus-slides.pdf 1.硬编码:文件路径来生成随机的系统调用,即类似于path=”/bin/sh”的类型,将数据直接嵌入到程序或其他可执行对象的源代码。 问题:文件操作是一种上下文相关的工作负载(workload),映像与执行的文件操作之间存在依赖关系。而这种 硬编码不能生成有意义的文件操作序列,并且覆盖文件系统的深层代码路径 。 2.随着文件系统与操作系统的复杂性不断增加,fuzz困难度上升的情况下,再现已发现的bug依赖于VM,QEMU或Linux用户模式(UML)会产生 巨大的时间开销 。 常见的fuzzer测试依赖于最小完整性检查的 回归测试 。这是一种修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误的方法。而重用实例则虽然能减少重新加载的开销,但会进一步导致 操作系统状态不稳定 ,最终导致不稳定的执行与不可恢复的bug。同时由于前面积累了许多的变化,也难 以确定是哪一个调用真正地造成了崩溃 。除却时间,空间开销也是很重要的一点。由于文件系统的庞大性, 大量涉及IO操作