DynamoRIO,插桩库的编译
据传说,有一套插桩库叫做“DynamoRIO”,它很出名,而我一直想用它,但是没机会,
今天突然来了机会了,我希望针对普通程序做一套接口监视系统,需要用到这套插桩库,
所以,我花了若干个小时来学习如何编译它,直到刚才,我做完了完整的流程。
这里记录一下吧,免得未来我又忘了。
首先,需要准备一些东西,
1:一个VS IDE,我这里准备的是VS2017,
2:安装好ActivePerl,可以去这里下载,随便下载个 perl64,装上就好了,一定要安装 https://www.activestate.com/products/perl/downloads/
3:安装一个 doxygen ,没它不行,下载一个,安装上,https://www.doxygen.nl/download.html#oldrel
4:最最重要的,cmake,下载一个,安装上,要cmakegui,地址就不发了
好了,开工了
1:去github拿一份 dynamorio-master ,解压了,(这是废话)
2:打开cmakegui,配置好各种信息,其实就是配置好两个路径
3:点 configure,2017 default 就行了
4:点Finish,cmakegui开始工作了,肯定会出问题的,所以我们只要等待它报错就好了
一点都不奇怪,
第一个错误
4.1:
它告诉了我们哪里有错误,就去找对应的文件,make/cpp2asm_support.cmake
说这个玩意不存在,给它一个就好了,上面要的是ml,那就给它吧
这里需要自己动手来填,后面遇到问题也是这样
4.2
缺少 mc,给它。
4.3
要 perl ,给它
4.4
要 lib 给它
5:它要的所有东西都给它之后,配置完成
6:Generate,很顺利,成功了
7:直接OpenProject
直接生成解决方案吧,119个项目,虽然工程不少,但是也就10来分钟就编完了,比llvm快多了,快了不止一个档次。
8:这时候如果还是无法编译,提示$ 什么的,就在所有工程中加入“DYNAMORIO_STANDALONE”宏,即可。
(不加其实也没问题,只是使用了不同的接口)
全部成功,无失败
9:好了,可以尝试使用了。
编完是一回事,能不能用是另外一回事。自己去体验吧。
补充一下,这玩意,32位sln和64位的生成是独立的,所以要编译64位的,需要重新配置,重新生成。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」