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位的,需要重新配置,重新生成。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM