DynamoRIO 进行文件的读写操作:
1. 打开文件
file_t dr_open_file( const char *fname,
uint mode_flags
)
该函数返回打开的文件的句柄。
以 fname 为路径打开一个文件,如果这个文件不存在,则进行创建。注意,尽量使用绝对路径。如果使用相对路径,则会利用进程初始化时设置的当前目录 以尽力而为的方式 转换为绝对路径。
文件打开的权限模式由 mode_flags 设定。mode_flags 的值是 DR_FILE_* 。比如下面的:
DR_FILE_READ
DR_FILE_WRITE_APPEND
DR_FILE_WRITE_ONLY
DR_FILE_WRITE_REQUIRE_NEW
...
具体内容可以在DynamoRIo 文档搜索 dr_open_file
2. 关闭文件
void dr_close_file( file_t )
注意别忘了关闭文件,exit 事件的回调函数里关闭。
3. 向文件里写入字符串
ssize_t dr_fprintf ( file_t f,
const char * fmt,
...
)
向文件f 里写入格式化字符串。
注意这个命令除了可以向文件里写入内容,还可以向 STDOUT, STDERR 等写入内容。
比如: dr_fprintf(STDOUT, “hello w