1.前言
Soot 是另一种将java语言的结构进行了拆分,然后Soot将拆分之后然后形成了一种面向对象的结构。(KEY)
2.弄清 soot内部结构 的3个 关键 问题
① Java中语言的结构是什么样子的?
② Java中对应成Soot中面向对象的方式是如何表示的?
③ 如何从面向对象的角度去查看代码?根据代码能获得哪些信息?
3.结构探讨
3.1.java语言的结构
3.2.soot中对象的数据结构
- Scene(场景类)
场景类中包含了大量的信息,是其中最复杂的数据结构。下图只就我关注的场景进行说明:
- SootClass
- java中类经过转化,变成了SootClass中用对象表示的类的数据结构.。
- java代码 --> 对象 --> 用面向对象角度分析 --> 省去对于原始java代码的字符串的解析。
- SootClass,SootFiled,SootMethod,Body等结构如下图:
更多具体内容查看 :