在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了

本文介绍了如何使用Soot工具生成控制流图。首先,从指定网站下载soot.jar和rt.jar,确保使用JDK1.7。接着,替换系统中的JDK,并通过命令行运行Soot,但需要注意命令行参数的正确配置。在遇到错误时,尝试了多种解决方案,最终成功生成了.class文件。然后,参照教程安装graphviz以查看生成的CFG,通过执行特定命令,将.dot文件转换为PNG图像。
6184

被折叠的 条评论
为什么被折叠?



