KLEE
fjnuzs
这个作者很懒,什么都没留下…
展开
-
KLEE--klee_assume(condition)的应用
KLEE提供了一系列的函数,用于symbolic execution中。当程序调用这些函数时都会由KLEE负责处理。这些函数在include/klee/klee.h中声明,其中另外一个最常用的函数klee_make_symbolic在第一个实例中已经用过(具体见前面blog)。 函数:klee_assume(condition) 用法:该函数中的condition利用symboli...翻译 2018-03-22 10:30:01 · 1062 阅读 · 0 评论 -
KLEE应用实例2
原文地址:http://klee.github.io/tutorials/testing-regex/ 测试一个简单的正则表达式的匹配函数。该实例的源程序在klee_dir/examples/regexp/regexp.c。通过本例将会学习如何通过KLEE编译和运行具体的实例,以及如何解读输出。1 编译构造(build and run the example) 原文的命令行为: $ ...翻译 2018-04-09 17:38:28 · 1398 阅读 · 0 评论 -
KLEE应用实例1
原文(http://klee.github.io/tutorials/testing-function/),这个实例用来引导你完成一个最简单的测试。1 下面是一个待测试的函数,int get_sign(int x) { if (x == 0) return 0; if (x < 0) return -1; else return 1;}这个函数就是根据输入的x,...翻译 2018-04-09 17:37:52 · 1931 阅读 · 0 评论 -
KLEE--一些工具介绍(klee-stats)
klee-stats klee-stats是一个Python脚本,用于从KLEE执行过程运行中形成的文件run.stats中抽取一些统计信息,并且用表格来表示。运行中的统计信息包括: 1.1 执行的指令数:The number of executed instructions 1.2 LLVM位代码上指令的覆盖率:Instruction coverage in the LLVM bitc...翻译 2018-04-09 17:37:03 · 1380 阅读 · 0 评论 -
KLEE--搜索方法Search Heuristics
KLEE提供了4中搜索方法: 01 Depth-First Search (DFS) 深度优先搜索: Traverses states in depth-first order. 02 Random State Search 随机状态搜索:Randomly selects a state to explore. 03 Random Path Selection 随机路径搜索:...翻译 2018-04-09 17:36:16 · 951 阅读 · 0 评论 -
KLEE和MathSAT一起使用
这几天把MathSat装上,并且简单学习了他的使用方法,除了编程应用,还可以使用命令行方式。下面这里是使用KLEE生成的符号公式作为输入,由MathSat运行求解,得到可满足性的判定。这里主要列出基本步骤。1 利用llvm-gcc编译c文件 llvm-gcc --emit-llvm -c -g get_sign.c2 klee执行 klee --write-smt2s --use-quer...原创 2018-04-09 17:35:09 · 426 阅读 · 0 评论 -
KLEE--KQuery
KQuery是约束表达式和约束查询的文本表示,Kleaver约束求解器以其为输入。该语言能够表示基于位向量和数组的自由量词公式,它可以直接支持位向量的标准操作。该语言具有很好的读写交互,并且和C++ API有非常紧密的关系。 因为是一边看一边翻译,所以有些不理解,也就只能字面意义了。文档不够详细,也没有例子,后面有时间搞清楚了我会在进行文档的修改。 原文:http://klee....翻译 2018-03-22 10:32:00 · 1071 阅读 · 0 评论 -
KLEE--KLEE主要的生成文件解读
1 Standard Global Files有些文件在KLEE执行过程中总是会生成,这些称为是Global files1-1 info文件:该文本文件存储了KLEE运行产生的各类相关信息,其中记录了命令行的命令、总的运行时间等等信息,具体例如下(都是很直观的描述,比较容易懂):$ cat infoklee --write-pcs demo.oPID: 12460Started: 2009-0...翻译 2018-03-22 10:31:05 · 1388 阅读 · 0 评论 -
KLEE安装
下面这段文字翻译于http://klee.github.io/getting-started/ KLEE搭建于LLVM平台,下面这些安装步骤基于LLVM 2.9(稳定版本),基于新版本LLVM 3.4还处于试验阶段参考 click here。实际上现在LLVM都已经是4版本了。1 依赖软件安装:包括g++, curl, dejagnu, subversion, bison, flex, ...翻译 2018-03-22 10:28:08 · 2968 阅读 · 1 评论 -
KLEE应用实例3
该实例是用KLEE测试Gun CoreUtils,之前一直有问题,这段时间想在grep的编译生成上,忘记改什么了,反正可以用了。该实例的应用假定你已经在编译KLEE时正确引用了uclibc和posix运行支持。实际上我也不知道当时怎么搞得。步骤1:利用gcov构造CoreUtils首先下载 coreutils,本例用的是版本6.11。gcov(GCC Coveage)是一个测试代码覆盖率的工具...翻译 2018-04-09 17:39:12 · 1914 阅读 · 0 评论