【Android安全】Soot 静态分析教程

news/2025/3/15 11:14:38/

参考教程

https://github.com/noidsirius/SootTutorial

Windows Soot 环境配置

下载代码

git 拷贝仓库

git init
git clone https://github.com/noidsirius/SootTutorial.git
./gradlew.bat build

报错:Unsupported class file major version 57

./gradlew.bat build时,报错如下:

* What went wrong:
Could not compile settings file 'E:\AcademicWorkplace\Soot\Soot1\SootTutorial\settings.gradle'.
> startup failed:General error during semantic analysis: Unsupported class file major version 57

原因:
这是因为Gradle 5 is incompatible with Java 13

需要:
或者update Gradle (the wrapped version in your project) to Gradle 6 or later
或者use a lower version of the JRE

解决方法:
需要进入\SootTutorial\gradle\wrapper
修改gradle-wrapper.properties
改为:distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip

参考:https://stackoverflow.com/a/63548566

报错:\Library\Android\sdk\platforms does not exist!

./gradlew.bat build时,报错如下:
例如

dev.navids.soottutorial.android.CGPTATest > testPointsToAnalysis FAILEDsoot.AndroidPlatformException: Android platform directory 'C:\Users\juruo\Library\Android\sdk\platforms' does not exist!

原因:
Soot代码中使用了Android-SDK,但是系统环境变量中没有"ANDROID_HOME"
例如AndroidCallgraph.java中:
在这里插入图片描述
解决方法:
添加系统环境变量:
在这里插入图片描述

build成功

在这里插入图片描述

生成Android app的call graph

命令格式:

./gradlew.bat run --args="AndroidCallGraph <CG_Algorithm> (draw)"

例如:

./gradlew.bat run --args="AndroidCallGraph SPARK draw"

Soot Code在AndroidCallgraph.java
Example APK在/SootTutorial/demo/Android/st_demo.apk
在这里插入图片描述
结果:
在这里插入图片描述


http://www.ppmy.cn/news/46780.html

相关文章

编译预处理:#if

用法 #if <expression> … #elif … #end <expression> 是整数常量比较的表达式&#xff0c;例如&#xff1a; defined表达式&#xff0c;例如 defined AAA, 或者 defined(AAA), 如果AAA是一个宏定义&#xff0c;return true&#xff0c;否则&#xff0c;return…

2023年全国最新安全员精选真题及答案55

百分百题库提供安全员考试试题、建筑安全员考试预测题、建筑安全员ABC考试真题、安全员证考试题库等&#xff0c;提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助你考试轻松过关。 81.&#xff08;单选题&#xff09;扣件式钢管模板支架的剪刀撑应用旋转扣件进行固定&…

HTML—javaEE

文章目录 1.认识HTML2.HTML标签的使用2.1注释2.2标题2.3段落2.4换行2.5字体加粗、斜体字、删除线、下划线2.6图片2.7超链接2.8表格2.9列表2.10表单标签2.11div2.12span 3.HTML特殊符号 1.认识HTML &#xff08;1&#xff09;HTML是网页的编程语言&#xff0c;文件的内容主要由…

lamp 架构的搭建

php 解释动态页面 php来连接数据库 mysql 页面信息和端口信息 存放数据 apache 前端web服务器&#xff0c;展现页面 源码编译安装这三个服务 配置下载apache: systemctl stop firewalld 关闭安全机制&#xff0c;防火墙 可以一条命令:systemctl is-enabled firewalld 和 s…

计组2.3——浮点数的表示和运算

计组2.3 浮点数 #mermaid-svg-hwjyO2bt7hFXy1eD {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-hwjyO2bt7hFXy1eD .error-icon{fill:#552222;}#mermaid-svg-hwjyO2bt7hFXy1eD .error-text{fill:#552222;stroke:#552…

Python Web 深度学习实用指南:第三部分

原文&#xff1a;Hands-On Python Deep Learning for the Web 协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 本文来自【ApacheCN 深度学习 译文集】&#xff0c;采用译后编辑&#xff08;MTPE&#xff09;流程来尽可能提升效率。 不要担心自己的形象&#xff0c;只关…

MySQL客观题

MySQL客观题 在数据库的三级模式结构中&#xff0c;描述数据库中全体数据的全局逻辑结构和特性的是&#xff08; A &#xff09; A 模式 B 内模式 C 存储模式 D 外模式 数据库系统的特点是&#xff08; A &#xff09;、数据独立、减少数据冗余、避免数据不一致和加强了数据保…

巨坑!如果你cuda是11.1而cuda toolkit是9.2,导致无法安装apex,同时你还没有服务器权限去换驱动

非常奇葩的问题。gpu是3090&#xff0c;cuda是正常的11.1&#xff0c;但是nvcc -V输出的却是9.2。 本来很简单&#xff0c;重新安装一下&#xff0c;把两个版本对齐了就好了&#xff0c;但是我用的是实验室的服务器&#xff0c;我是没有权限去在系统上安装东西的&#xff0c;连…