# Daikon不變量檢測工具的安裝 :::warning 1.以下使用nano作為文本編輯器 安裝: ``` sudo apt install nano ``` 2.如果某一步驟卡住 可以按enter試試看 按enter後等一下沒意外就可以繼續跑了 ::: ## 安裝java ### 安裝 java 11 openjdk ``` sudo apt update sudo apt install openjdk-11-jdk ``` ### 確認版本 ``` java -version ``` 出現以下訊息表示安裝成功,版本為11.0.19  ### 設定環境變數 安裝好java後,先到下列目錄確認java的根目錄 ``` cd /usr/lib/jvm/ ls ```  確定為java-1.11.0-openjdk-amd64 之後修改環境變數檔案,將java的bin/java加入環境變數 ``` sudo nano /etc/environment ``` 添加下列文字到檔案中(不要修改PATH) ``` JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64" ``` 會發現路徑為剛剛確認的java根目錄,之後按下: ctrl+o (保存) ctrl+x (退出)  修改後需要重新套用/etc/environment的設定 ``` source /etc/environment ``` 確認設定成功 ``` echo $JAVA_HOME ```  ## DAIKON安裝 ### 建立名為daiknparent資料夾,並下載daikon到其之下,並解壓縮,得到daikon ``` mkdir daikonparent cd daikonparent wget http://plse.cs.washington.edu/daikon/download/daikon-5.8.16.tar.gz tar zxf daikon-5.8.16.tar.gz ``` ### 設定daikon的環境變數 ``` cd sudo nano .bashrc ```  加入下列文字到最下面 ``` export DAIKONDIR=daikonparent/daikon-5.8.16 source $DAIKONDIR/scripts/daikon.bashrc ``` :::info DAIKONDIR的路徑不用雙引號 :::  之後套用設定 ``` source .bashrc ``` :::danger 成功畫面如下  如果出現任何訊息都代表設定錯誤,請檢查上面的步驟或路徑名稱 ::: ### 安裝kvasir ``` cd $DAIKONDIR cd .. git clone https://github.com/codespecs/fjalar.git ``` ### 安裝相關套件 ``` sudo apt install gcc sudo apt install binutils-dev sudo apt install zlib1g-dev ``` :::info zlib1g-dev中的b1g中間的文字是羅馬數字的"一" ::: ### 安裝automake ``` sudo apt install make ``` ### 建置kvasir ``` cd $DAIKONDIR sudo make kvasir ``` ### 建置daikon ``` sudo make -C $DAIKONDIR rebuild-everything ``` ### 編譯daikon ``` make -C $DAIKONDIR compile make -C $DAIKONDIR daikon.jar ``` ### 測試是否安裝成功 ``` cd $DAIKONDIR/examples/c-examples/wordplay gcc -gdwarf-2 -no-pie wordplay.c -o wordplay kvasir-dtrace ./wordplay -f words.txt 'Daikon Dynamic Invariant Detector' java -cp $DAIKONDIR/daikon.jar daikon.Daikon --config_option daikon.derive.Derivation.disable_derived_variables=true daikon-output/wordplay.decls daikon-output/wordplay.dtrace ``` 出現這樣就代表成功  並且會生成 inv.gz檔案  保存檔案 ``` java -cp $DAIKONDIR/daikon.jar daikon.PrintInvariants wordplay.inv.gz > yourfilename.txt ``` 後面的txt檔案的名字隨便改成你自己想要的名字,這裡用wordplay.txt  檔案內容如下 ``` sudo nano wordplay.txt ```  reference:https://plse.cs.washington.edu/daikon/download/doc/daikon/index.html#Top
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up