- 博客(93)
- 收藏
- 关注
原创 Versioned Staged Flow-Sensitive Pointer Analysis
要么是间接调用指令,或者是可能被间接调用的函数的入口指令,这里用到的是AUX分析出的间接调用结果(paper中给出的形式化描述有点晦涩难懂,看SVF代码分析的)。压缩后的point-to map会被赋予version id,可用来获取对应的point-to map,这里version。完整的传播规则如下图所示,红框中标出的为VSFS相比SFS改进的部分,传播过程的多了查询version的步骤。的入口处consume的version,返回的是version,也就是入口处version。
2024-09-06 22:46:34 703
原创 Value-Flow分析工具Pinpoint
Pinpoint曾经开源,不过目前已经商业化,因此参考资料只能找到paper,不过其design还是很有参考意义的。相比和的(即先进行全程序指针分析 -> 全程序value-flow分析 -> 全程序bug检测),Pinpoint采用的整体性设计在分析时采用整体性设计原则进行,因此能减少很多不必要的性能开销。
2024-08-05 17:57:36 636
原创 SyzDescribe: Syscall Description Generation For Kernel Fuzzing
一种自动生成syzkaller规约的方法
2024-01-25 19:37:44 1067
原创 SVF Saber的实现
Saber检测内存泄漏的工作流程FileChecker 类实现对File操作的检查。DoubleFreeChecker 类实现对DoubleFree的检查。LeakChecker 类实现对Use-After-Free和其它泄漏漏洞的检查。其中 DoubleFreeChecker 和 Fil
2023-01-08 22:09:09 1116 1
原创 指针分析-改进版Andersen算法(二)
Fast and Accurate Pointer Analysis for Millions of Lines of Code一.Introduction二.提出的算法2.1.LCD算法2.2.HCD算法三.SVF中的实现3.1.AndersenLCD3.1.1.主循环代码3.1.2.压缩环路3.1.3.总结3.2.AndersenHCD3.2.1.生成offline副本3.2.2.计算list LLL3.2.3.主循环代码四.总结五.参考文献这篇blog主要讲的是上一篇提到的Lazy Cycle De
2022-04-28 20:22:54 1190
原创 指针分析-改进版Andersen算法(一)
Wave Propagation and Deep Propagation for Pointer Analysis一.背景二.Wave Propagation2.1.Wave Propagation2.2.压缩强连通分量2.3.实施Wave Propagation2.4.添加新边2.5.motivating example三.Deep Propagation四.实验4.1.渐近性4.2.运行时间4.3.内存占用五.总结六.参考文献这篇paper提出了2个Andersen-based指针分析算法,这里的改
2022-04-18 15:55:36 1878
原创 程序分析 clang系列学习 (三)
基于CSA的污点分析污点分析基于CSA的实现操作符集合的定义Sources和PropagatorsSinksFiltersChecker执行过程总结参考文献污点分析污点分析是数据流分析的一个特例(taint analysis is a special case of data flow analysis.)涉及到的一些概念如下:从 xxx 到 yyy 的数据流记为 x→yx \rightarrow yx→y,任何引起数据拷贝的操作(operation),比如赋值、参数传递都会造成数据流动。来
2022-03-15 22:19:14 5211
原创 程序分析 clang系列学习 (二)
clang静态检测clang APIAST匹配部分UseAfterMoveCheck问题概述示例代码ASTCFG检测步骤算法大致流程代码这里,我主要通过clang API实现自定义的代码检测工具,采用的方式类似于clang-tidy主要是采用AST,个别的会用上CFG。我实现的方式是libtooling方式,llvm-project下有lintooling示例代码clang-check,不过CMakeLists.txt中 add_clang_tool 和 clang_target_link_librar
2022-02-12 22:04:57 1852 1
原创 可解释性研究 -LRP-for-LSTM
LRP算法一.LSTM1.1.理论部分1.2.作者代码二.LRP_for_LSTM2.1.理论部分2.2.作者代码参考文献LRP算法也是可解释算法的一种,全称Layer-wise Relevance Propagation,原始LRP算法主要是应用在CV等领域,针对NLP中通过Word2Vec等手段将token转化为分布式词向量并通过RNN向量化文档的可解释手段真不多。LIME虽然可以针对文本数据进行解释,但适用场景是tf-idf或者bag-of-word这种词向量,向量中一个维度代表一个词。这里参考的
2021-11-23 20:25:12 4748 7
原创 DLVD模型的鲁棒性研究
Boosting coverage-based fault localization via graph-based representation learning参考文献参考文献Yiling Lou, Qihao Zhu, Jinhao Dong, Xia Li, Zeyu Sun, Dan Hao, Lu Zhang, and Lingming Zhang. 2021. Boosting coverage-based fault localization via graph-based repre
2021-11-17 22:13:50 991 6
原创 程序分析-Slice,深度神经网络动态slice
Dynamic Slicing for Deep Neural Networks一.Introduction三.Motivation And Goal3.1.Motivation3.2.Problem Formulation3.3.Challenges四.NNSlicer4.1.Approach Overview4.2.Profiling and Forward Analysis一.Introduction程序切片(program slice)技术已经广泛引用到程序调试,测试,验证等任务上,意在求得能够
2021-11-16 12:12:04 2705 3
原创 源代码理解中AI可靠性方面的研究
Towards Reliable AI for Source Code Understanding一.introduction二.The Reliability Problem2.1.Data Collection2.2.Model Training2.3.Prediction Analysis三.Data-Driven And SE-Assisted Solutions3.1.Data Credibility3.2.Model Accountability(这段其实没看懂)3.3.Prediction T
2021-11-06 14:34:07 936 3
原创 code embedding研究系列十一 - VulDeeLocator
VulDeeLocator: A Deep Learning-based Fine-grained Vulnerability Detector一.背景二.基本思想三.VulDeeLocator概述四.基于中间代码的表示4.1. 漏洞candidate表示的指导原则4.2.提取sSyVCs4.3.生成iSeVCs4.3.1.生成链接好的中间文件(原则1)4.3.2.生成对应sSyVCs的中间表示slice并进一步生成iSeVCs(原则2)五.细粒度的漏洞检测参考文献一.背景自动检测软件漏洞在学术界引起了
2021-10-06 13:45:21 3720 9
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人