正在学习 DynamoRIO ,为了方便后面的同学入门,特写了这一个系列的博客,主要通过分析 DynamoRIO 自带例子的源码 来带领大家入门。
要明白DynamoRIO 的工作机制,看文档是必不可少的:
首先是配置问题:文档链接(http://dynamorio.org/docs/page_deploy.html#win_deploy)
一般情况下,在学习阶段,我们不需要去特殊配置环境变量什么的,直接下载 DybamoRIO 的 release 版本。我们写好 客户端 的 .c 文件后,使用 cmake 来调用 DynamoRIO 库进行编译。编译完成后,直接使用 drrun.exe 去加载客户端 并运行目标程序。
这里我主要说一下cmake 的问题,至于如何使用 drrun.exe 可以自己看文档。
DynamoRIO Release 发行版里 有这样一个文件夹: DynamoRIO-Windows-7.0.17873-0\cmake,cmake文件夹里存放的是一堆以 .cmake结尾的文件,这些是cmake 的配置文件,主要是用于第三方库的配置。也就是说,当我们使用 DynamoRIO 作为第三方库时,就需要这些配置文件里的信息 来帮助我们进行编译与链接。那么如何使用呢?
这里我给一个 CMakeLists.txt 文件,CMakeLists.txt 是 cmake 的编译配置文件,cmake根据该文件的信息来组织目标项目。
cmake_minimum_required(VERSION 2.6)
if (NOT "${DynamoRIO_DIR}" STREQUAL "")
project(bbsize)
set(output_dir "${PROJECT_BINARY_DIR}