Canliture
码龄6年
  • 203,939
    被访问
  • 96
    原创
  • 48,646
    排名
  • 5,219
    粉丝
关注
提问 私信

个人简介:hello, 程序分析!

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2016-12-29
博客简介:

Canliture

博客描述:
hello, 程序分析! 微信交流:trustxyz
查看详细资料
  • 5
    领奖
    总分 1,522 当月 31
个人成就
  • 获得125次点赞
  • 内容获得68次评论
  • 获得272次收藏
创作历程
  • 6篇
    2022年
  • 15篇
    2021年
  • 2篇
    2020年
  • 54篇
    2019年
  • 32篇
    2018年
成就勋章
TA的专栏
  • 程序分析论文精读
    5篇
  • 并发程序分析
    2篇
  • OCaml
    3篇
  • 书籍
    1篇
  • Clang/LLVM
    3篇
  • Hello,静态分析!
    7篇
  • Soot - A Java opt. framework
    4篇
  • SVF:C/C++静态分析工具StaticValueFlow
  • 编译原理
    8篇
  • 离散数学
    1篇
  • 算法与数据结构
    20篇
  • Oracle Java Tutorial
    17篇
  • Java
    25篇
  • C++
    2篇
  • 音视频
    2篇
  • Java虚拟机
    9篇
  • 其它
TA的推广
兴趣领域 设置
  • 编程语言
    开发语言
  • 开发工具
    ide
  • 测试
    测试用例
  • 安全
    系统安全安全架构
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

中断并发程序的静态分析

最近得研究下多任务并发程序的静态分析(包括中断),于是看了这篇文章;这篇文章是国防科大的团队在15年,16年所做的工作;主要是分析中断导致的程序并发,方法是:“将程序顺序化,然后重用经典的抽象解释方法进行分析;当然,还设计了抽象域专门处理IDPs的特性”
原创
发布博客 2022.04.09 ·
480 阅读 ·
1 点赞 ·
0 评论

检测并发程序Bug:[PLDI2021] Canary: Practical Static Detection of Inter-thread Value-Flow Bugs

