soot生成控制流图

https://www.sable.mcgill.ca/soot/soot_download.html中下载soot.jar

http://www.onlinedown.net/soft/1162507.htm下载rt.jar

  1. 将jdk换成1.7版本的

http://www.pc6.com/softview/SoftView_384691.html

  1. 修改环境变量

  1. 删除C:\Windows\System32下的三个文件

至此jdk替换完成,但是我的eclipse需要jdk1.8,所以只能用命令行运行soot

  1. 在链接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了

 

  • 0
    点赞
  • 0
    评论
  • 3
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

csdnApril

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值