摘要:12月中旬的时候又按照页面:http://www.sable.mcgill.ca/soot/tutorial/index.html中的教程More on profiling,继续对Soot的Instrumentation功能学习。上面这个文档中已经把基本内容解释得很清楚了,我这里就简单总结一下。首先,假设要分析的字节码文件对应的源代码文件是:TestInvoke.javaclass TestInvoke{ private static int calls=0; public static void main (String[] args){ for (int i=0; i<10; i++
阅读全文
摘要:今天又结合这里:http://www.sable.mcgill.ca/soot/tutorial/index.html提供的文档,主要学习了Using Soot for profiling: developing a goto Instrumenter和More on profiling两个文档,其实这两个文档也学得不是很懂。但是想记录一点东西:第一篇文档对应的例子是:http://www.sable.mcgill.ca/soot/tutorial/profiler/Main.java下下来以后看到有这样一行代码:PackManager.v().getPack("jtp")
阅读全文
摘要:在Soot的下载页面:http://www.sable.mcgill.ca/soot/soot_download.html中我们可以看到,Soot实际上是依赖于两个框架:Jasmin和Polyglot。对于这两个框架(或软件),我之前不是特别了解,但是在很多地方都可以看到Polyglot,例如,abc(The AspectBench Compiler for AspectJ)就是基于Soot和Polyglot的(怎么这些框架还循环调用?)今天抽了些时间简单搜索了一下,找到了上面两个框架的主页,了解到:前者最早是基于这本书:Jon Meyer. Java Virtual Machine. O
阅读全文
摘要:今天又回顾了一下这篇文档:A Survivor's Guide to Java Program Analysis with Soot中介绍的内容,这个文档第20页介绍了一些使用Soot进行最简单分析的方法,这里把这个章节的第一部分翻译成中文,也算是加深印象吧。安装好Soot的Eclipse插件后,在需要分析的源代码上点击右键——“Soot”——“Process Source File”——“Run Soot”,在弹出的对话框左侧列表中选择“Output Options”——在右侧中间的“Output Format”复选框中选择“Jimple File”,然后,在左侧列表中选择“Phas
阅读全文
摘要:周末的时候,抽时间继续学习了一下Soot。主要是看这个页面:http://www.sable.mcgill.ca/soot/tutorial/index.html中第二栏“Using Soot as a Compiler Framework”中的最基础的教程:Creating a Class File from Scratch,这个教程的PDF文件可以点击此处下载。通过昨天的学习,明白了这个教程的意义,是通过手动调用Soot API生成Hello World程序这种方式来了解基于Soot框架的最基本编程方法,熟悉Soot中Scene,SootClass等类的基本使用方法。下面以Soot 2.4
阅读全文
摘要:今天晚上参考并学习了Eric Bodden的一篇博文,主要讲用temiflex和Soot来对Dacapo数据集进行静态分析,具体请参考:http://code.google.com/p/tamiflex/wiki/DaCapoAndSoot这篇文章中已经对基本的步骤讲得很清楚,但几个命令行需要进行略微的修改,这里也算是给大家提供方便吧。假设我们使用的poa和pia的版本分别是:poa-1.1.1.jar 和 pia-1.1.jar那么需要正确运行上面URL中的例子,只需要控制台下输入三个命令:java -javaagent:poa-1.1.1.jar=out/avrora-small -jar
阅读全文
摘要:这篇博客的题目是个疑问句,因为我确实不清楚为什么。从Soot的官网:http://www.sable.mcgill.ca/soot/并不能看出其可以作为Instrumentation的Framework,只是介绍是一个优化的Framework。今天抽时间学习了这篇最初的文章:R. Vall, E-Rai, P. Co, E. Gagnon, L. Hendren, P. Lam, and V. Sundaresan, "Soot - a Java bytecode optimization framework," in Proceedings of the 1999 con
阅读全文