在https://www.sable.mcgill.ca/soot/soot_download.html中下载soot.jar
http://www.onlinedown.net/soft/1162507.htm下载rt.jar
- 将jdk换成1.7版本的
http://www.pc6.com/softview/SoftView_384691.html
- 修改环境变量
- 删除C:\Windows\System32下的三个文件
至此jdk替换完成,但是我的eclipse需要jdk1.8,所以只能用命令行运行soot
- 在链接https://www.bodden.de/2008/08/21/soot-command-line/中下载三个文件
和要用的java文件放在同一个文件夹(注意此处不要放.Class文件,放了接下来反而会报错)
直接输入java -cp sootclasses-2.3.0.jar:jasminclasses-2.3.0.jar:polyglotclasses-1.3.5.jar soot.Main -cp . Triangle会报错
链接里有三种解决方案,我都试过,只有第三种有用(C:\Users\April\Desktop\test2>java -cp soot-2.5.0.jar soot.tools.CFGViewer -pp -cp . NextDate偶尔第二种有用)
C:\Users\April\Desktop\test1>java -cp jasminclasses-2.3.0.jar;polyglotclasses-1.3.5.jar;sootclasses-2.3.0.jar soot.Main -allow-phantom-refs -cp . Triangle
此处注意一个细节:windows下引入多个包应该用分号,Linux和Mac osx才是冒号
生成一个文件夹
这个文件夹里只有一个.class文件,让人头大
然后参考了这个https://www.cnblogs.com/Danning1996/p/6701692.html教程
CFGViewer,emmmmm没找到
下载graphviz参考https://www.cnblogs.com/shuodehaoa/p/8667045.html链接
安装成功
C:\Users\April\Desktop\test1>java -cp soot-2.5.0.jar soot.tools.CFGViewer -allow-phantom-refs -cp . Triangle
然后在sootOutput文件夹目录下dot -Tpng -o Triangle.png "void main(java.lang.String[]).dot"
就能看到生成的png了