soot专题

Soot获取Android应用控制流图

Soot简介 Soot是一个Java静态分析框架,它提供了四种中间(representation)表现用于分析与转换Java字节码.Soot既可以作为优化和检查class文件的工具也可以作为一个开发与优化Java字节码的框架。 使用Soot可以对Android应用进

Soot检测Android应用中Email地址

Soot简介 Soot是一个Java静态分析框架,它提供了四种中间(representation)表现用于分析与转换Java字节码.Soot既可以作为优化和检查class文件的工具也可以作为一个开发与优化Java字节码的框架。 使用Soot可以对Android应用进行静态分析,Android静态分析指APK不在运行的情况下,根据某些代码特征来分析应用具有哪些行为。 代码实现 工程依赖的

Soot检测Android应用中URL地址

Soot简介 Soot是一个Java静态分析框架,它提供了四种中间(representation)表现用于分析与转换Java字节码.Soot既可以作为优化和检查class文件的工具也可以作为一个开发与优化Java字节码的框架。 使用Soot可以对Android应用进行静态分析,Android静态分析指APK不在运行的情况下,根据某些代码特征来分析应用具有哪些行为。 代码实现 工程依赖的ja

使用SOOT进行代码分析(一)

代码分析--SOOT Soot是一个由java编写的、代码优化和分析工具,它可以分析源代码,并对中间文件进行分析。 SOOT作为一个eclipse插件,能够在eclipse中进行安装和运行,下面简单介绍一下SOOT插件的安装过程: 打开eclipse,在Help中选择Install New Software,点击add,Name随便写一个,网址输入:http://sable.github.i

soot基础 -- soot的数据结构与java语言的结构

1.前言 Soot 是另一种将java语言的结构进行了拆分,然后Soot将拆分之后然后形成了一种面向对象的结构。(KEY) 2.弄清 soot内部结构  的3个 关键 问题 ① Java中语言的结构是什么样子的? ② Java中对应成Soot中面向对象的方式是如何表示的? ③ 如何从面向对象的角度去查看代码?根据代码能获得哪些信息? 3.结构探讨 3.1.java语言的结构

Soot数据流 -- 数据流框架

1.数据流分析框架关键步骤。 个人的问题:  什么叫做数据流分析?为何将下列问题作为关键步骤? 关键问题及步骤(soot生存手册中提到): 1.1. 决定分析的本质是什么:是否向前后者向后的数据分析?是否考虑分支,还是不进行考虑?等等 1.2. 确定自己想进行如何粗略的估计:是可能的分析还是必不可少的分析?从效果上看,你需要决定,在合并通过一个节点的信息的时候,你是需要进行结

1.soot基础 -- 基本知识

soot 项目官方说明 : https://sable.github.io/soot/ soot Tutorials : https://github.com/Sable/soot/wiki/Tutorials 1.注意: soot 安装时,因为java版本问题可能无法找到java中的类,将(java 1.8 换成 1.7即可) 2.注意:eclipse 上若不能安装插件,或者插件不显示

soot基础 -- 从头开始创建一个类

原文地址:点击打开链接 首先,我们需要创建一个类,为了创建一个类文件(class file),需要下面这些步骤 加载 Java.lang.Object 和库类(Library Classes)      加载 java.lang.Object,它是java类层次的根。     当我们通过扩展(extends)Soot的框架时,这步并非是必须的,因为在这种情况下,当用户代码被调用时类文件的

soot基础 -- soot中基本的对象

soot有着庞大的类层次结构。这篇文章将给读者介绍扩展soot时候一些非常重要的类。   这里我们主要介绍Body,Unit,Local,Value,UnitBox以及ValueBox的概念。 关于body的介绍   在指导手册中,说明了如何创建一个类,Body的概念被简单提到了,这里将进行更详细的介绍。   Soot使用Body来存储一个方法的代码。在Soot中有4种类型的B

soot异常 -- Failed to load java.lang.CharSequence

原因 soot中需要使用一定的jre中的内容的。如果版本不能满足要求,则会出现无法加载需要的类的异常。 解决办法 换一个java版本编译,运行soot. (在eclipse中,我是通过对soot项目设置单独的编译器(java7),然后重新对soot项目进行编译解决这个问题的 ) 参考: https://www.se.informatik.uni-kiel.de/en/research/

Soot 工具命令行参数解释完整版

Soot 是 McGill 大学的 Sable 研究小组自 1996 年开始开发的 Java 字节码分析工具,它提供了多种字节码分析和变换功能,通过它可以进行过程内和过程间的分析优化,以及程序流图的生成,还能通过图形化的方式输出,让用户对程序有个直观的了解。尤其是做单元测试的时候,可以很方便的通过这个生成控制流图然后进行测试用例的覆盖,显著提高效率。 官网链接如下:https://soot-os

一个soot带来的java.lang.IncompatibleClassChangeError

最近基于soot在做一些中间变换,在处理一个APK后报了一个IncompatibleClassChangeError,这种错误通常是编译时类路径与运行时类路径不同导致,但是我原始的APK可以正常运行,但是经过soot处理后的APK不能正常运行,因此怀疑是某些类被改变了。下面是该APK的源码(修改自Android cts部分源码): public class MethodTest {//