我发现有些大学正在将DynamoRIO(或非常相似的东西)移植到Linux内核空间,但是代码似乎不可用。有我不知道的资源吗?

这里有一个例子。

评论

您能否提供一些大学努力的链接?这将有助于您了解所需的功能。例如。如果您只想对内核模式代码执行动态二进制转换,那么从技术角度讲,全系统模式下的QEMU就是合适的选择。

static.usenix.org/event/hotdep10/tech/slides/feiner.pdf说他们将在幻灯片16上开源...不知道发生了什么。

DynamoRIO Google代码项目中有一个分支称为“ DRK”,提交1323的日志消息为“ DRK:DynamoRIO作为Linux内核模块”。我对DynamoRIO的了解还不够,但是该分支是否实际上包含DynamoRIO的内核版本。

@ BrendanDolan-Gavitt太好了,我实际上是在寻找DRK。如果您将其移至答案,我会很乐意接受。

#1 楼

是的,这里有DynamoRIO内核(DRK),这是由多伦多大学(University of Toronto)的Peter Feiner创建的DynamoRIO(DR)端口。当前的灾难恢复源树;但是,尽管有分支,它也不包含DRK。 DRK尚未开源,U of T正在使用DRK和新的DBT框架积极地进行内核DBT研究。

如果您想自己移植它,则两个主要挑战是:


中断及其与代码缓存的交互方式。 DRK采用了“直接端口”方法。例如,在DR使用线程专用代码缓存的情况下,DRK使用CPU专用代码缓存的情况。这导致很多烦恼。透明度和中断。
您想要什么级别的透明度。 DR的设计考虑了很多透明性,而DRK遵守了这一承诺。到目前为止,我在内核工具方面的经验是,它表现得非常出色(除非您关心设备驱动程序的一小部分)。可以牺牲几个方面的透明度,但这在一般的灾难恢复框架中更具挑战性。


#2 楼

DynamoRIO Google代码项目中有一个分支称为“ DRK”,提交1323的日志消息为“ DRK:DynamoRIO作为Linux内核模块”。那应该包含您要查找的代码,尽管由于我无法保证之前没有使用过DynamoRIO。

#3 楼

最近,发布了两个新的内核检测系统,其中我是其中一个的创建者:



Granary,主要用于模块检测。这是我创造的工具。粮仓内部使用DynamoRIO的某些部分,但工作方式却大不相同。 Granary的目标是使开发调试和分析工具变得容易。 HotDep'13中将有一篇论文,涉及基于Granary构建的主要内存调试工具之一。



评论


我还没有尝试过,但似乎合法。我了解您的目标,所以+1

–RobotHumans
13年10月2日在22:30