【DynamoRIO入门教程】一:客户端的配置与编译

【DynamoRIO入门教程】一:客户端的配置与编译

2023年7月3日发(作者:)

【DynamoRIO⼊门教程】⼀:客户端的配置与编译正在学习 DynamoRIO ,为了⽅便后⾯的同学⼊门,特写了这⼀个系列的博客,主要通过分析 DynamoRIO ⾃带例⼦的源码 来带领⼤家⼊门。这⾥我主要说⼀下cmake 的问题,⾄于如何使⽤ 可以⾃⼰看⽂档。DynamoRIO Release 发⾏版⾥ 有这样⼀个⽂件夹: DynamoRIO-Windows-7.0.17873-0cmake,cmake⽂件夹⾥存放的是⼀堆以.cmake结尾的⽂件,这些是cmake 的配置⽂件,主要是⽤于第三⽅库的配置。也就是说,当我们使⽤ DynamoRIO 作为第三⽅库时,就需要这些配置⽂件⾥的信息 来帮助我们进⾏编译与链接。那么如何使⽤呢?这⾥我给⼀个 ⽂件, 是 cmake 的编译配置⽂件,cmake根据该⽂件的信息来组织⽬标项⽬。cmake_minimum_required(VERSION 2.6)if (NOT "${DynamoRIO_DIR}" STREQUAL "") project(bbsize) set(output_dir "${PROJECT_BINARY_DIR}/bin") set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${output_dir}") set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}") set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${output_dir}") find_package(DynamoRIO) if (NOT DynamoRIO_FOUND) message(FATAL_ERROR "DynamoRIO package required to build") endif (NOT DynamoRIO_FOUND)# 下⾯的是我们需要修改的部分: add_library(bbcount SHARED bbcount.c) configure_DynamoRIO_client(bbcount) use_DynamoRIO_extension(bbcount drmgr) use_DynamoRIO_extension(bbcount drreg) use_DynamoRIO_extension(bbcount drx)endif ()⼤家使⽤时需⼀部分的内容,add_library 是我们要⽣成的客户端,bbconut 是项⽬名,bbcount.c 是源⽂件。drmgr, drreg, drx 是使⽤的 extension。所以使⽤时只需要把 bbcount 改成对应的客户端名, 把 extension 名修改为我们使⽤的extension。要编写 需要⼀定的cmake 的基础,可以看⼀下 cmake 的官⽅⽂档。然后再命令⾏使⽤:mkdir buildcd buildcmake -DDynamoRIO_DIR=C:cumentsWIN_AFItestDynamoRIO-Windows-7.0.17873-0cmake .. cmake --build . --config Release这⼏⾏命令会编译我们的客户端,不过我们需要安装⼀下 vs ⽤来作为编译器和链接器。这⾥只是简单的描写⼀下配置问题,如果有不会的可以查阅⽂档 或在 下⽅留⾔。

发布者:admin,转转请注明出处:http://www.yc00.com/news/1688384173a129960.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信