最近得研究下多任务并发程序的静态分析,于是看了这篇文章总体来说,看是看懂了,但是… … 这篇文章所做的工作有点多啊… 怕了怕了1. Canary: Practical Static Detection of Inter-thread Value-Flow Bugs这篇文章发表在PLDI 2021,并发Bug缺陷检查。首次将并发bug检测转化为source-sink可达性问题,有效减低冗余的线程交错处理。提出值流图上的thread-modular算法来捕获数据和干扰(interference.
原创
发布博客 2022.04.05 ·
149 阅读 ·
1 点赞 ·
0 评论

利用OCaml实现一些数据结构和算法

利用OCaml实现常见数据结构和算法
原创
发布博客 2022.03.01 ·
595 阅读 ·
1 点赞 ·
0 评论

OCaml简单记录

OCaml utop 清屏;有时候使用交互式解释器utop,有强迫症,想清屏;那就用如下命令, 最好用CTRL + Lutop # Sys.command "clear";;很显然就是调用了clear命令; 例如:utop # Sys.command "cal";; 二月 2022 日 一 二 三 四 五 六 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22.
原创
发布博客 2022.02.27 ·
219 阅读 ·
0 点赞 ·
0 评论

OCaml安装

这里记录有关OCaml。Real world OCaml V2(2021.Q4)安装配置相关 http://dev.realworldocaml.org/install.html
原创
发布博客 2022.02.23 ·
453 阅读 ·
0 点赞 ·
0 评论

计算机/科技/人文 相关书籍

这里记录一些正在看,或者觉得一些很有意思,很想看的书。最近看的C/C++语言相关的书,在有一些编译相关的知识后看的,非常适合我目前这个阶段去读:C语言参考手册写/学习 C/C++编译器前端必备。对于了解C语言的语法结构,绝对是没有其它书可以替代。C++程序设计语言(特别版)神书,果然C++之父写的书确实有点哲学。我从没看过有一本教编程语言的书,会在Expression/Statements章节以一个词法/语法解析器作为Introduction在有一些编译知识作为背景,更能理解作者在表达
原创
发布博客 2022.02.20 ·
336 阅读 ·
0 点赞 ·
2 评论

南京大学《软件分析》课程课后作业(非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 ·
463 阅读 ·
0 点赞 ·
2 评论

IFDS论文算法精解:应用于污点分析的例子

这里以一个污点分析的例子来说明IFDS论文中的Tabulation算法(IFDS Solver求解器)是怎么工作的。1. 这里给定两个函数,它们之间有一条从source到sink的污染路径2. 最终的有效的污点传播相关的边如下所示;其中红色边对应于FlowFunction,也叫TransferFunction或者TransferRelation等术语。表示数据流经过一条语句后的流向。绿色边PathEdge为论文中描述的PathEdge,蓝色SummaryEdge为摘要边,避免重复计算。3. 整
原创
发布博客 2021.09.23 ·
823 阅读 ·
7 点赞 ·
0 评论

C++字符串

C的字符串以及它的弱点C风格字符串被定义为以null字符结尾的字符数组字符串字面量为const char*类型,所以下面赋值得到的数组是只读的char arr[10];char str[2] = "12";char* s = "hello";另外,str不能被赋值,而s能。前者不是左值。<string.h> 中定义了c字符串常用函数。c字符串的弱点是,不够现代,操作繁琐,语义不够清晰,容易出bug。// 下面是实现将两个字符串连接并赋值给第3个字符串// 1. C++
原创
发布博客 2021.08.08 ·
79 阅读 ·
0 点赞 ·
0 评论

C++一些关键的概念

C++创建对象:User u(... );把u本身当作一个对象User *p = new User(...);构造函数调用会创建一小块内存区域,用于存储p的值(一个内存地址),然后填充一块较大的区域,赋值符右侧所创建的User对象就存储在这块内存中。p所指向的内存地址就是User对象的存储位置u: --- --- | | | | | | | | | | --- --- p: -------
原创
发布博客 2021.08.08 ·
118 阅读 ·
0 点赞 ·
1 评论

IFDS开山之作:Precise Interprocedual Dataflow Analysis via Graph Reachability

《Precise Interprocedual Dataflow Analysis via Graph Reachability》一大类的流程间数据流问题,通过将其转化为一种特殊的图可达性问题,能够在多项式时间复杂度内被精确求解。对于这类数据流问题的唯一约束就是:数据流事实必须是有限集,数据流转换函数必须在交汇操作(Union或Intersection)上是可分配的。这类数据流问题包括但不限于经典的seperable problems(也叫gen/kill,bit-vector),比如reachi.
原创
发布博客 2021.08.05 ·
857 阅读 ·
2 点赞 ·
6 评论

程序分析论文导航(Todo-List)

这里记录一些论文,我需要看的,或者一些已经看过的(虽然我看过的很少 - _ - )也可以算是todo-list吧最初是想着有时候需要看些论文,倒不是奔着学术方向走,只是有时候对这个挺感兴趣hhh;然后去网上down下来论文,有时看着看着就忘记论文的事了。这里把它记下来,算是不那么容易忘记了。这些应该算是入门吧 ??? 虽然我还没入门 … 后续打算看完一篇论文写一篇博客,记录一下学习过程。1995, IFDS开山之作:Precise Interprocedural Dataflflow An.
原创
发布博客 2021.08.05 ·
296 阅读 ·
0 点赞 ·
3 评论

FlowDroid架构剖析

最近算是把FlowDroid源代码翻了一遍,并非通读,而是把整个系统的逻辑/设计整理了一下。这里稍微记录一下。由于FlowDroid能够分析Android程序,所以有一部分代码是对Android相关领域做适配,由于个人目前的工作对Android静态分析还不是很涉及,所以在分析FlowDroid源码时省略了Android相关的适配代码,主要是作通用Java相关的分析。FlowDroid几大组件:EntryPointCreator:使用EntryPointCreator指定分析的入口SourceS.
原创
发布博客 2021.08.02 ·
654 阅读 ·
1 点赞 ·
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 ·
217 阅读 ·
0 点赞 ·
1 评论

数据流分析的证明:安全性,终止性和合流性(收敛性)

数据流分析的证明:安全性,终止性和合流性(收敛性)大量的程序属性相关的问题无法在静态分析时进行确定,所以静态分析很多时候得不到精确的结果。于是我们常常采用近似法:允许在得不到精确值的时候,给出不精确的答案。而对于判定性问题,不精确的答案就是Unkonwn。求解近似解的基本方法中,其中一个,也是最基本的一个,就是对问题进行抽象。而对于软件分析中的数据流分析,常见的近似抽象方案就是对程序做抽象,引入两个近似方案。近似方案1:忽略程序的条件判断,认为所有分支都可能到达。(当然,对于静态分析就能够检测并
原创
发布博客 2021.05.17 ·
223 阅读 ·
1 点赞 ·
1 评论

偏序与格理论 基础

格理论学习笔记大一上学期学离散数学,不懂什么是数学结构,数据结构。也不知道学的离散数学到底有什么用,用在什么地方。后来知道,数据结构课程中的各种数据结构都可以用离散数学中的数学定义来解释,使得这些数据结构有相对严格的数学基础。现在工作用用到了很多离散数学的知识,得慢慢学习,将以前学习的知识补回来。所以在工作中实际上有必要重新温故或者重新学一遍。跟工作实践相结合。相信能够对这些计算机基础有更深的理解,最重要的是,帮助理解工作中要用到的一些核心概念。哦,对。现代数学的基础就是集合论。偏序与格理论的
原创
发布博客 2021.05.10 ·
315 阅读 ·
0 点赞 ·
1 评论

程序分析xx

做静态Bug查找工具/漏洞检查器等等,需要静态分析的知识,而静态分析从大的技术门类来讲可置身软件工程基础技术:程序分析技术大类。这里先概述日常工作中接触比较多的静态分析技术(如IDE的代码补全,定义跳转等等),然后再站在高层地视角将静态分析技术置身于程序分析这一软件工程基础领域,让我们清楚地知道静态分析在软件基础技术中的作用域/适用范围及其特点/局限性。静态程序分析(简称静态分析),主要是在不运行程序的情况下,找到程序的语义属性。它最初在70年代在编译优化技术中引入,用于生成高效的机器码。随着对静态分.
原创
发布博客 2021.05.04 ·
444 阅读 ·
0 点赞 ·
1 评论

LLVM IR / LLVM指令集入门

本文基于LLVM 12官方文档的LLVM Language Reference Manual。以学习笔记为主。所以本文会摘录一些常见/常用的指令。对于一些更加深层次的指令属性/特性,待我对LLVM有更深的理解再单独写文章记录。1. LLVM IR简介LLVM IR可以理解为LLVM平台的汇编语言,所以官方也是以语言参考手册(Language Reference Manual)的形式给出LLVM IR的文档说明。既然是汇编语言,那么就和传统的CUP类似,有特定的汇编指令集。但是它又与传统的特定平台相关.
原创
发布博客 2021.03.28 ·
2440 阅读 ·
4 点赞 ·
1 评论

Bit-Vector框架(2) — Live Variables Analysis

Bit-Vector框架(2) — Live Variables Analysis#mermaid-svg-h2LkkNRYSfHXahhI .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-h2LkkNRYSfHXahhI .label text{fill:#333}#mermaid-svg-h2LkkNRYS
原创
发布博客 2021.01.29 ·
94 阅读 ·
0 点赞 ·
1 评论

Bit-Vector框架(1) — Reaching Definition Analysis

Bit-Vector框架(1)——Reaching Definition Analysis#mermaid-svg-333SwcHNBd1lX6bv .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-333SwcHNBd1lX6bv .label text{fill:#333}#mermaid-svg-333Sw
原创
发布博客 2021.01.25 ·
161 阅读 ·
0 点赞 ·
2 评论
加载更多