Soot生成代碼控制流圖
阿新 • • 發佈:2018-10-01
tput info tools www. dot 環境準備 bubuko 版本 .com
Soot可以對代碼進行分析,提供了多種字節碼分析和變換功能,通過它可以進行過程內和過程間的分析優化,以及程序流圖的生成,還能通過圖形化的方式輸出。
http://www.brics.dk/SootGuide/上面有官方的guide
1. 環境準備:
a. 下載安裝java7,不能用java8 (soot3.0.1可以用java8)
b. 下載soot jar包 https://www.sable.mcgill.ca/soot/soot_download.html
c. 設置好 JAVA_HOME
d. 將soot-2.5.0.jar和test.java文件放到同一個目錄下,如 D:\\testflow
2. 運行步驟
a. 命令行方式進入D:\\testflow, 編譯java源文件 javac test.java
b. java -cp soot-2.5.0.jar soot.tools.CFGViewer --soot-classpath .;"%JAVA_HOME%"\jre\lib\rt.jar test
,在當前目錄下會生成sootOutput文件夾,生成test.dot文件
c. 下載graphviz(任意版本),解壓後bin目錄裏運行dot -Tpng test.dot -o testflow.png
生成的控制流圖如下:
Soot生成代碼控制流圖