Soot - A Java opt. framework
文章平均质量分 69
Soot框架使用,内核研究
Canliture
hello, 程序分析!
展开
-
南京大学《软件分析》课程课后作业(非Bamboo)
南京大学软件分析课程作业参考实现,非官方代码。https://github.com/canliture/nju-software-analysis-homework欢迎提bug/star/pr文档docs/org为南大课程的作业原题pdfdocs/soot为soot参考资料src/main/java/com/canliture/soot/每个子目录下的作业都有一个README,作为作业的简单说明代码com.canliture.soot.ass1第一次作业的代码实现常量传播c原创 2021-10-09 23:06:32 · 2102 阅读 · 2 评论 -
IFDS论文算法精解:应用于污点分析的例子
这里以一个污点分析的例子来说明IFDS论文中的Tabulation算法(IFDS Solver求解器)是怎么工作的。1. 这里给定两个函数,它们之间有一条从source到sink的污染路径2. 最终的有效的污点传播相关的边如下所示;其中红色边对应于FlowFunction,也叫TransferFunction或者TransferRelation等术语。表示数据流经过一条语句后的流向。绿色边PathEdge为论文中描述的PathEdge,蓝色SummaryEdge为摘要边,避免重复计算。3. 整原创 2021-09-23 20:20:42 · 3456 阅读 · 1 评论 -
FlowDroid架构剖析
最近算是把FlowDroid源代码翻了一遍,并非通读,而是把整个系统的逻辑/设计整理了一下。这里稍微记录一下。由于FlowDroid能够分析Android程序,所以有一部分代码是对Android相关领域做适配,由于个人目前的工作对Android静态分析还不是很涉及,所以在分析FlowDroid源码时省略了Android相关的适配代码,主要是作通用Java相关的分析。FlowDroid几大组件:EntryPointCreator:使用EntryPointCreator指定分析的入口SourceS.原创 2021-08-02 21:51:07 · 1832 阅读 · 3 评论 -
控制流的支配者关系分析以及Soot中的实现
由于仍然有些概念不是很清晰,这里仅当学习记录。1. 支配关系我们说d dom i,节点d支配节点i,如果从entry到节点i的所有可能执行路径都包含d。所以dom关系是自反的,传递的,反对称的自反性:a dom a,每个节点都支配它自己传递性:a dom b, b dom c, 则a dom c反对称性:a dom b, b dom a, 则a与b相等根据自反偏序集的定义,dom关系是自反偏序(简称偏序)的。那么我们可以用Hasse图(哈塞图)表示支配关系,也叫支配树。2. 立即支配.原创 2021-07-26 00:35:52 · 822 阅读 · 1 评论