1. 程式人生 > >Soot生成代碼控制流圖

Soot生成代碼控制流圖

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生成代碼控制流圖