Skip to content

Commit c8bb54b

Browse files
author
Eric Bodden
committed
1 parent baa7df3 commit c8bb54b

File tree

3 files changed

+58
-38
lines changed

3 files changed

+58
-38
lines changed

CHANGES

+6-23
Original file line numberDiff line numberDiff line change
@@ -22,25 +22,8 @@ Improvements and API changes in trunk
2222
course, such an analysis may be unsound - you get what you are asking
2323
for.
2424
5. Added new packs "wjpp" and "wspp" for adding pre-processors.
25-
6. Thanks to Matthias Perner, added support for handling invokedynamic
26-
instructions. The instructions are handled as follows:
27-
- On the Jimple, Grimp and Baf level, invokedynamic instructions
28-
appear as DynamicInvokeExpr with a static SootMethodRef that
29-
has class java.dyn.InvokeDynamic as target class. This is in
30-
accordance with the internal handling in JDK 7.
31-
- SootMethodRefs which have java.dyn.InvokeDynamic as target class
32-
may not be resolved: calling resolve() will throw an exception
33-
- On the Jasmin level, invokedynamic instruction appear in the
34-
form "invokedynamic <methodName>(<methodParams>)<methodRetType>".
35-
In particular, there is no target class given.
36-
- Jasmin translates this into an invokedynamic instruction with
37-
two arguments:
38-
a) a NameAndType attribute referring to
39-
<methodName>(<methodParams>)<methodRetType> and
40-
b) the constant "0" (two zero bytes, i.e., a short);
41-
according to the VM spec this is reserved for future use
42-
7. ReflectiveCallsInliner now supports field set/get through reflection.
43-
8. Integrated a novel context-sensitive points-to analysis that uses
25+
6. ReflectiveCallsInliner now supports field set/get through reflection.
26+
7. Integrated a novel context-sensitive points-to analysis that uses
4427
a memory-efficient geometric encoding. The analysis was presented
4528
in the following paper:
4629
Xiao Xiao and Charles Zhang. Geometric Encoding: Forging high
@@ -51,12 +34,12 @@ Improvements and API changes in trunk
5134
this! You can find the code in soot.jimple.spark.geom. There are
5235
new phase options in cg.spark to enable and configure this
5336
analysis.
54-
9. Improved support for custom entry points in the points-to analysis.
55-
10.Added option allowing putiry analysis to add a "Pure" bytecode
37+
8. Improved support for custom entry points in the points-to analysis.
38+
9. Added option allowing putiry analysis to add a "Pure" bytecode
5639
attribute for pure methods.
57-
11.GenericAttribute instances are now automatically read from class
40+
10.GenericAttribute instances are now automatically read from class
5841
files and stored in class files.
59-
12.Soot now has virtually complete support for invokedynamic.
42+
11.Soot now has virtually complete support for invokedynamic.
6043
See tutorial/invokedynamic for details.
6144

6245
Improvements and API changes in version 2.4.0

Release_Notice

+51-14
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,52 @@
11
Dear Soot Users,
22

3-
We are pleased to announce that Soot version 2.4.0 is now available
3+
We are pleased to announce that Soot version 2.5.0 is now available
44
at: http://www.sable.mcgill.ca/soot/
55

66
This release contains the following additions and improvements:
77

8-
1. Hossein Sadat-Mohtasham's implementation of program dependency graphs
9-
10-
2. Support for creating sound call graphs even for programs that use
11-
reflection, custom class loaders and runtime-generated classes.
12-
For this purpose, Soot uses TamiFlex to create a runtime log file that
13-
contains information about how refleciton is being used. Spark then
14-
uses the log file during call-graph and points-to graph construction.
15-
See http://code.google.com/p/tamiflex/wiki/DaCapoAndSoot for details.
16-
8+
1. Modified SourceLocator so that it will automatically load a SootClass
9+
from Soot's own JAR file if the class cannot be found on the
10+
soot-classpath, but ONLY if the class is in package soot.rtlib.
11+
See package documentation for soot.rtlib for more details.
12+
2. The option -process-dir how has an alias -process-path, which makes
13+
sense because Soot can also process JAR files. Also, -keep-line-numbers
14+
now defaults to true. This is because so many people ask about how to
15+
access line numbers.
16+
3. Removed "org.apache" package from the default excludes list because
17+
that, by default, leads to Soot not analyzing anything of tomcat, for
18+
instance. This change follows the principle of least surprise.
19+
4. Added option no-bodies-for-excluded that allows soot This
20+
option causes Soot to not load any method bodies of classes from the
21+
"exclude" packages (see -exclude option), even in whole-program mode,
22+
unless the class is explicitly as a "basic class".
23+
-no-bodies-for-excluded implies -allow-phantom-refs, as it uses the
24+
phantom-refs mechanism to model classes that are not loaded.
25+
The intent of this flag is to allow whole-program analyses to execute
26+
quickly on little toy examples, disregarding the Java runtime. Of
27+
course, such an analysis may be unsound - you get what you are asking
28+
for.
29+
5. Added new packs "wjpp" and "wspp" for adding pre-processors.
30+
6. ReflectiveCallsInliner now supports field set/get through reflection.
31+
7. Integrated a novel context-sensitive points-to analysis that uses
32+
a memory-efficient geometric encoding. The analysis was presented
33+
in the following paper:
34+
Xiao Xiao and Charles Zhang. Geometric Encoding: Forging high
35+
performance context sensitive points-to analysis for Java.
36+
In ISSTA 2011: International Symposium on Software Testing and
37+
Analysis, Toronto, Canada, 2011
38+
The code was contributed to Soot by Richard (Xiao) Xiao. Thanks for
39+
this! You can find the code in soot.jimple.spark.geom. There are
40+
new phase options in cg.spark to enable and configure this
41+
analysis.
42+
8. Improved support for custom entry points in the points-to analysis.
43+
9. Added option allowing putiry analysis to add a "Pure" bytecode
44+
attribute for pure methods.
45+
10.GenericAttribute instances are now automatically read from class
46+
files and stored in class files.
47+
11.Soot now has virtually complete support for invokedynamic.
48+
See tutorial/invokedynamic for details.
49+
1750
Also we incorporated fixes to numerous bugs. Thanks for reporting bugs
1851
and/or providing fixes!
1952

@@ -28,7 +61,11 @@ http://svn.sable.mcgill.ca/wiki/index.php/SootProject. The Soot team
2861
will be using this site for discussing upcoming work, so if you would
2962
like to know what's going on look there.
3063

31-
Regards,
32-
33-
Eric Bodden
34-
Software Technology Group, Technische Universit�t Darmstadt
64+
Have fun,
65+
Eric
66+
--
67+
Eric Bodden, Ph.D., http://bodden.de/
68+
Head of Secure Software Engineering Group at EC SPRIDE
69+
Principal Investigator in Secure Services at CASED
70+
Tel: +49 6151 16-75422� � Fax: +49 6151 16-72051
71+
Room 3.2.14, Mornewegstr. 30, 64293 Darmstadt

credits

+1-1
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ Nomair Naeem (nomain.naeem@mail.mcgill.ca)
9696
- Dava decompiler
9797

9898
Matthias Perner (snafu@chaos-darmstadt.de)
99-
- invokedynamic support
99+
- inital invokedynamic support based on JDK7 beta
100100

101101
Chris Pickett (cpicke@sable.mcgill.ca)
102102
- documentation

0 commit comments

Comments
 (0)