DynamoRIO工作原理

  1. DynamoRIO架构
    ==============

下图描述了DynamoRIO设计架构:
DynamoRIO工作原理_第1张图片
下图展示了DynamoRIO的各个组件是如何运转的:

DynamoRIO工作原理_第2张图片
2. 指令缓存(Code cache)

DynamoRIO是一个进程级别的emulation软件,工作在应用和操作系统之间。通过code caching, linking和 trace building提高了emulation的效率。
DynamoRIO运行的代码和应用程序本身的代码,通过context switch分开。应用程序代码被拷贝到指令缓存中。
这些缓存中的代码,会像原生代码一样执行,直到遇到一个跳转指令,应用的machine state会被保存,控制转回到DynamoRIO,去寻找跳转指令所在的basic block。(a context switch)
纯粹的emulation比原生代码执行慢大概300倍,如下图所示:
DynamoRIO工作原理_第3张图片

你可能感兴趣的:(动态二进制分析)