soot代码分析框架的基础知识(一)
Class categories
argument classes:指的是你给soot指定的classes。使用命令行工具时,argument classes就是显示列出来的需要分析的class或者由-process-dir选项指定的文件夹中的类;使用eclipse插件时,argument指的就是你使用soot插件时选择的类,或者当前完整项目中的所有的类。
library classes:被application classes引用的类,但不是application classes。它们被用于转换分析过程中的类,但它们不会被转换输出等。
interface UI{public void display(String msg);
}
class HelloWorld{public static void main(String[] arg){UI ui = new TextUI();ui.dispaly(“HelloWorld”);}
}
import java.io.*;
class TextUI implements UI{public void display(String msg){System.out.println(msg);}
}
命令行1:
java soot.Main HelloWorld
那么:
HelloWorld是argument classes和applicationclasses。UI和TextUI则是library classes,以及被String和System.out引用的java.lang.String,java.io.PrintStream等都是library classes.
命令行2:
java soot.Main –app HelloWorld
那么:
HelloWorld是argument classes,HelloWorld和被它引用的类都是applicationclasses.
命令行3:
java soot.Main –i java. –app HelloWorld
那么:
HelloWorld仍然是argument classes,applicationclasses会包含名字以java.开始的java runtime classes、HelloWorld、UI和textUI以及java runtime中的引用。
常用Options
General Options:
-app
在application mode下运行
-w
-whole-program
在whole-program下运行
Input Options:
-cp path
-soot-class-path path
-soot-classpath path
上述三个使用path作为classpath去寻找argument class
-pp(-prepend-classpath)
prepend the given soot classpath to thedefault classpath。被作为寻找类型层次的包
-process-dir dir
-process-path dir
上述两个将dir中的所有类作为要处理分析的类
-android-jars path
使用path作为寻找android.jar文件的路径
-force-android-jar path
强行使用path作为寻找android.jar文件的路径
-src-prec format
设置输入文件的格式
-main-classclass
为whole-program分析设置main class
Output Options
-d dir
-output-dir dir
设置dir为输出文件夹
-f format
-output-foramt format
设置soot的输出文件格式
ApplicationMode Options
-i pkg
-include pkg
设置pkg中的类为application classes
-x pkg
-exclude pkg
排除pkg中的类作为application classes
-include-all
被argument classes引用的类都作为application classes
soot代码分析框架的基础知识(一)相关推荐
- soot代码分析框架的基础知识(二)
Soot中的结构 本篇内容简单概括一下:soot中存在的主要对象.soot的执行流. Soot中提供了几种对象,分别是:Scene.SootClass.SootMethod.SootField.Bod ...
- Android DRM框架与基础知识
Android DRM框架与基础知识 Android DRM框架 DRM框架的目的:能让安卓设备可以播放更多的内容,不同的内容和硬件设备可能使用的是不同的内容版权保护机制或者没有版权管理机制,但是安卓 ...
- clang-tidy——静态代码分析框架
clang-tidy--静态代码分析框架 clang-tidy介绍 clang-tidy是一个基于clang的静态代码分析框架,支持C++/C/Objective-C. 它是一个功能更强大的lint工 ...
- 【软考】《希赛教育·软件设计师考前冲刺与考点分析》计算机硬件基础知识——学习笔记
Content 第1章 计算机硬件基础知识 第2章 操作系统基础知识 第3章 程序语言和语言处理程序基础知识 第4章 数据结构 第5章 数据库系统基础知识 第6章 网络基础知识 第7章 软件工程基础知 ...
- Spark —— 闪电般快速的统一分析引擎 —— 入门基础知识
Spark 入门基础知识 Spark 的特点 速度快 使用方便 通用 兼容 Spark 基础 下载 独立部署模式(Standalone) 弹性分布式数据集 Scala shell 1. 数组中的最值: ...
- 计算机知识怎么做框架,计算机基础知识框架.ppt
<计算机基础知识框架.ppt>由会员分享,可在线阅读,更多相关<计算机基础知识框架.ppt(25页珍藏版)>请在装配图网上搜索. 1.计算机基础知识讲座,硬件组成 软件系统 网 ...
- 中专计算机基础知识汇总,【职业中专计算机基础教育分析】 计算机基础知识...
摘要:职业教育是指培养面向具体的职业岗位(岗位群)所需职业能力人才的专业基础教育.而在职业教育中除了开设各专业所需的专业课程外,还要开设一些基础教育来充实学生的能力,为其就业打下坚实的基础.计算机基础 ...
- aspx网页背景图片设置代码_Vue+CSS3制作双螺旋DNA动画:代码详解和基础知识复习
1 效果: 2 知识点: ======= 2.1 html的基础知识. 2.2 css3的基础知识. 2.3 vue的基础知识. 2.4 代码讲解非常清楚,小白看了都会. 3 html骨架: ==== ...
- 三 计算机知识的重要性分析,学习计算机基础知识对中专学生的重要性分析
学习计算机基础知识对中专学生的重要性分析 [摘 要]本文主要介绍了计算机基础知识的内容,阐述了学习计算机基础知识对中专学生的作用,并且通过对计算机基础操作的学习,提高中专学生的计算机应用水平.希望本文 ...
最新文章
- 蚂蚁金服AAAI论文:基于长短期老师的样本蒸馏方法和自动车险定损系统的最新突破...
- linux进程--fork详解(三)
- 花生增产万书波谋定中国农民丰收节交易会 山东科技最高奖
- Android Handler的使用方法
- python修改xml属性值_根据其属性查找xml元素并更改其值
- OpenCV-矩形边框cv::boundingRect
- 【熵】熵,KL散度,交叉熵,最大熵模型
- 简单 常用的git命令
- 强网杯2019线上赛-misc
- Python实现批量采集美女shipin<无水印>
- dell刷sn_像API一样地通过Dell设备SN号自动获取准确的设备型号
- OpenCV-Python教程:阈值化(threshold,adaptiveThreshold)
- vim 配置(有插件)
- 《从零开始的 RPG 游戏制作教程》第十五期:地图发布,以及再见
- HDMI 连接笔记本与显示器
- IPv6 内网穿透(一)
- 望而生畏的C语言在逐渐凋零
- rejected from java.util.concurrent.ThreadPoolExe错误
- 高校版MATLAB license checkout failed问题及解决
- java基于ssm的万卷图书馆借阅管理平台