最近在学习soot来进行analysis.下面是一些学习的笔记。
Soot有三种中间代码,这里以jimple为主,基本的Soot obejct.
1.
Body:Soot uses a Body to store code for a method.More precisely, a Body has three important features: chains of locals, traps and units.
Locals are the local variables in the body; traps say which units catch which exceptions; and units are the statements themselves
2.
Local variables:The collection of Locals is stored in the
localChain and accessible via
body.getLocals().
3.
Traps:To support Java exception handling, Soot Body’s define the notion of traps
4.
Units:The most interesting part of a Body is its chain of Units. This is the actual code contained in the Body. Jimple provides the Stmt implementation of Unit.
5.
Value:
•
Locals
• Constants
• Expressions (Expr)
• ParameterRefs, CaughtExceptionRefs and ThisRef
6.Boxes
1.a Box is a pointer.
2.A more descriptive name for Box would have been Ref. Unfortunately, Ref has a different meaning for
Soot.
Soot.